我们正在寻找将来使用的PHP框架,目前正在使用Symfony 2进行测试。为此,我们重新设计了API并将其作为Symfony中的捆绑包实现。事实证明,Symfony似乎非常缓慢 - 实际上远比我们旧的(甚至没有精心设计的)系统慢。
我们尝试通过缓存字节代码来优化性能(使用APC)。虽然我们注意到性能有了很大的提升(之前:加载API大约需要3秒;之后:平均0.6秒(比旧系统慢<0.5秒没有 APC)),我们有点兴奋 - 但仍然不满意这么简单的任务的高加载时间,例如从几乎空的数据库中获取一个结果。
我不知道,但我可以想象这是由于Symfony自动加载所有类,即使特定包不需要。
现在,在我们深入研究六个Symfony之前,我们想要寻找进一步的优化,可能是一种排除特定捆绑中不需要的组件的方法,因为我个人认为这会产生很大的不同。
我感谢任何有关如何进一步提高绩效的想法,使用Symfony体验报告或其他任何可能对我们提供框架有用的信息。
编辑:
有关测试环境的一些信息:
此外,所有测试都在我们系统的本地副本上完成,因此可以排除可能的网络问题。
答案 0 :(得分:14)
这些要点可以优化您的应用程序性能:
升级PHP。 PHP 5.3和PHP 5.4之间的性能提升非常高。 PHP 5.5会更好,但并不是所有发行版都支持,比如Debian 7。
NGINX比Apache更快,配置也更容易。
将PHP-FPM与NGINX结合使用是一个很好的组合。您还可以使用HHVM运行PHP,平均比PHP-FPM快2倍,前提是您将Gmnt替换为Symfony / Assetic。 警告:在安全部署之前,HHVM需要更多的预防措施和测试。您可以关注这两篇文章(法语):JoliCode和Big Brains Company
不推荐使用PHP APC扩展程序。我认为XCache,Memcached或Redis更好,而且他们目前也得到了最多的支持。对于PHP&gt; = 5.5,APCu可以用作APC的替代品。
此外,您可以阅读一些谈论Symfony2优化并提供Twig基准测试的文章。
PHP文章:
Symfony2和Twig文章:
其他优化:
答案 1 :(得分:2)
你看过这篇博文了吗? http://symfony.com/blog/push-it-to-the-limits-symfony2-for-high-performance-needs
根据您的信息,我可以建议您使用PHP-FPM尝试php 5.5或5.6和NGINX,它可以快40%或更多。
答案 2 :(得分:0)
您可以尝试本文中建议的方法:http://stfalcon.com/en/blog/post/performance-symfony2-doctrine2-orm
作者建议:
所描述的代码可在github上找到:https://github.com/lensky84/performance