我有一个特别需要内存的功能(就在该功能正在运行时)向上允许的内存以便它完成。
在php函数中使用ini_set('memory_limit' , '1024M')
是不好的做法,一旦函数完成,它会返回默认值吗?
我知道它的使用价值很高。它是一个专用服务器,并且有很多汁液。
示例是:
function run_Cron_Processes() {
ini_set('memory_limit', '1024M');
memoryIntensive1();
memoryIntensive2();
memoryIntensive3();
//return to default m limit
}
答案 0 :(得分:2)
$oldLimit = ini_get( 'memory_limit' );
ini_set( 'memory_limit', '1024M' );
(...)
ini_set( 'memory_limit', $oldLimit );
但我认为这是不必要的:在脚本执行结束时,内存限制将重置为默认值。
答案 1 :(得分:0)
脚本执行后,该值将返回默认值。
您还可以将限制设置为-1
,以告诉PHP您的脚本可以使用所有必需的内存。
答案 2 :(得分:0)
我不会称之为糟糕的做法,你必须做你必须做的事情。如果你需要更多的记忆,那就是这样做的方法。您可能还需要增加max_execution_time
。
话虽这么说,你可能想要检查一下你的记忆密集型'功能,并优化那里的东西。
答案 3 :(得分:0)
ini_set('memory_limit','-1');
它将根据需要内存使用,并且不会返回与内存端相关的任何错误或通知。