Wäre es nicht sinnvoll, das Objekt zu serialisieren und die Stringlänge zu lesen? Offensichtlich wird es einige Bytes aus sein, weil die serialisierte Zeichenkette s hätte: 'string' deshalb s: '' sind zusätzliche Bytes ... es sei denn, die Serialisierung könnte genauso sein, wie PHP Objekte speichert.
so zum Beispiel
$size = strlen(serialize($object));
Nur so ein Gedanke?
Ein weiterer chaotisch, aber möglicherweise genau Gedanken:
eine Klasse Instanzvariable Unter der Annahme, dass ein paar Mal seit Instanziierung manipuliert wurde:
$DB; // database access class for eg.
$mem = memory_get_usage();
$DB_tmp = clone $DB;
$mem = memory_get_usage() - $mem;
unset($DB_tmp);
$ könnte mem die genaue Größe des Speichers auf $ DB zugeordnet sein ;
Was ist, wenn PHP beschließt, den Speicher freizugeben, der gerade zur "falschen Zeit" reserviert wurde? Ich weiß nicht wirklich, wann PHP Speicher freigibt (irgendwie "wenn nötig", nehme ich an), aber ich denke, dass diese Freigabe einige Probleme bringen könnte? Besonders mit dem Garbage Collector von PHP 5.3 für zyklische Referenzen? –
Nun ja, aber zusätzlich zu dem, was Pascal erwähnt, möchte ich in der Lage sein, dies zu verschiedenen Zeiten herauszufinden, nicht nur zur Zeit der Zuweisung. Ich möchte das in vielen Zeilen auf der Straße herausfinden. –
@Pascal: PHP wird keinen Speicher freigeben, der immer noch von einem aktiven Objekt referenziert wird. Zyklische Referenzen bedeuten A Referenzen B und B Referenzen A, aber nichts anderes verweist auf A oder B. So wird Speicher nicht freigegeben, solange das Programm noch auf irgendeine Weise darauf verweisen kann. –