每次通话的内存使用量最少?

时间:2012-11-01 23:52:19

标签: php performance

我刚刚注意到 - 通过在'空'php文件上调用memory_get_peak_usage(),使用php-fastcgi和NGINX,结果是~120KB的内存

<?php

    print_r(memory_get_peak_usage());

?>

PHP是否真的需要为每次调用提供“多少”内存,或者这只发生在第一次调用(初始化我想到的内容),然后每次连续调用需要更少内存?

我问,因为我有点惊讶的是,一个空文件已经耗尽了140KB - 猜测一些类,函数和数组会将这个数字推得很快。

是的,我知道这可能算是过早优化,但我真的很想知道这些120KB的来源,以及是否有办法缩小每次通话的成本。

2 个答案:

答案 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或任何其他加速器活跃吗?