Dav*_*ank 35 php performance apache2 windows-7 page-load-time
这是我长期以来一直存在的问题.我想在我的Windows计算机上运行PHP应用程序,它的加载时间非常长,大约10-25秒.我尝试了很多东西:
更新:我甚至尝试过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.
脚步:
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毫秒,但它至少有所作为
我在XP和Server 2003上有一个与symfony 1类似的问题.解决方案是安装PHP加速器(对我们来说是eAccelerator,这些天APC可能是更好的选择)加上FastCGI/fcgid.
附录:自从我在Windows上使用Apache以来已经很久了.我一般认为它的表现越来越好,而不是更糟; 然而,与大多数不寻常的设置一样,YMMV.根据我之前的评论,我建议在Apache Lounge询问您的问题,我之前收到了一些很棒的专家建议.
如果内存服务正常,它们可以为您提供免费的Apache二进制文件,使用比Apache网站上提供的标准工具更好的工具编译.
归档时间: |
|
查看次数: |
19665 次 |
最近记录: |