【发布时间】:2011-08-23 19:05:17
【问题描述】:
所以我尝试了两种不同的方式执行脚本:
1)
foreach($result_array as $arg){
exec("/usr/bin/php pathToScript firstArg $arg", $array);
echo "peak usage: " . memory_get_peak_usage() . "\n\r";
}
结果:
高峰使用:5457324
高峰使用:7791212
PHP 致命错误:允许的内存大小为 33554432
2)
foreach($result_array as $arg){
curl_file_get_contents("website?query=$arg"); //just a cURL helper function
echo "peak usage: " . memory_get_peak_usage() . "\n\r";
}
结果:
高峰使用:5241708
高峰使用:5241708
高峰使用:5241708
高峰使用:5241708
高峰使用:5241708
高峰使用:5241708
...你明白了
对于 exec() 使用内存或操作的方式,我一定是搞错了。我的印象是,当程序被分叉时,使用 exec(),调用脚本的内存需求不会受到影响......但是,情况似乎并非如此。
谁能解释一下这里发生了什么,以便我知道发生了什么?
【问题讨论】:
标签: php memory-leaks exec memory-management command-line-interface