oro*_*edd 54 ubuntu performance virtualbox symfony
我在一个Ubuntu Server 12.04(64位)VM(VirtualBox)上运行Symfony2.主持人是MacBook专业版.出于某种原因,我在开发模式(app_dev.php)中获得了非常长的请求时间.我知道它在开发模式下速度较慢,但每个请求我说5-7秒(有时甚至更慢).在我的Mac上,我在开发模式下获得200ms左右的请求时间.
在Symfony2分析器中查看我的时间线后,我注意到~95%的请求时间是"初始化时间".这是什么?有什么原因可能会这么慢?
此问题仅适用于开发模式下的Symfony2,而不适用于我在VM上运行的任何其他站点,甚至不适用于生产模式下的Symfony2.
我看到了这一点(http://stackoverflow.com/questions/11162429/whats-included-in-the-initialization-time-in-the-symfony2-web-profiler),但它似乎没有回答我的问题.
Den*_*app 124
默认情况下,我有来自Symfony2的5-30秒响应.现在它在开发环境中约为500毫秒.
然后我修改了以下内容php.ini:
realpath_cache_size = 4M(或更多)XDebug完全禁用(测试phpinfo)OPcache正确启用和设置(或APC)而且,在开发模式下,响应不到2秒!希望能帮助到你.
之前: 6779毫秒

之后: 1587毫秒

Symfony2从数千个文件中读取类,这是一个缓慢的过程.当使用小型PHP实时路径缓存时,如果它们不在PHP的实际路径缓存中,则每次在开发环境中发出新请求时,都需要逐个解析文件路径.Symfony2默认情况下,实际路径缓存太小.在产品中,这当然不是问题.
缓存元数据(例如映射)对于进一步提升性能也非常重要:
doctrine:
orm:
entity_managers:
default:
metadata_cache_driver: apc
query_cache_driver: apc
result_cache_driver: apc
Run Code Online (Sandbox Code Playgroud)
你需要为此启用APCu.它APC没有字节码缓存,就像OPCache操作码缓存一样.OPCache自PHP 5.5起内置.
(在prod环境中相同的响应是~80 ms)
请注意,这个项目使用30多个捆绑包,并且拥有数万行代码,几乎有100个自己的服务,所以0.5s在本地Windows环境中使用一些简单的优化就相当不错.
oro*_*edd 15
我找出了问题的原因(而不是Symfony2).由于某些原因,在ubuntu VM上,某些文件的修改时间不正确(即将来等).当symfony2使用filemtime()针对其注册表检查这些时间时,它确定缓存不再是新鲜的并且它重建整个事物.我还没弄清楚为什么会这样做.
| 归档时间: |
|
| 查看次数: |
35458 次 |
| 最近记录: |