Деструктор PHP превышает ограничение по времени

#php #performance #destructor

#php #Производительность #деструктор

Вопрос:

Недавно я заметил, что время выполнения страницы с моего локального сайта превышает 30 секунд. Это вызвано деструктором класса Common, от которого все модели DB наследуют код. Я думал, что проблема заключается в коде из функции, но нет. Код метода __destruct():

 public function __destruct() {
    foreach(get_class_vars(get_class($this)) as $varName=>$varValue) {
        $this->$varName = null;
    }
}
  

Я прокомментировал foreach, и никакого успеха, ограничение по времени превышено. Я прокомментировал метод, это заставило страницу загружаться как обычно.

До момента превышения времени было 52 вызова метода. Что может быть причиной этого, если метод без кода требует много времени для выполнения?

Комментарии:

1. можете ли вы создать полный (маленький / минимальный) скрипт, который воспроизводит проблему?

2. @KarolyHorvath, пытался воспроизвести, но безуспешно.

3. @SpartakusMd если вам не удается создать тестовый пример с нуля, идите в другом направлении. Удалите как можно больше кода из вашего текущего скрипта, сохранив ошибку. Надеюсь, в конце концов, вы сократите свой скрипт до минимального тестового примера. И лично мне очень интересно это увидеть.

Ответ №1:

Вам не нужно этого делать. PHP сделает это за вас.

Комментарии:

1. верно amp;amp; хороший совет. на самом деле это не решает актуальный вопрос.

2. Подумал, что это нужно сказать, и в данном случае как ответ, а не комментарий. (Потому что никто не должен копировать этот код)