Php Symfony 2性能优化
我们正在寻找一个PHP框架,以便将来使用,目前正在使用Symfony 2进行测试。为此,我们重新设计了API,并在Symfony中将其作为捆绑包实现。事实证明,Symfony似乎非常慢,实际上比我们的旧系统慢得多 我们试图通过缓存字节码来优化性能(为此使用APC)。虽然我们已经注意到性能有了巨大的提高(加载API之前:大约3秒;加载API之后:平均0.6秒(仍然比没有APC的旧系统慢0.5秒)),我们有点激动,但仍然不太满意这样一个简单任务的高加载时间,比如从一个几乎空的数据库中得到一个结果 我不知道,但我可以想象这是由于Symfony自动加载了所有类,即使不需要特定的包 现在,在我们深入研究six Symfony之前,我们想寻求进一步的优化,可能是一种排除特定捆绑包中不需要的组件的方法,因为我个人认为这将带来很大的不同 对于如何进一步提高性能、使用Symfony的经验报告或其他任何有助于我们寻找框架的想法,我将不胜感激 编辑: 有关测试环境的一些信息:Php Symfony 2性能优化,php,performance,symfony,optimization,frameworks,Php,Performance,Symfony,Optimization,Frameworks,我们正在寻找一个PHP框架,以便将来使用,目前正在使用Symfony 2进行测试。为此,我们重新设计了API,并在Symfony中将其作为捆绑包实现。事实证明,Symfony似乎非常慢,实际上比我们的旧系统慢得多 我们试图通过缓存字节码来优化性能(为此使用APC)。虽然我们已经注意到性能有了巨大的提高(加载API之前:大约3秒;加载API之后:平均0.6秒(仍然比没有APC的旧系统慢0.5秒)),我们有点激动,但仍然不太满意这样一个简单任务的高加载时间,比如从一个几乎空的数据库中得到一个结果 我
- 操作系统: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
另外,所有的测试都是在我们系统的本地副本上完成的,因此可以排除可能的网络问题。你看过这篇博文了吗
根据您的信息,我可以建议您尝试使用php-FPM的PHP5.5或5.6和NGINX,它可以快40%或更多 以下几点可以优化您的应用程序性能:
- 用法语
- 用法语
- 用法语
- 用英语
- 用英语
- 用英语
- 用法语
- 用法语
- 用英语
- 用法语
- 限制不必要的捆绑包的使用
- 用英语
- 如果您不想使用细枝引擎,请使用法语
- 从它的食谱-真的令人印象深刻李>
- 也许你可以使用更新版本的Ubuntu
- 就我个人而言,我更喜欢使用Debian,它在服务器上也很流行,因为它非常稳定
- 使用类似Varnish的缓存代理可能是一个画龙点睛的工作
- 清漆需要显影剂的暗示,也可能需要一种形式。使用NGINX FastCGI缓存将FastCGI请求限制到HHVM、FPM或PHP-NG可以解决速度响应问题
- 下载所有必要的连接
- 按请求更新多个实体
- 以关联数组的形式获取数据
- 使用引用代理
- 不要忘记使用Symfony profiler工具栏
所描述的代码在github上可用:您是否也在缓存doctrine stuff查询和元数据?这是一个广泛的问题。您是否在
prod
环境中运行?您是否找到了性能瓶颈所在?您使用的是什么操作系统和php版本?@Touki我更新了我的帖子并添加了所需的信息。我们还在prod
上运行,并缓存了所有可能的内容。有一个缓存文件加载了很多常见的Symfony类,但并不是所有的。甚至不接近。我知道你说你正在生产模式下运行,但你可能需要再次检查。谢谢你的回答。不幸的是,所提供的文章都是用法语写的,甚至在几乎没有集中精力之后——我一个字也听不懂(是否有任何英文版本?是的,你完全有理由。我添加了几篇英文文章,我认为你有优化解决方案的所有途径。感谢更新你的帖子。我们研究了你的每一个建议,并能够将我们API的加载时间大大缩短到0.1秒以下,这是非常重要的。)非常感谢您的帮助,+接受您的答案。请将链接文章中最重要的部分添加到您的答案中。