У меня мало сомнений относительно максимального времени выполнения, установленного в php.ini.
Предполагая, что max_execution_time составляет 3 минуты, рассмотрите следующие случаи:
У меня есть процесс, который закончится через 2 минуты.
Но он находится в цикле, и он должен работать 5 раз. Таким образом, это становится 10 минут.
Будет ли сценарий работать правильно, не показывая ошибку для таймаута? Зачем?
Функция PHP просто печатает данные, и это займет всего 2 минуты.
Но выполнение запроса занимает 5 минут.
Будет ли сценарий работать без ошибок? Зачем?
Мой единственный процесс php занимает 5 минут.
Но я вызываю скрипт из командной строки.
Будет ли он работать правильно? Зачем?
Как разрешена память и время выполнения?
Если время выполнения для скрипта очень велико
Но он возвращает небольшой объем данных
Будет ли это влиять на память или нет? Зачем?
Я хочу узнать, что происходит внутри, поэтому я спрашиваю их. Я не хочу просто увеличивать ограничение по времени и ограничение памяти.
Правила max_execution_time
относительно просты.
Время выполнения начинает отсчитываться, когда файл интерпретируется. Время, необходимое до подготовки запроса, подготовка загруженных файлов, веб-сервер, выполняющий его и т. Д., Не учитывает время выполнения.
Время выполнения – это общее время выполнения сценария, включая запросы к базе данных, независимо от того, работает ли он в циклах или нет. Таким образом, в первом и втором случае сценарий завершится с ошибкой таймаута, потому что это определенное поведение max_execution_time
.
Внешние системные вызовы с использованием exec()
и т. Д. Не учитываются во время выполнения, кроме Windows. ( Источник ) Это означает, что вы можете запустить внешнюю программу, которая занимает больше времени max_execution_time
.
При вызове из командной строки значение max_execution_time
умолчанию max_execution_time
0
. ( Источник ) Итак, в третьем случае ваш скрипт должен работать без ошибок.
Время выполнения и использование памяти не имеют ничего общего друг с другом. Скрипт может работать в течение нескольких часов, не достигая предела памяти. Если это так, то часто из-за цикла, где переменные не отключаются, а ранее зарезервированная память не освобождается должным образом.