Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] "Odśmiecanie" (zwalnianie) pamieci w prawidlowy sposob
Forum PHP.pl > Forum > Przedszkole
Octobus
Witam,

moglby mi ktos wytlumaczyc jak w prawidlowy sposob zwolnic pamiec ram zajmowana przez skrypt ? Mam skrypt ktory operuje na duzej ilosci danych, przed pobraniem ich z mysql memory_get_peak_usage(true) zwraca 2 MB, po pobraniu danych do $jakas_zmienna (jako tablica wielowymiarowa) mam ponad 600 MB. Zapisuje dane do pliku i daje unset($jakas_zmienna) a polecenie to pokazuje ze nie zwolnilo tego nadmiaru ktory pobralem. Czytalem ze unset dziala ze spowolnienem, zastosowalem wiec $jakas_zmienna = null i mam ten sam wynik, przepelniona pamiec ram mimo usuniecia zmiennej ...

jesli przyjrzec sie poleceniu memory_get_usage(), widac ze duzo pamieci zostalo "zrzucone" jednak serwer wyrzuca mi out of memory wiec trzeba patrzec na "realne" zuzycie. Pytanie tylko jak usunac szybko z ramu niepotrzebny nadmiar ?
Crozin
memory_get_PEAK_usage() jak sama nazwa od dokumentacji nie wspominając wskazuje zwraca najwyższe chwilowe zużycie pamięci jaki skrypt/program miał, nie obecne.

1. GC ma prawo zadziałać dopiero z opóźnieniem.
2. Musisz wczytywać wszystkie dane do pamięci przed ich zapisem? Nie możesz tego zrobić strumieniowo?

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.