Speicherprobleme: foreach und simplexml
Speicherprobleme: foreach und simplexml
am 21.09.2006 16:36:27 von Nicolai Scheer
Hallo zusammen!
Folgender Code bereitet mir momentan Kopfschmerzen:
$xmldata =3D null;
for ( $i =3D 0; $i < 100000; $i++ )
{
$xmldata =3D simplexml_load_file( "xmltest.xml" );
foreach ( $xmldata->datensatz as $dataset )
{
# ich mach nix...
}
$xmldata =3D null;
}
Folgendes xml liegt zugrunde:
Inhalt1
Inhalt2
Inhalt3
[ ... weitere Datensätze ]
Das Ganze läuft mit php5.1.5 auf der Kommandozeile unter einem Windows
XPSP2.
SimpleXML lädt die Datei in den Speicher und mit $xmldata =3D null helf=
e
ich dem GC etwas nach. Soweit so gut. Das durchlaufen der Elemente
mittels foreach frisst jedoch enorm viel Speicher.
Ohne das Durchlaufen der Elemente schwankt der Speicherverlauf zwar
durch das Laden und wieder freigeben, bleibt aber in einem gewissen
Rahmen konstant.
Kann mir jemand sagen, wie ich gegen dieses Problem ankämpfen kann?
Ich würde gerne explizit Speicher freigeben, es erscheint mit allerding=
s
schon schleierhaft wieso das foreach-iterieren soviel zusätzlichen
Speicher alloziiert, und vor allem diesen scheinbar nicht mehr freigibt..=
Irgendwelche Ideen?
Danke!
Grüße,
Nico
Re: Speicherprobleme: foreach und simplexml
am 21.09.2006 18:06:58 von Ulf Kadner
Nicolai Scheer wrote:
> Folgender Code bereitet mir momentan Kopfschmerzen:
>
> $xmldata = null;
> for ( $i = 0; $i < 100000; $i++ ) {
> $xmldata = simplexml_load_file( "xmltest.xml" );
> foreach ( $xmldata->datensatz as $dataset ) {
> # ich mach nix...
> }
> $xmldata = null;
> }
>
> Das Ganze läuft mit php5.1.5 auf der Kommandozeile unter einem Windows
> XPSP2.
> SimpleXML lädt die Datei in den Speicher und mit $xmldata = null helfe
> ich dem GC etwas nach. Soweit so gut. Das durchlaufen der Elemente
> mittels foreach frisst jedoch enorm viel Speicher.
Das sieht nach einem Bug aus (hatte ich auch vor nem Monat aber 5.1.6
ist wieder OK):
http://bugs.php.net/bug.php?id=38604
MfG, Ulf
Re: Speicherprobleme: foreach und simplexml
am 21.09.2006 18:10:28 von Ulf Kadner
Ulf Kadner wrote:
> Das sieht nach einem Bug aus (hatte ich auch vor nem Monat aber 5.1.6
> ist wieder OK):
> http://bugs.php.net/bug.php?id=38604
Ob der unter Windows auch gefixt ist weis ich allerdings nicht. Linux
ist aber OK!
MfG, Ulf
Re: Speicherprobleme: foreach und simplexml
am 21.09.2006 23:32:23 von Nicolai Scheer
Hi!
Ulf Kadner schrieb:
>> http://bugs.php.net/bug.php?id=3D38604
> Ob der unter Windows auch gefixt ist weis ich allerdings nicht. Linux
> ist aber OK!
Danke für die Info!
Mit 5.1.6 ist das Verhalten leider das Gleiche.
Ist ziemlich fies, da ich zwar nur kleine, aber dafür sehr viele Dateie=
n
verarbeite.
Ich würde eigentlich gerne den XMLReader benutzten, der kann soweit ich=
es gesehen habe aber noch nicht gegen xml-Schemata validieren...
Gruß,
Nico