【问题标题】:Sonata Admin for Symfony2 performanceSymfony2 性能的奏鸣曲管理员
【发布时间】:2012-01-07 00:07:05
【问题描述】:
我是 Symfony2 的新手,我必须承认我很享受它。我开始使用 SonataAdmin,但很快就出现了一个重大疑问:
加载列表页面(使用空数据库)大约需要 3 秒是正常的吗?我知道在生产中我应该使用 APC 或 memcache 来加快速度,但对我来说这看起来很奇怪,需要花费很多时间。
我正在使用带有 Turnkey 灯(1GB 内存)的虚拟机进行开发。
我的电脑相当新:Intel i3 8Gb 内存。
请告诉我你的想法/经验。
谢谢。
【问题讨论】:
标签:
php
performance
symfony
【解决方案1】:
在开发环境中,很难衡量性能,因为框架和捆绑包有时需要解析大量配置文件、内省对象并执行耗时的任务并缓存输出。
在生产中,很多事情都是预先完成的,即当您部署到 Web 服务器时。前面的工作是为了避免解析文件,做耗时的任务等。这就是为什么在生产中,你几乎不能在修改完成后再次运行php app/console clear:cache 的情况下更改任何内容。即使更改单个 Twig 模板也需要清除缓存以更新呈现给最终用户的输出。
我没有亲自测试这个包,但是管理员生成器包需要检查很多属性和对象才能正确执行他的任务。这确实很耗时,但仅在开发模式下才需要。在生产中,这种自省过程不是必需的,并且信息可能缓存在某处。这应该会在生产环境中提供比在开发环境中更好的性能。
归根结底,我认为这个捆绑包没有性能问题,但这取决于您的需求和目标。我唯一可以确定的是:在生产模式下测试它,看看它最终会给你带来的速度。清除生产模式的缓存并使用app.php 而不是app_dev.php。此外,请查看 symfony.com 上的 performance 文档。
php app/console cache:clear --env=prod --no-debug
希望这会有所帮助。
问候,
马特