Не имеет смысла пробовать сериализацию объекта и чтение длины строки? Очевидно, что это будет несколько байтов, потому что сериализованная строка имеет s: 'string', поэтому s: '' является дополнительными байтами ... если serialize не может быть таким же, как PHP хранит объекты ???
так, например
$size = strlen(serialize($object));
Просто мысли?
Другой грязная, но, возможно, точная мысль:
Предполагая переменный экземпляр класса, который был манипулирует несколько раз, так как конкретизация:
$DB; // database access class for eg.
$mem = memory_get_usage();
$DB_tmp = clone $DB;
$mem = memory_get_usage() - $mem;
unset($DB_tmp);
$ ает может быть точным объемом памяти, выделяемый $ DB ;
Что делать, если PHP решает освободить память, которая была выделена, только в «неправильное время»? Я действительно не знаю, когда PHP освобождает память (вроде бы «когда нужно», я полагаю), но я предполагаю, что это освобождение может принести некоторые проблемы? Особенно с сборщиком мусора, представленным PHP 5.3 для циклических ссылок? –
Ну да, но в дополнение к тому, что упоминал Паскаль, я хочу, чтобы это можно было найти в разное время, а не только во время распределения. Я хочу найти это много линий по дороге. –
@Pascal: PHP не освобождает память, на которую все еще ссылается объект, активно используемый. Циклические ссылки означают ссылки B и B ссылки A, но ничто иное не ссылается ни на A, ни на B. Таким образом, память не будет освобождена до тех пор, пока программа все равно может ссылаться на нее. –