2013-07-26 О, я по ходу баг в PHP нашёл - утечку памяти?
Материал из YourcmcWiki
См. https://bugs.php.net/bug.php?id=65340
При использовании __set() объект почему-то занимает в 2 раза больше памяти O_o
Тестовый скрипт:
<?php // Memory leak somewhere around __set? class A { var $data = array(); function __get($k) { return $this->data[$k]; } function __set($k, $v) { return $this->data[$k] = $v; } } $b = new A(); for ($i = 0; $i < 500000; $i++) $b->{"a$i"} = 'abc'; var_dump(memory_get_usage()); // int(78318488) - why so big? $c = clone $b; unset($b); var_dump(memory_get_usage()); // int(42220972) - OK unset($c); $b = new A(); for ($i = 0; $i < 500000; $i++) $b->__set("a$i", 'abc'); var_dump(memory_get_usage()); // int(42221492) - OK
Почему-то первое значение потребления памяти почти в 2 раза больше, чем два других.
[ Хронологический вид ]Комментарии
Войдите, чтобы комментировать.