我是一位经验丰富的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;
答案 0 :(得分:0)
就像它在DocBlock中所说的那样,Session类正在使用Singleton pattern。 Singleton模式确保在任何给定时间只有一个类的实例。你展示的代码没有做任何特别的事情。这是模式的标准实现。我非常怀疑这是罪魁祸首。如果有的话,你必须查看Session::__construct
。
更好的方法是使用Xdebug来分析应用程序并获得detailed listing of the execution flow。这将更多地阐明这么长时间的事情。