在 php 函数中使用 ini_set('memory_limit')
Using ini_set('memory_limit') in a php function
我有一个特别占用内存的函数,我想(就在该函数 运行 时)增加允许的内存以供其完成。
在 php 函数中使用 ini_set('memory_limit' , '1024M')
是不好的做法吗?一旦函数完成,它会 return 到默认值吗?
我知道它的使用价值很高。这是一个专用服务器,有很多果汁。
示例为:
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 );
但我认为这是不必要的:在脚本执行结束时,内存限制被重置为默认值。
脚本执行后该值将return变为默认值。
您还可以将限制设置为 -1
以告知 PHP 您的脚本可以使用所有必要的内存。
我不会说这是不好的做法,你必须做你必须做的事。如果您需要更多内存,那就是这样做的方法。您可能还需要增加 max_execution_time
.
话虽这么说,您可能想检查您的 'memoryIntensive' 功能,并在那里进行优化。
ini_set('memory_limit','-1');
它将根据需要使用内存,不会return任何与内存方面相关的错误或通知。
我有一个特别占用内存的函数,我想(就在该函数 运行 时)增加允许的内存以供其完成。
在 php 函数中使用 ini_set('memory_limit' , '1024M')
是不好的做法吗?一旦函数完成,它会 return 到默认值吗?
我知道它的使用价值很高。这是一个专用服务器,有很多果汁。
示例为:
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 );
但我认为这是不必要的:在脚本执行结束时,内存限制被重置为默认值。
脚本执行后该值将return变为默认值。
您还可以将限制设置为 -1
以告知 PHP 您的脚本可以使用所有必要的内存。
我不会说这是不好的做法,你必须做你必须做的事。如果您需要更多内存,那就是这样做的方法。您可能还需要增加 max_execution_time
.
话虽这么说,您可能想检查您的 'memoryIntensive' 功能,并在那里进行优化。
ini_set('memory_limit','-1');
它将根据需要使用内存,不会return任何与内存方面相关的错误或通知。