Moin!
Aha, dann ist das eine Leiche oder ein Fötus im Handbuch: "no version information, might be only in CVS".
5.x und 4.4.4 funktionieren schon mal nicht!
Nur, wenn PHP mit der richtigen Option kompiliert wurde.
Wobei: get_memory_peak_usage() hilft dir nicht unbedingt. Dazu müßte das Skript einmal funktionierend durchlaufen.
Und das Resultat wäre nur bei einer konkreten XML-Datei anwendbar. Nimmst du eine andere Datei, wird sich der Speicherbedarf ändern.
Arrays und Objekte nehmen bei PHP relativ viel Speicher ein - jedenfalls im Vergleich zur Erwartung, die man vielleicht hat. Dagegen hilft nur, entweder die Menge an erlaubtem Speicher hochzudrehen, oder den Speicher nicht mehr als erlaubt zu nutzen, also beständig get_memory_usage() und die INI-Einstellung für den maximalen Speicher zu vergleichen.
Wobei letzteres kaum eine gute Lösung sein dürfte, weil man dann das Problem ggf. nicht lösen kann. Man könnte höchstens sauberer aussteigen.
Da ist ja der Haken, denn ich weiss ja im Moment nur von dem einen Problemfall. Die anderen "versteckten" kann so nicht hinbekommen, da ich ja nicht weiss, wo ich das memory_get_usage() plazieren muss.
Du kannst zu jeder Zeit die verbrauchte Speichermenge ermitteln. Das Maximum deiner Messwerte ist dann die mindestens benötigte Speichermenge.
- Sven Rautenberg
"Love your nation - respect the others."