[英]Using ini_set('memory_limit') in a php function
我有一個特別耗費內存的功能,我想(恰好在該功能運行時)增加允許的內存以使其完成。
在php函數中使用ini_set('memory_limit' , '1024M')
是否不好,一旦函數完成,它將返回默認值嗎?
我知道使用它具有很高的價值。 這是一台專用服務器,有很多功能。
例如:
function run_Cron_Processes() {
ini_set('memory_limit', '1024M');
memoryIntensive1();
memoryIntensive2();
memoryIntensive3();
//return to default m limit
}
$oldLimit = ini_get( 'memory_limit' );
ini_set( 'memory_limit', '1024M' );
(...)
ini_set( 'memory_limit', $oldLimit );
但是我認為這是不必要的:在腳本執行結束時,內存限制將重置為默認值。
執行腳本后,該值將恢復為默認值。
您還可以將限制設置為-1
,以告訴PHP您的腳本可以使用所有必需的內存。
我不會說這是一個糟糕的做法,您必須做必須做的事情。 如果您需要更多的內存,那就是這樣做的方法。 您可能還需要增加max_execution_time
。
話雖如此,您可能需要檢查“ memoryIntensive”功能,並在那里進行優化。
ini_set('memory_limit','-1');
它將按要求使用內存,並且不會返回任何與內存端有關的錯誤或通知。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.