【问题标题】:PHP destructor exceeds time limitPHP析构函数超过时间限制
【发布时间】: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


【解决方案1】:

您不需要这样做。 PHP 会为你做这件事。

【讨论】:

  • 真正的 && 好建议。但并没有真正解决实际问题。
  • 认为这必须说,在这种情况下作为答案而不是评论。 (因为没有人应该复制这段代码)
猜你喜欢
  • 2021-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多