Я запускаю систему, которая должна обновлять различные XML-файлы из данных, хранящихся в БД. Сценарий запускается через php-файл на стороне сервера, который отслеживается демоном, поэтому он запускается, завершается с освобождением ресурсов и затем перезапускается.
У меня есть несколько тестов в скрипте, и когда мне нужно обновить 100 XML-файлов, на это уходит около 15 секунд. Типичный xml-файл, который создается, составляет около 6 КБ - я создаю xml, используя php dom, и пишу, используя dom-> save. БД полностью нормализована, и правильные индексы на месте, 3 запроса, которые мне нужно выполнить, которые получают необходимые данные для обновления XML, занимают всего около 0,05 секунды. Поэтому узкое место, похоже, связано с фактическим созданием xml через dom и написанием самого файла.
Есть ли у кого-нибудь идеи, как я мог бы действительно ускорить процесс? Я подумал об использовании проверки crc, чтобы увидеть, нужно ли переписывать xml, но это все равно потребует от меня чтения XML-файла, который я буду обновлять, и я не делаю этого в данный момент, так что, конечно, это так же плохо как просто сохранить новый файл поверх старого? Кроме того, я не думаю, что можно редактировать определенные части XML, поскольку структура не является однородной, порядок узлов может меняться в зависимости от того, какие данные не являются нулевыми после обновления.
Очень ценю ваши мысли об этом!