在php函数中使用ini_set('memory_limit')

时间:2016-03-07 18:29:15

标签: php ini-set

我有一个特别需要内存的功能(就在该功能正在运行时)向上允许的内存以便它完成。

在php函数中使用ini_set('memory_limit' , '1024M')是不好的做法,一旦函数完成,它会返回默认值吗?

我知道它的使用价值很高。它是一个专用服务器,并且有很多汁液。

示例是:

function run_Cron_Processes() {
    ini_set('memory_limit', '1024M');
    memoryIntensive1();
    memoryIntensive2();
    memoryIntensive3();
    //return to default m limit
}

4 个答案:

答案 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');

它将根据需要内存使用,并且不会返回与内存端相关的任何错误或通知。