IPS_GetObjectList -Fatal error: Allowed memory size of 67108864 bytes exhausted

Hallo,

laufe in oben stehende Fehlermeldung bei folgendem simplen Script. Die Objektliste hat rund 31000 Einträge. Limitiere ich die Ausgabe auf 20000 (zweites Script) sieht man, wie der Spiecher hochläuft - pro Abfrage mit IPS_GetObject um ca. 6 MB. Sehr seltsam und sollte nicht sien, wenn korrekt Speicher wieder freigegeben wird. zumal das zurückgegebene Objekt Array nur einen Bruchteil von 6 MB hat …
Gleiches Problem übrigens bei IPS_GetVariableList etc.
Irgendwelche Ideen? Danke, Dirk

IPS4.4/64, WIN10/64

<?

$start_memory = memory_get_usage(true);
var_dump($start_memory/104/1024);
$ids=IPS_GetObjectList();
var_dump(count($ids));
$z=0;
foreach($ids as $id) {
	$o=IPS_GetObject($id);
	$z=$z+1;
	//if($z>20000) { break;}
}
$t= memory_get_usage() - $start_memory; ;
var_dump($t/1024/1024);

?>
float(12.307692307692)
int(31095)

Fatal error:  Allowed memory size of 67108864 bytes exhausted (tried to allocate 76 bytes) in C:\IPS4\scripts\10253.ips.php on line 10
<?

$start_memory = memory_get_usage(true);
var_dump($start_memory/104/1024);
$ids=IPS_GetObjectList();
var_dump(count($ids));
$z=0;
foreach($ids as $id) {
	$o=IPS_GetObject($id);
	$z=$z+1;
	if($z>20000) { break;}
}
$t= memory_get_usage() - $start_memory; ;
var_dump($t/1024/1024);

?>
float(12.307692307692)
int(31095)
float(60.948303222656)

Wir haben dieses Problem schon einmal im Forum gehen. Das ist leider ein Fehler vom Garbage Collector / Memory Management in PHP 5.6… Das Problem sollte sich bei dir in Luft auflösen mit IP-Symcon 5.0 welches PHP 7.2 an Board hat.

paresy

Danke für die Info. Sehr unschön. - zumal, verrückt ist die Welt, das ganze unter IPS 3.2 und WinXP/32 funktioniert hat … von wg */64 „besser“ … Auch freigeben der Variable per unset oder set $o=null bringt nichts. Bleibt nur die Krücke, das ganz in chunks abzuarbeiten. ich hoffe mal auf IPS 5.0.
Dirk