Windows 7 php + Symfony2非常慢

Dav*_*ank 35 php performance apache2 windows-7 page-load-time

这是我长期以来一直存在的问题.我想在我的Windows计算机上运行PHP应用程序,它的加载时间非常长,大约10-25秒.我尝试了很多东西:

  • 首先,我尝试了一个简单的XAMPP安装
  • 我读WAMP可能会更快,所以我也尝试了WAMP.它给了我相同的结果
  • 然后我用PHP安装了一个nginx服务器,但它也没有帮助
  • 最后,我在VirtualBox中安装了一个Ubuntu 11.10并且我共享了包含我的项目的Windows文件,但结果更糟糕:每次超过22秒的加载时间.

更新:我甚至尝试过APC - 它有所改善,但仍然是6-8秒/页

我将我的文件上传到Linux服务器(共享主机),它运行在300-500毫秒左右.在XAMPP安装上,我尝试运行其他(即非Symfony2)应用程序(例如phpmyadmin),它也比共享主机慢,但速度不是很慢,加载时间为2-3秒.在我将Linux更改为主操作系统之前,我该如何提高性能?我的笔记本电脑配有i7 CPU,4 GB RAM,5400RPM HDD,Win7 x64.

谢谢您的帮助!

UPDATE2:由于一些神秘的原因,我的Symfony路由无法使用fcgid(它给了我一个404错误)所以我回去使用PHP作为模块.现在,它已成为有史以来最糟糕的(比以前更糟糕的模块):应用模式20-25秒,在开发模式下,每次超过30秒,所以我得到一个超时错误,它与没有启用APC.

在这里你可以看到这个错误.这是可重现的:每次在30秒内达到不同的执行点:

在此输入图像描述

Sim*_*kir 25

更新:

由于PHP 5.5现在已经集成了PHP OPCache,因此加快了执行时间.在我的设置中,具有数据库访问权限的完整请求现在需要180ms.

脚步:

  1. 更新到最新的PHP版本
  2. 启用OPCache
  3. 禁用xdebug
  4. 将Demonpath_cache_size = 2M设置为提到的DemonTPx

php.ini设置:

realpath_cache_size = 2M
[XDebug]
xdebug.profiler_enable = 0
xdebug.remote_enable = 0
[opcache]
zend_extension = "C:\xampp18\php\ext\php_opcache.dll"
opcache.enable = 1
opcache.enable_cli = 0
opcache.memory_consumption = 128
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 4000
Run Code Online (Sandbox Code Playgroud)

为什么Windows比Unix慢?

正如这里所讨论的,PHP在file_exists中非常慢,而在Windows上则是filemtime().因为Symfony2在开发模式下使用这些功能很多.我们不会在Windows上低于700毫秒(<= 5.4).PHP 5.5现在允许180ms.

一个解决方案可能是微软开发的WinCache,以解决IIS上的这个问题.但由于它只能在几个Windows版本上运行,而且只能在IIS上运行,因此对我来说无法解决问题.

替代

我可以推荐一个很好的解决方案是在Virtualbox上安装Linux虚拟机.这很容易设置,也更像是生产环境.


Ber*_*man 20

我有完全一样的问题.在php.ini中设置以下内容使我的性能从大约800毫秒增加到大约300毫秒:

php.ini中:

realpath_cache_size = 2M
Run Code Online (Sandbox Code Playgroud)

我从unix机器上得到的时间还不到100毫秒,但它至少有所作为


hal*_*fer 8

我在XP和Server 2003上有一个与symfony 1类似的问题.解决方案是安装PHP加速器(对我们来说是eAccelerator,这些天APC可能是更好的选择)加上FastCGI/fcgid.

附录:自从我在Windows上使用Apache以来已经很久了.我一般认为它的表现越来越好,而不是更糟; 然而,与大多数不寻常的设置一样,YMMV.根据我之前的评论,我建议在Apache Lounge询问您的问题,我之前收到了一些很棒的专家建议.

如果内存服务正常,它们可以为您提供免费的Apache二进制文件,使用比Apache网站上提供的标准工具更好的工具编译.