【发布时间】:2010-03-03 04:39:33
【问题描述】:
我是一位经验丰富的 PHP 开发人员,对 kohana 不熟悉。
我用Kohana建了一个网站,但是上传到我的服务器后,我发现“控制器设置”部分异常缓慢,耗时12s,而其他不到0.5s,
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() 导致了问题。 会话::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;
【问题讨论】:
-
您需要粘贴您的控制器代码(如果可能),以便我们查看发生了什么。另一方面,您声称自己是一位相当有经验的 PHP 开发人员,然后表明您甚至不知道单例是什么。
-
公平地说,很多 PHP 开发人员在 PHP 4 上完成了大部分工作,因此单例对他们来说可能是一个新概念。
-
我也遇到了类似的问题,我已将其范围缩小到 session_start() - 你还记得你是如何解决这个问题的吗?
标签: php kohana benchmarking