Nan*_*com 8 php performance apc
我对Symfony2的性能有疑问.
我已经在Ubuntu 11.04下使用Symfony2进行了几周的开发,Apache 2.2.17,PHP 5.3.5,APC 3.1.9,没有xDebug
在开发环境中,Symfony2工具栏上给出的时间从未超过70毫秒.
今天,我尝试在Windows 7环境中安装我的应用程序:Wampserver 2.2,PHP 5.3.8,Apache 2.2.21,APC 3.1.7,no xDebug
Windows环境中的计算机比ubuntu(SSD,Quad core等)上的计算机要好得多.
当我在开发环境中运行应用程序时,工具栏始终指示至少300毫秒.
所以,你知道怎么可能吗?
谢谢 !
编辑:找到关于这个主题的链接:http://fossplanet.com/f6/%5Bsymfony-users%5D-symfony2-slow-windows-xp-116465/
我也注意到了file_exists函数的问题(使用webgrind).
那么,有什么想法吗?
也许这个问题已经讨论过,但我很惊讶没有发现任何相关内容.
Nan*_*com 12
TL; DR; 将realpath_cache_size设置为值> 1000
编辑2:在此PR中解决了问题:尝试将PHP.ini的realpath_cache_size设置为值> 1000最近添加了symfony要求修复此问题:https://github.com/sensiolabs/SensioDistributionBundle/commit/cf0179711b24d84d4a29d71a4010540f4c990bd8
编辑:我刚看到这个答案:https: //stackoverflow.com/a/17914570/980547当我在我的php.ini(!)中设置realpath_cache_size = 4096k时,它在Windows上减少了4页的页面生成时间
老答案:
所以,我用webgrind做了两个比较:
在Windows(快速计算机)上,名为app_dev.php:

因此,您可以看到Web工具栏显示764ms时间生成(由于xDebug和分析而增加,但仍然相关).Webgrind显示:
在linux(慢速计算机)上,app_dev.php:

总生成时间为298ms(比Windows上少两倍).
问题似乎是file_exists()和filemtime(),它们在Windows上比在Linux上慢得多.在Windows上,PHP正在寻找具有file_exists,filemtime,loadClass或findFile的文件,占60%.这是一个已知的问题吗?
编辑:所以问题仅针对开发环境,在生产中没有文件存在完成,因为所有内容都被缓存.
我刚开始在Windows下使用Symfony2进行开发,这是一个完全痛苦的屁股 - 我测试了xcache,apc和eaccelerator,它们与xdebug一起使用几乎没有任何区别或者只是崩溃了.
现在我发现了微软的WinCache--这使得Windows下的Symfony2变得难以置信......我的请求需要1.5s到3s之间 - WinCache下降到200ms.它甚至没有打扰xdebug - 分析和调试仍然像一个魅力.
编辑:这是关于开发环境的全部内容.
唯一的缺点是它只运行在nts php上,我认为apache模块需要ts - 如果用fcgid运行它虽然你没有问题.
如果没有这个怪物,我无法相信我工作了这么多年......
链接:
php.net上的
WinCache官方WinCache站点
二进制文件