У меня есть функция с особенно интенсивным использованием памяти, которую я хотел бы (только во время работы этой функции) заполнить разрешенную память для ее завершения.
Это плохая практика для использования ini_set('memory_limit' , '1024M')
внутри функции php и после завершения функции вернется ли она к значению по умолчанию?
Я знаю, что это высокая ценность для использования. Это выделенный сервер и много сока.
Примером будет:
function run_Cron_Processes() {
ini_set('memory_limit', '1024M');
memoryIntensive1();
memoryIntensive2();
memoryIntensive3();
//return to default m limit
}
$oldLimit = ini_get( 'memory_limit' );
ini_set( 'memory_limit', '1024M' );
(...)
ini_set( 'memory_limit', $oldLimit );
Но я думаю, что в этом нет необходимости: в конце выполнения скрипта ограничение памяти сбрасывается до значения по умолчанию.
Значение вернется к значению по умолчанию после выполнения вашего скрипта.
Вы также можете установить свой предел в -1
чтобы сообщить PHP, что ваш скрипт может использовать всю необходимую память.
Я бы не назвал это плохой практикой, ты должен делать то, что должен делать. Если вам нужно больше памяти, это способ сделать это. Вам также может понадобиться увеличить max_execution_time
,
При этом, возможно, вы захотите проверить свои функции memoryIntensive и оптимизировать их там.
ini_set('memory_limit','-1');
Он будет использовать в соответствии с требованием памяти и не вернет никаких ошибок или уведомлений, связанных со стороной памяти.