Как оптимизировать скрипт? Доброго времени суток. Есть скрипт который работает в фоновом режиме. Работает "бесконечно" долго, остановиться должен лишь когда сам того пожелает, то бишь при выполнении условия N.Общая суть такова: 1. Обращаемся через Curl к ПУ сервиса N, который не имеет никакого API. 2. Берем данные, с помощью PHPQuery вытаскиваем что нужно в массив. 3. Проводим проверки на соответствие и на ошибки. 4. Пишем данные в файл в текстовом формате с помощью file_put_contents. 5. Проверяем достижение условия N. 5. Повторяем операцию снова и снова и снова...Вопрос состоит в следующем. Скрипт вылетел через какое-то время с ошибкой Fatal error: Out of memory. Прописал в начало скрипта:ini_set('xdebug.remote_autostart', 0); ini_set('max_execution_time', 0); Не помогло, хотя от предыдущей ошибки max_execution_time избавился, XDebug как оказалось, не выключился, как ожидалось и все это время ужасно тормозил и без того медленный скрипт. Можно конечно выставить: ini_set('memory_limit', -1); но это не решение проблемы. Где-то происходит утечка памяти, может нужно очищать переменные и цикл после итерации, может нужно вместо file_put_contents использовать fopen? Может вы знаете что-то еще, что может влиять на память, буду рад услышать любой совет.
Для оптимизации работы скрипта и предотвращения утечки памяти, рекомендую вам выполнить следующие действия:
Очищайте переменные после использования: после каждой итерации цикла очищайте переменные, которые больше не нужны. Например, используйте unset() для удаления ненужных данных.
Используйте необходимые ресурсы: вместо использования функции file_put_contents, попробуйте использовать fopen и fwrite для записи данных в файл. Это может помочь уменьшить использование памяти.
Оптимизируйте циклы: убедитесь, что ваш цикл работает эффективно и не создает ненужные нагрузки на память. Попробуйте уменьшить количество итераций или оптимизировать их выполнение.
Избегайте лишних операций: убедитесь, что ваш скрипт не выполняет лишние операции или запросы. Минимизируйте количество запросов к сервису и избегайте излишних операций.
Мониторинг использования памяти: используйте функцию memory_get_usage() для отслеживания использования памяти в разных частях скрипта и идентификации участков, где происходит утечка памяти.
При выполнении этих действий, вы сможете оптимизировать работу своего скрипта и предотвратить утечку памяти. Если проблема с памятью сохранится, попробуйте использовать инструменты для профилирования кода и идентификации узких мест в скрипте. Надеюсь, эти советы будут полезны для вас.
Для оптимизации работы скрипта и предотвращения утечки памяти, рекомендую вам выполнить следующие действия:
Очищайте переменные после использования: после каждой итерации цикла очищайте переменные, которые больше не нужны. Например, используйте unset() для удаления ненужных данных.
Используйте необходимые ресурсы: вместо использования функции file_put_contents, попробуйте использовать fopen и fwrite для записи данных в файл. Это может помочь уменьшить использование памяти.
Оптимизируйте циклы: убедитесь, что ваш цикл работает эффективно и не создает ненужные нагрузки на память. Попробуйте уменьшить количество итераций или оптимизировать их выполнение.
Избегайте лишних операций: убедитесь, что ваш скрипт не выполняет лишние операции или запросы. Минимизируйте количество запросов к сервису и избегайте излишних операций.
Мониторинг использования памяти: используйте функцию memory_get_usage() для отслеживания использования памяти в разных частях скрипта и идентификации участков, где происходит утечка памяти.
При выполнении этих действий, вы сможете оптимизировать работу своего скрипта и предотвратить утечку памяти. Если проблема с памятью сохранится, попробуйте использовать инструменты для профилирования кода и идентификации узких мест в скрипте. Надеюсь, эти советы будут полезны для вас.