Я часто нахожу ссылки на следующую цитату, используемую при объяснении того, что PHP unset()
не запускает "сборку мусора" немедленно, но только тогда, когда она сочтет нужным (выделение мое):
unset() делает то, что он называет - отключить переменную. Это не приводит к немедленному освобождению памяти. РНР сборщик мусора сделает это, когда он см. припадки - по желанию, как только эти циклы ЦП не нужны в любом случае, или еще до того, как script закончится память, что бы ни происходило первый.
Если вы делаете $whatever = null; то вы переписываете переменную данные. Вы можете освободить память/ быстрее сокращается, но может красть процессор циклов из кода, который действительно нужен их раньше, в результате чего общее время выполнения.
Я хочу знать, как работает код C для этого цикла "низкая память" и "свободный цикл процессора", запускающий сборку мусора, и отличается ли она от PHP 5.2.x и PHP 5.3 +.
Итак, я загрузил исходные файлы C PHP 5.2.17 и попытался найти правильные разделы кода. Может быть, я просто слепой, или мои навыки С слишком низки, но я не смог найти такой код.
Может кто-нибудь указать мне на правильные файлы C, пожалуйста?
ИЗМЕНИТЬ
При поиске примеров использования приведенной выше цитаты я понял что-то странное.
Некоторые примеры, например qaru.site/info/30116/..., ссылаются на эту цитату, используя следующий URL-адрес для комментария на php.net: http://us2.php.net/manual/en/function.unset.php#86347.
Просмотр этого URL-адреса показывает только верхнюю часть руководства unset()
. Комментарий # 86347 отсутствует.
Проверка машины обратного пути показывает, что этот комментарий DID существует с октября 2008 года, но исчезли где-то в сентябре или после сентября 2012 года (причина неизвестна).
Может быть, эта цитата и всегда была просто неправильной?
Или есть кто-нибудь, кто может указать мне на правильные файлы C?