FuelPHP站点在远程服务器上使用10倍以上的内存

时间:2014-01-19 21:11:35

标签: php fuelphp

我使用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。

Update 2 :刚刚注意到我在本地运行PHP5.5但服务器只在5.3。也许一些后来修复的bug会先升级。

2 个答案:

答案 0 :(得分:3)

感谢你们的建议,我解决了这个问题。 正如在原帖的更新中所提到的,我意识到我在本地运行PHP5.5但服务器只在5.3。经过apt的一些ppa-magic和其他问题的帮助后,我设法用PHP 5.5.x安装Apache 2.4。现在我真的看到了

Page rendered in 0.0261s using 0.582mb of memory.

本地和远程

Page rendered in 2.3184s using 1.238mb of memory.

假设因素2是由服务器64位而不是我的开发机器引起的,我可以忍受剩下的差异。

答案 1 :(得分:1)

使用Xdebug查找正在使用所有内存的函数。

很可能是框架中的错误或设计缺陷。

根据您的服务器,让Xdebug工作很困难甚至不可能。但有时它是预安装和简单的。