PHP-ZendFramework 2-痛苦缓慢吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP-ZendFramework 2-痛苦缓慢吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1698字,纯文字阅读大概需要3分钟。
内容图文
![PHP-ZendFramework 2-痛苦缓慢吗?](/upload/InfoBanner/zyjiaocheng/660/af0f8d3bdfae4a488806f285d23ed1f9.jpg)
我已经在Web服务器上安装了ZendSkelletonApp,该服务器与php-fpm(5.5,因此启用了opcache)和apache一起运行.
但是,对于开箱即用的示例应用程序,响应时间为110ms,这对我来说似乎很多.一个“静态”的php文件会在30毫秒内送达.我并不是说通过侦听器和其他方式循环的php框架应该可以实现,而是为静态控制器提供服务.带有>的模板100ms真的很慢.
即使生成类映射和模板映射(http://akrabat.com/zend-framework-2/using-zendloaderautoloader/)并在application.config.php中启用模块和配置缓存,我也无法低于100ms.
还有其他增强zf2性能的方法吗?
解决方法:
ZF2由于其性质,对于每个请求都有大量的文件IO.单个页面加载请求从带有理论的数据库中加载数据集并显示结果可能导致打开大约200个php文件. (运行xdebug缓存研磨,您可以看到花了多少时间检查和打开文件.这可能很长.)
打开的大多数内容都是“小”的,一旦从磁盘上读取后,执行速度很快,但是实际的file-io本身可能会导致严重的延迟.
使用PRODUCTION中的ZF2应用程序时需要注意以下几点:
1)运行“ composer dump-autoload -o”,它将为供应商目录缓存完整的自动加载映射.这样可以避免自动加载系统在包含所需文件之前不必运行“ file_exists()”.
2)为您的项目本身生成一个自动加载类图,并确保将项目配置为使用它.
3)确保已在配置中设置了模板映射,因此ZF2不必“假定”模板的位置,这会导致磁盘IO.
4)确保有适当的操作码缓存解决方案,例如Zend Opcache或APC(取决于您的PHP版本).您将希望将其设置为具有中期缓存超时(一个小时或更长时间),并且应该在生产中禁用文件统计信息.每次部署代码时,都应该清除该缓存(可以通过apache restart,脚本等来完成).
5)如果您使用的是依赖于注释的内容(例如,Doctrine等),则必须确保已缓存注释. APC是一个很好的解决方案,但是即使文件缓存也比没有缓存要好得多.解析这些注释非常昂贵.
这种结合导致ZF2对我的“即时”页面加载.
在开发过程中,不要流汗过多.如果需要,请安装操作码缓存,但是请确保它会统计文件以检查它们是否已更改…否则,它将忽略您对文件所做的更改.
内容总结
以上是互联网集市为您收集整理的PHP-ZendFramework 2-痛苦缓慢吗?全部内容,希望文章能够帮你解决PHP-ZendFramework 2-痛苦缓慢吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。