Php Kohana控制器设置异常缓慢

Php Kohana控制器设置异常缓慢,php,kohana,benchmarking,Php,Kohana,Benchmarking,我是一名经验丰富的PHP开发人员,对kohana来说是个新手 我用Kohana建立了一个网站,但在我上传到我的服务器后,我发现“控制器设置”部分异常缓慢,耗时超过12秒,而其他部分耗时不到0.5秒 Kohana Loading 0.014 1 0.49MB Environment Setup 0.004 1 0.05MB System Initialization 0.007 1 0.14MB Controller Setup 12.058 1 1.

我是一名经验丰富的PHP开发人员,对kohana来说是个新手

我用Kohana建立了一个网站,但在我上传到我的服务器后,我发现“控制器设置”部分异常缓慢,耗时超过12秒,而其他部分耗时不到0.5秒

Kohana Loading  0.014   1   0.49MB
Environment Setup   0.004   1   0.05MB
System Initialization   0.007   1   0.14MB
Controller Setup    12.058  1   1.42MB
ReflectionClass >newInstance()  12.054  1   1.35MB
Controller Execution    0.036   1   0.25MB
Total Execution 12.117  1   2.30MB
通过深入研究Kohana core,我发现ReflectionClass>newInstance()是问题的根源

但我不确定我该从这里走到哪里(

请帮忙,谢谢


我已经深入研究了自己的代码,它的Session::instance()似乎是问题的根源。 会话::实例()12.032 1.03MB


在问题跟踪方面,我将会话驱动程序改为缓存,将缓存改为memcache。但是没有太大的改进。所以我打开了session.php,发现了这个问题

     /**
     * Singleton instance of Session.
     */
    public static function instance()
    {
        if (Session::$instance == NULL)
        {
            // Create a new instance
            new Session;
        }

        return Session::$instance;
    }
->“新会话;”


我看不出这有什么意义。我查看了其他类,其中它被写为return new xxx;

就像DocBlock中说的那样,会话类使用了。Singleton模式确保在任何给定时间只有一个类的实例。您显示的代码没有做任何特殊的事情。这是该模式的标准实现。我高度怀疑这是罪魁祸首。如果有,你必须查看
会话::\u construct


更好的方法是使用分析应用程序并获得一份报告。这将更清楚地说明花费了这么长时间的原因。

谢谢Gordon,我现在已经将问题追溯到session_start()。不确定Xdebug是否会在会话_开始时提供更多详细信息,我将尝试进一步修改它。毕竟,此问题从未在我的本地计算机上发生。必须与硬件设置有关。您需要粘贴控制器代码(如果可能)因此,我们可以看到发生了什么。另一方面,你声称自己是一个经验丰富的PHP开发人员,但你甚至不知道什么是单例。公平地说,很多PHP开发人员已经在PHP4上完成了大部分工作,因此单例对他们来说可能是一个新概念。我也有一个类似的问题,我已经缩小到session_start()-你还记得你是怎么修好的吗?