Symfony 2性能优化

Mar*_*yer 9 php optimization performance frameworks symfony

我们正在寻找一个可以在未来使用的PHP框架,目前正在使用Symfony 2进行测试.为此,我们重新设计了API并将其作为Symfony中的捆绑包实现.事实证明,Symfony似乎非常慢 - 实际上远比我们旧的(甚至没有精心设计的)系统慢得多.

我们尝试通过缓存字节代码来优化性能(使用APC).虽然我们已经注意到性能的巨大提升(之前:加载API约3秒;之后:平均0.6秒(比没有 APC 的旧系统慢0.5秒)),我们有点兴奋 - 但仍然对于从一个几乎空的数据库中获取一个结果这样的简单任务的高加载时间,我并不十分满意.

我不知道,但我可以想象这是由于Symfony自动加载所有类,即使特定包不需要.

现在,在我们深入研究六个Symfony之前,我们想要寻找进一步的优化,可能是一种在特定包中排除不需要的组件的方法,因为我个人认为这会产生很大的不同.

我要感谢任何关于如何进一步提高性能的想法,使用Symfony体验报告或其他任何可能对我们寻找框架有帮助的事情.

编辑:

有关测试环境的一些信息:

  • 操作系统:Ubuntu 12.04.4 LTS(GNU/Linux 3.8.0-38-generic x86_64)
  • Apache版本:Apache/2.2.22(Ubuntu)
  • PHP版本:5.3.10-1ubuntu3.13
  • 相当多的PHP扩展:apc

此外,所有测试都在我们系统的本地副本上完成,因此可以排除可能的网络问题.

Bap*_*aux 14

这些点可以优化您的应用程序性能:

  1. 升级PHP.PHP 5.3和PHP 5.4之间的性能提升非常高.PHP 5.5会更好,但并不是所有发行版都支持,比如Debian 7.

  2. NGINX比Apache更快,配置更容易.

  3. 将PHP-FPM与NGINX结合使用是一个很好的组合.您还可以使用HHVM运行PHP,平均比PHP-FPM快2倍,前提是您将Gmnt替换为Symfony/Assetic.注意:在安全部署之前,HHVM需要更多的预防和测试.您可以按照这两篇文章(法语):JoliCodeBig Brains Company

  4. 不推荐使用PHP APC扩展.我认为XCache,Memcached或Redis更好,而且他们目前也得到了最多的支持.对于PHP> = 5.5,APCu可以用作APC的替代品.

此外,您可以阅读一些文章,讨论Symfony2优化并提供Twig基准测试.

PHP文章:

Symfony2和Twig文章:

其他优化:

  • 也许你可以使用Ubuntu的更新版本.
  • 就个人而言,我更喜欢使用Debian,它也很受服务器的欢迎,因为它非常稳定.
  • 使用像Varnish这样的缓存代理可以是一个点睛之笔.
  • 清漆需要开发人员的暗示,也许需要形成.使用NGINX FastCGI Cache将FastCGI请求限制为HHVM,FPM或PHP-NG可以解决速度响应问题.