Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] "Odśmiecanie" (zwalnianie) pamieci w prawidlowy sposob
Octobus
post 3.10.2018, 15:47:20
Post #1





Grupa: Zarejestrowani
Postów: 250
Pomógł: 1
Dołączył: 3.07.2011

Ostrzeżenie: (0%)
-----


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 ?

Ten post edytował Octobus 3.10.2018, 15:54:15
Go to the top of the page
+Quote Post
Crozin
post 4.10.2018, 10:17:03
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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?

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.10.2019 - 07:27