【发布时间】:2014-01-19 21:11:35
【问题描述】:
我正在使用 FuelPHP 框架构建一个网站,该框架默认在页面底部打印执行时间和内存使用情况。现在我注意到在我的本地机器上,我的内存占用非常小:
Page rendered in 0.0304s using 0.721mb of memory.
我将这个站点(包括数据库的快照)准确地部署到我的远程测试服务器,突然内存使用量增加了 10 倍:
Page rendered in 0.0963s using 7.099mb of memory.
我无法单独从执行细节上解释这么大的差异,所以我认为偏差一定是在环境中。 不幸的是,我主要是一名程序员,而不是真正的服务器管理员,所以我真的不知道从哪里开始寻找。所以我要问一个一般性的问题,希望能给我一些有用的指示:我应该从哪里开始寻找?代码完全相同,据我所知,两台机器(本地笔记本电脑和远程服务器)都是使用 PHP5 的相当标准的 Apache 安装。欢迎任何建议可能导致此问题的特定 Apache 或 PHP 设置或在日志中搜索特定行的答案。
我意识到这是一个非常笼统的问题,可能会让我投反对票,因此欢迎任何建设性的批评。基本上,我现在不知道从哪里开始寻找。
更新:我决定首先排除框架为罪魁祸首,所以我在两台机器上运行了以下单行脚本:
本地我得到的值约为 115,而远程服务器报告的值约为 600。
更新 2:刚刚注意到我在本地运行 PHP5.5,但服务器只有 5.3。也许稍后会修复一些错误 - 将首先升级。
【问题讨论】:
-
本地和远程操作系统相同?
-
服务器/php 配置?附带说明一下,他们使用了很多静态,通常意味着糟糕的框架。奇怪的内存使用证实了这一点。我建议您改用 Symfony2 或 Zend Framework 2。
-
@Dagon 差不多,在本地运行 Ubuntu 13.10,而服务器运行 12.04 LTS 版本。
-
你试过serverfault.com吗?
-
找出哪个脚本和以后的内容 - 哪个代码部分/块确切地消耗了大量内存。然后你就会知道源头,修复它会更容易