我刚刚注意到 - 通过在'空'php文件上调用memory_get_peak_usage(),使用php-fastcgi和NGINX,结果是~120KB的内存
<?php
print_r(memory_get_peak_usage());
?>
PHP是否真的需要为每次调用提供“多少”内存,或者这只发生在第一次调用(初始化我想到的内容),然后每次连续调用需要更少内存?
我问,因为我有点惊讶的是,一个空文件已经耗尽了140KB - 猜测一些类,函数和数组会将这个数字推得很快。
是的,我知道这可能算是过早优化,但我真的很想知道这些120KB的来源,以及是否有办法缩小每次通话的成本。
答案 0 :(得分:2)
php.net文档页面上的第一条评论声明:
如果您注意到脚本的峰值内存使用量为7MB,请不要立即担心或加剧担心,例如,通过进行表面计算来计算给定页面将为1000个访问者消耗多少内存。请记住这个非常重要的事实:这种峰值脚本内存消耗在微秒级别。根据我们的示例,特定脚本需要专用7000MB内存的唯一方法是,如果所有1000个访问者都以相同的微秒访问该页面。
http://php.net/manual/en/function.memory-get-peak-usage.php
每个连接的默认分配在8-16mb之间,所以你仍然低于它。
对于它的价值,在我的服务器上做同样的事情产生650kb,所以你已经做得比我好;)
答案 1 :(得分:2)
与真正的应用程序相比,每次通话需要5到15 MB。我不确定120KB的来源,但我想从加载的扩展,回溯,日志......
你有APC或任何其他加速器活跃吗?