【发布时间】:2016-02-24 06:28:29
【问题描述】:
案例
目前我正在使用 Laravel 4 开发应用程序。我安装了profiler 以查看有关我的应用程序的统计信息。这是截图:
问题
- 您可以看到它在我的 vagrant(Ubuntu 64 位 + Nginx + PHP 5.3.10+ MySQL)中为每个请求(非常简单的页面)消耗了 12.25 MB 内存。你觉得这太过分了吗?这意味着如果我有 100 个并发连接,则内存消耗约为 1 GB。我觉得这太过分了,但你怎么看?
- 它为每个请求加载 237 个文件。你觉得这太过分了吗?
- 当我将此应用程序部署到我的服务器(带有 Apache 的 Centos 6.4 + 带有 Zend OPcache + MySQL 的 PHP 5.5.3)时,内存消耗显着减少。这是来自服务器的屏幕截图:
你如何看待我的mac和服务器之间的这种差异?
【问题讨论】:
-
感谢您的评论!你能澄清一下你在说哪个缓存吗?查看、代码还是数据缓存?
-
您说您的 vagrant box 运行 PHP 5.3.10 而您的服务器运行 PHP 5.5.3。由于版本差异如此之大,预计内存消耗会大大降低。
-
@NikiC 谢谢!你是对的。这是减少的原因之一。我在禁用 OPCache 时测试了同一页面。这也将内存使用量从 3.25M 增加到 8.30M。
-
@CanGeliş Opcache 使用不同的分配器,因此 opcache 存储的内容不计入 PHP 报告的内存使用量。另一方面 - 由于 opcache 使用的内存在所有 PHP 进程之间共享,从实际角度来看这可能是有意义的。