Hallo Leute,
ich habe mir ein kleines PHP-Script geschrieben, dass mehrere Feeds nimmt, diese parst und gewisse Inhalte dann in eine Datenbank schreibt. Blöderweise kann ich das momentan nur auf meinem eigenen Webserver laufen lassen, der kommt von 1&1. Anscheinend frisst das ganze aber etwas zu viel RAM, so das das Script irgendwann vom Server anscheinend beendet wird (automatisch, ich bekomme auch keine Exception oder sonstiges).
Nun habe ich also etwas rumgespielt und bin dabei über
gestolpert (der Parser ist samt den Datenbank-Methoden zum schreiben bzw. updaten in eine eigene Klasse ausgelagert, von der ich dann in einer foreach-Schleife mehrere Instanzen erstelle und diesen dann per Methodenaufruf den Befehl gebe, ihrer Aufgabe nachzugehen). Eigentlich war es von mir so gedacht, dass ich dann, wenn der Feed geparst und in die Datenbank geschrieben wurde, ich das Objekt einfach release und somit den Speicher wieder frei mache für das nächste Objekt und so weiter und so fort. Ich habe meine Methoden an sich auch überprüft, da läuft alles (ich habe das getestet, indem ich die Anzahl der geparsten Feed-Items begrenze auf eine vergleichsweise kleine Anzahl, dann läuft alles so durch wie ich es mir gedacht habe, ich will aber halt alle Items und nicht nur die ersten 10...)
So nun meine eigentliche Frage:
Wie kann ich den RAM wieder freigeben? Also wie entlasse ich ein Objekt richtig, damit auch wirklich alle Refrenzen und Co., was das Objekt halt so hatte, endgültig gelöscht werden und ich demnach wieder den Speicherplatz von neuem füllen kann?
Ich hoffe ihr könnt mir helfen, das wäre echt wichtig!
Viele Grüße
scriptedSheep
ich habe mir ein kleines PHP-Script geschrieben, dass mehrere Feeds nimmt, diese parst und gewisse Inhalte dann in eine Datenbank schreibt. Blöderweise kann ich das momentan nur auf meinem eigenen Webserver laufen lassen, der kommt von 1&1. Anscheinend frisst das ganze aber etwas zu viel RAM, so das das Script irgendwann vom Server anscheinend beendet wird (automatisch, ich bekomme auch keine Exception oder sonstiges).
Nun habe ich also etwas rumgespielt und bin dabei über
gestolpert (der Parser ist samt den Datenbank-Methoden zum schreiben bzw. updaten in eine eigene Klasse ausgelagert, von der ich dann in einer foreach-Schleife mehrere Instanzen erstelle und diesen dann per Methodenaufruf den Befehl gebe, ihrer Aufgabe nachzugehen). Eigentlich war es von mir so gedacht, dass ich dann, wenn der Feed geparst und in die Datenbank geschrieben wurde, ich das Objekt einfach release und somit den Speicher wieder frei mache für das nächste Objekt und so weiter und so fort. Ich habe meine Methoden an sich auch überprüft, da läuft alles (ich habe das getestet, indem ich die Anzahl der geparsten Feed-Items begrenze auf eine vergleichsweise kleine Anzahl, dann läuft alles so durch wie ich es mir gedacht habe, ich will aber halt alle Items und nicht nur die ersten 10...)
So nun meine eigentliche Frage:
Wie kann ich den RAM wieder freigeben? Also wie entlasse ich ein Objekt richtig, damit auch wirklich alle Refrenzen und Co., was das Objekt halt so hatte, endgültig gelöscht werden und ich demnach wieder den Speicherplatz von neuem füllen kann?
Ich hoffe ihr könnt mir helfen, das wäre echt wichtig!
Viele Grüße
scriptedSheep