当 PHP 的 memory_limit 设置为50M
大约 25 秒的运行时间时,我有一个脚本可以成功运行。当我在脚本末尾打印memory_get_peak_usage
时,它非常接近50M
. 当我将 memory_limit 设置得更高时,to 会90M
显示memory_get_peak_usage
,75M
脚本加载速度会快 10 秒。
无论memory_limit如何,脚本都会使用大约相同数量的内存,这似乎很直观,但似乎并非如此。如果脚本在 50M 的限制下达到最大值50M
,我预计即使 memory_limit 已增加,峰值使用量也会相同。
我唯一的解释是 PHP 认识到它接近其限制并花时间清除未使用的内存以避免达到限制。这是它实际工作的方式还是我只是触及了更大的东西的表面?