2

我刚刚注意到 - 通过使用 php-fastcgi 和 NGINX 对“空”php 文件调用 memory_get_peak_usage(),结果是大约 120KB 的内存

<?php

    print_r(memory_get_peak_usage());

?>

PHP 真的每次调用都需要“大量”内存,还是只发生在第一次调用(初始化我猜的东西),然后每次连续调用都需要更少的内存?

我在问,因为我有点惊讶一个空文件已经用完 140KB - 猜测几个类、函数和数组会很快推动这个数字。

是的,我知道这可能算作过早的优化,但我真的很想知道这 120KB 的来源,以及是否有办法降低每次调用的成本。

4

2 回答 2

2

php.net 文档页面上的第一条评论指出:

例如,如果您注意到脚本的峰值内存使用量为 7MB,请不要立即担心或通过进行表面计算来计算给定页面将为 1000 名访问者消耗多少内存来加剧担心。记住这个非常重要的事实:脚本内存消耗的峰值是微秒级的。在我们的示例中,特定脚本需要专用 7000MB 内存的唯一方法是,如果所有 1000 名访问者都在同一微秒内访问了该页面。

http://php.net/manual/en/function.memory-get-peak-usage.php

每个连接的默认分配在 8-16mb 之间,所以你仍然远低于此。

对于它的价值,在我的服务器上做同样的事情会产生 650kb,所以你已经比我做得更好了;)

于 2012-11-02T00:00:05.557 回答
2

与每次调用需要 5 到 15 MB 的真实应用程序相比,这算不了什么。我不确定 120KB 来自哪里,但我想来自加载的扩展、回溯、日志......

您是否有 APC 或任何其他加速器处于活动状态?

于 2012-11-02T00:00:12.623 回答