2016-03-07 143 views
0

我有一个特别的内存密集函数,我希望(只是在该函数运行时)向上允许它完成的内存。在php函数中使用ini_set('memory_limit')

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

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

例子是:

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

ini_set('memory_limit',1024M)仅在此特定页面上为此请求设置此内存限制 –

回答

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

但我认为这是不必要的:在脚本执行结束,内存限制被重置为默认值。

0

脚本执行后,该值将返回到默认值。

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

0

我不会说这是一个不好的做法,你必须做你必须做的事情。如果你需要更多的记忆,那就是做这件事的方法。您可能还需要增加max_execution_time

这就是说,你可能想检查你的'memoryIntensive'函数,并优化那里的东西。