Hallo Leute,
ich habe folgendes Problem:
Auf meinem Server ist die Menge an Arbeitsspeicher, die ein Skript allokieren darf auf 300 MB eingestellt. Diese Grenze habe ich vor kurzem erreicht und habe mich an selbiges gesetzt und versucht Speicherplatz wieder freizugeben, indem ich Variablen per unset() lösche.
Per memory_get_usage() habe ich mir den Speicherplatzbedarf an verschiedenen Stellen im Skript angeschaut. Auffällig ist, dass durch Löschen von Variablen der Speicherverbrauch des Skriptes nicht sinkt.
Nach einiger Recherche habe ich herausgefunden, dass es in PHP einen sogenannten Garbage Collector gibt, der die Speicherverwaltung übernimmt und den Speicher nach seinem eigenen "Zeitplan" freigibt, wenn er merkt, dass es keine Referenzen mehr auf Variablen gibt, die Speicherplatz belegen.
Sehe ich das richtig, dass es für mich nun keine Möglichkeit gibt, während der Laufzeit des Skriptes tatsächlich Speicher freizugeben?
Danke für eure Antworten!
Gruß Tarlar
Edit: Es handelt sich um PHP Version 5.2.4
ich habe folgendes Problem:
Auf meinem Server ist die Menge an Arbeitsspeicher, die ein Skript allokieren darf auf 300 MB eingestellt. Diese Grenze habe ich vor kurzem erreicht und habe mich an selbiges gesetzt und versucht Speicherplatz wieder freizugeben, indem ich Variablen per unset() lösche.
Per memory_get_usage() habe ich mir den Speicherplatzbedarf an verschiedenen Stellen im Skript angeschaut. Auffällig ist, dass durch Löschen von Variablen der Speicherverbrauch des Skriptes nicht sinkt.
Nach einiger Recherche habe ich herausgefunden, dass es in PHP einen sogenannten Garbage Collector gibt, der die Speicherverwaltung übernimmt und den Speicher nach seinem eigenen "Zeitplan" freigibt, wenn er merkt, dass es keine Referenzen mehr auf Variablen gibt, die Speicherplatz belegen.
Sehe ich das richtig, dass es für mich nun keine Möglichkeit gibt, während der Laufzeit des Skriptes tatsächlich Speicher freizugeben?
Danke für eure Antworten!
Gruß Tarlar
Edit: Es handelt sich um PHP Version 5.2.4
Kommentar