php – 为什么Symfony 2在我的环境中慢慢响应?

我有一台运行Debian Squeeze的VMware虚拟机.我的所有项目都在我的 Windows机器上的一个文件夹中,可以通过VMware共享文件夹访问Debian VM.这意味着我可以在我的Windows机器上使用适当的文本编辑器处理我的项目,同时从 Linux环境托管它们.几个月来我一直在使用这个设置,在使用 PHP或其他与开发相关的任务托管Apache站点时没有问题,直到我尝试了 Symfony.

我现在在我的htdocs目录中有一个Symfony 2(Symfony_Standard_Vendors_2.2.1.tgz)的开箱即用演示实例,以及我的Windows机器上与VM共享的一个实例.我的htdocs目录如下所示:

htdocs
|`- Symfony
 `- Symfony_shared -> /mnt/hgfs/DropBox/Symfony

Symfony是位于htdocs文件夹中的实际物理目录,而Symfony_shared是指向我的Windows机器上DropBox文件夹的软链接.我必须重复;我之前从未遇到任何与此方法相关的性能问题.

相同的文件系统

现在 – 当我在浏览器中访问http://devmachine.local/Symfony/web/app_dev.php并进入探查器时,我看到这些数字:

Total time           83 ms
Initialization time  43 ms

非常好的数字.整个响应在不到100毫秒内就绪了.

关联

但是当我访问http://devmachine.local/Symfony_shared/app_dev.php时,我在分析器中看到了非常不同的数字:

Total time           6833 ms
Initialization time  4249 ms

谁能解释这些数字?什么是“初始化时间”,为什么需要4秒以上?请记住,这只是Symfony演示欢迎页面.我实际测试项目中的登录页面的初始化时间为19秒,总时间为22秒.

我应该提一下,我也在两个目录中进行了快速测试运行PHP app / console.在Symfony文件夹中,此命令立即返回使用情况,而在Symfony_shared中,它在响应之前花了几秒钟.

我对Symfony文件夹所做的唯一更改是删除了将流量限制为127.0.0.1的app_dev.PHP部分.

我在Debian 6.0.7(squeeze)上使用Apache 2.4.4和PHP 5.4.14.

以下是Symfony_shared欢迎页面分析器的屏幕截图:

检查您的PHP配置是否存在open_basedir限制,从而阻止您的stat缓存工作. Symfony会进行大量的fstat()调用,如果没有缓存,Symfony会非常慢.你的符号链接也可能阻止stat缓存工作.如果您对应用程序进行概要分析(并包含本机PHP函数),那么如果它导致您的问题是fstat()则会非常明显.

PHP Bug #49383上有一些关于它的信息.

相关文章

Hessian开源的远程通讯,采用二进制 RPC的协议,基于 HTTP 传输。可以实现PHP调用Java,Python,C#等多语...
初识Mongodb的一些总结,在Mac Os X下真实搭建mongodb环境,以及分享个Mongodb管理工具,学习期间一些总结...
边看边操作,这样才能记得牢,实践是检验真理的唯一标准.光看不练假把式,光练不看傻把式,边看边练真把式....
在php中,结果输出一共有两种方式:echo和print,下面将对两种方式做一个比较。 echo与print的区别: (...
在安装好wampServer后,一直没有使用phpMyAdmin,今天用了一下,phpMyAdmin显示错误:The mbstring exte...
变量是用于存储数据的容器,与代数相似,可以给变量赋予某个确定的值(例如:$x=3)或者是赋予其它的变...