【发布时间】:2014-08-09 01:06:11
【问题描述】:
最近我注意到我本地站点的页面超过了 30 秒的执行时间限制。这是由类 Common 的析构函数引起的,所有 DB 模型都从该析构函数继承代码。我认为问题出在函数的代码中,但不是。 __destruct 方法代码():
public function __destruct() {
foreach(get_class_vars(get_class($this)) as $varName=>$varValue) {
$this->$varName = null;
}
}
我注释掉了foreach,没有成功,超出时间限制。我评论了该方法,这使页面正常加载。
直到时间超过那一刻,该方法的调用次数为 52 次。如果没有代码的方法需要很长时间才能执行,这可能是什么原因?
【问题讨论】:
-
你能创建一个完整的(小/最小)脚本来重现问题吗?
-
@KarolyHorvath,尝试复制但未成功。
-
@SpartakusMd 如果您无法从头开始构建测试用例,请朝另一个方向发展。从当前脚本中删除尽可能多的代码,同时保留错误。最终,希望您将脚本缩减为最小的测试用例。就个人而言,我很感兴趣。
标签: php performance destructor