phpbar.de logo

Mailinglisten-Archive

[php] memory_limit

[php] memory_limit

Ringo Großer swek at gmx.net
Die Dez 9 11:10:38 CET 2003


hallo Lutz,

Lutz Zetzsche wrote:
> naja, was sagt schon eine Windows-Fehlermeldung... ;-) Aber wenn Du
> den Browser schliesst und wieder oeffnest und danach keine Seite mehr
> von Deinem Server aufrufen kannst, bIs Du ihn gestoppt und wieder neu
> gestartet hast, wird es wohl so sein. :-)

der apache scheint sich sofort wieder selbst zu starten. windows killt wohl
nur den prozess und der browser zeit ein server nicht gefunden. ein reload
lässt das spiel von vorn beginnen. ein aufruf anderer seiten nach diesem
absturz oder "zwangsschluss" funktioniert ohne probleme.

>>> weil Deine Ausgabe-Datei im Browser zu gross wird? Und hast Du
>> kann die denn zu groß werden?
> Ja, wenn sie einige hundert KB und groesser wird... ;-)

wird sie definitiv nicht. die originalseite lässt sich ja problemlos
anzeigen
und liegt noch lange nicht am limit. und ich geben allerhöchstens einen
bruchteil dieser seite aus. das meiste wird, wie gesagt, sofort
weggeschrieben.

> Wenn Du gleichzeitig immer nur eines der Dokumente im Speicher
> haeltst, kann es hieran nicht liegen. Initialisierst Du die Variablen
> auch ueberall richtig, so dass die Datenmenge nicht immer groesser
> wird? Manchmal schleicht sich ja an solch einer Stelle ein Fehler ein.

also dokumente immer nur eins. das nächste überschreibt das vorige.
überspringe ich nämlich die betreffenden seite, läuft das script ohne
probleme. es hängt dann eben nur bei etwas größeren seiten.

und irgendwie muss sich ja pro dokument etwas datenmenge kumulieren.
mit sleep(1) während des parsen eines größeren dokumentes kann ich
im taskmanager das wachsen des speicherverbrauches im sekundentakt
beobachten. und bei etwa 16mb (keine ahnung woher der die ganzen
daten nimmt) scheint dann ende der fahnenstange zu sein und es kommt
zur besagten fehlermeldung seitens windows.

> Wenn es am memory_limit liegt... Was macht Dein Skript denn
> eigentlich insgesamt genau? Kannst Du es mal irgendwo zur Einsicht
> bereitstellen? Vielleicht findet sich dann was. Die Informationen
> sind so etwas duerftig.

ist ja etwas größer und ich wollt euch hier nicht mit leseaufwand
überschütten. ich kann auch nicht wirklich einen teil isolieren, der
für sich allein aussagekräftig wäre.
aber ich geb trotzdem mal den link bekannt.
http://dev.edustrial.de/ebay_cat_spider.phps
es ist ein wenig dokumentiert.
der meiner meinung nach verantwortliche teil befindet sich in der
class->loop();
der läuft wie gesagt schleife, solange er listen-elemente im dokument
findet. und genau da scheinen sich daten zu sammeln, die bei besonders
vielen elementen dem apachen den todesstoss verpassen.

> Wenn Du unmittelbar nach dem Haengenbleiben des Skripts dort den
> Server noch erreichen konntest, ist er ja nicht abgestuerzt. Das
> wirft noch einmal die Frage auf, ob Dein lokaler Apache auf Windows
> wirklich abstuerzt oder ob Du es nur glaubst.

tja, wie wir nun festgestellt hatten, kann man einer windows-fehlermeldung
nicht trauen *g*
aber ohne eintrag im error.log muss ich mich wohl auf diese meldung
verlassen, die da als dialog aufpoppt und wie folgt lautet:
"Apache.exe hat Fehler verursacht und wird geschlossen. Starten Sie das
Programm neu.
Ein Fehlerprotokoll wird erstellt."

btw wo find ich denn das?

regards, Ringo



php::bar PHP Wiki   -   Listenarchive