0

我有一个特别需要内存的功能,我想(就在该功能运行时)为它完成允许的内存。

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

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

示例是:

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

4 回答 4

2
$oldLimit = ini_get( 'memory_limit' );
ini_set( 'memory_limit', '1024M' );
(...)
ini_set( 'memory_limit', $oldLimit );

但我认为没有必要:在脚本执行结束时,内存限制被重置为默认值。

于 2016-03-07T18:34:23.927 回答
0
ini_set('memory_limit','-1');

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

于 2018-03-15T09:08:54.020 回答
0

脚本执行后,该值将恢复为默认值。

您还可以设置限制以-1告诉 PHP 您的脚本可以使用所有必要的内存。

于 2016-03-07T18:34:30.190 回答
0

我不会说这是一种糟糕的做法,你必须做你必须做的事情。如果您需要更多内存,那就是这样做的方法。您可能还需要增加max_execution_time.

话虽如此,您可能想要检查您的“memoryIntensive”功能,并在那里优化。

于 2016-03-07T18:40:07.250 回答