2016-03-07 75 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'函數,並優化那裏的東西。