2013-03-09 57 views
7

我一个没有这么大的项目工作(3捆我创建和6我下载/ 5实体),我已经把这个代码我家的控制器上:Symfony2的加载时间和性能

class HomeController extends Controller 
{ 
    public function indexAction() 
    { 
     $time = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"]; 
     echo $time; 
     die(); 

     //... 

它给我在100ms本地主机(启用APC)这是很好。

真正的问题是网络服务器上的行为(使用PROD env和没有安装APC): 如果我不使用的网站像第10分钟,第一次是加载很慢(2到4秒),然后如果我留在网站上,如果我刷新页面,它的速度更快(从500毫秒到1秒)。

这是正常的吗?我的在线服务器或我的symfony2项目有问题吗?

+3

可能是一个长镜头,但是你碰巧启用了xdebug吗?它对性能有巨大的影响。 – gilden 2013-03-10 01:21:49

+0

我不知道。但在尝试这样的事情之前,我想知道这些值是否正常? – httpete 2013-03-10 06:26:53

+2

如果你在体面的硬件上运行并且环境不佳,它们肯定不正常。 – gilden 2013-03-10 09:06:50

回答

2

您应该定义设置APC以减少加载时间。这里有一个提示:

Performance

(2015编辑:链接更新)

+0

由于本地和在线版本之间存在相当大的差异,难道你不认为它来自我的symfony2配置,我的数据库连接...而不是执行PHP? – httpete 2013-03-10 16:46:14

+0

取决于您在本地/远程环境以及操作系统上使用的PHP版本。 – apoq 2013-03-10 16:53:17

+0

我试着在启用了MAMP和APC的MAC上运行项目(我也尝试过xCache)...并且我得到〜30ms而不是〜300ms!这是惊人的更快,谢谢!但是...因为我的在线服务器上无法启用APC,所以我仍在寻找改进方法。 – httpete 2013-03-11 02:44:33

2

只是看看伟大的工具栏/分析器的时间表标签其中Symfony的规定:( http://symfony.com/blog/new-in-symfony-2-2-new-stopwatch-component 不限到2.2)

您是否使用localhost作为database_host?如果是这样,请尝试127.0.0.1!

您是否正在访问Facebook(FOSUserBundle)等第三方API?

+0

我正在使用Symfony v2.0.9,所以我可以安装组件? 我正在使用127.0.0.1和FOSUserBundle。 – httpete 2013-03-15 01:09:29

+0

工具栏绝对可用于2.0.9:https://github.com/symfony/symfony-standard/blob/v2.0.9/app/config/config_dev。yml#L9 您如何更新您的Symfony版本?在渲染时间方面取得了进展? – hacfi 2013-03-15 15:28:36

+0

我使用作曲家安装了Stopwatch组件,但是我的web分析器中没有新东西... 如果我曾经使它工作,它能够在执行第一个控制器之前提供信息吗? (参考我的代码问题) – httpete 2013-03-15 15:40:22