Mailinglisten-Archive |
Hallo, wir habe in einem größeren Projekt derzeit ein Problem mit dem Speicherverbrauch eines Scripts. Ich habe das Problem in einem kleineres Script reproduzieren können. Aber vielleicht ist das ja auch ein Feature. Hier das Script: <?php class tubu { protected $object = NULL; public function __construct($pObject) { $this->object = $pObject; } } class bar { protected $list = array(); public function __construct() { $this->init(); } public function init() { $this->list[] = new tubu($this); } } class foo { protected $bar = NULL; public function doTest() { for ($i=1; $i<100000;$i++) { fwrite(STDOUT, "$i: " . memory_get_usage(true) . "\n"); $this->bar = new bar(); } } } $foo = new foo(); $foo->doTest(); ?> Dieses Script frisst bei jedem Druchlauf mehr Speicher. Wenn ich in der Function init() in Klasse bar folgende Zeile verwende ist alles OK. $this->list[] = new tubu(clone $this); // ein clone vor das $this. Hat da jemand vielleicht eine Idee? Danke und Grüße, Stefan Sturm
php::bar PHP Wiki - Listenarchive