Kohana控制器设置意外地变慢

时间:2010-03-03 04:39:34

标签: 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.42MB
ReflectionClass >newInstance()  12.054  1   1.35MB
Controller Execution    0.036   1   0.25MB
Total Execution 12.117  1   2.30MB

通过挖掘Kohana核心,我发现ReflectionClass> newInstance()导致问题

但我不确定应该从哪里开始。 :(

请帮助。谢谢


我已深入挖掘自己的代码,看起来像它的Session :: instance()导致问题。 Session :: instance()12.032 1 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;

1 个答案:

答案 0 :(得分:0)

就像它在DocBlock中所说的那样,Session类正在使用Singleton pattern。 Singleton模式确保在任何给定时间只有一个类的实例。你展示的代码没有做任何特别的事情。这是模式的标准实现。我非常怀疑这是罪魁祸首。如果有的话,你必须查看Session::__construct

更好的方法是使用Xdebug来分析应用程序并获得detailed listing of the execution flow。这将更多地阐明这么长时间的事情。