簡體   English   中英

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

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM