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

前端之家收集整理的这篇文章主要介绍了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上有一些关于它的信息.

猜你在找的PHP相关文章