![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 7.06.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Czy w PHP istnieją jakieś mechanizmy zwalniania pamięci?
Mam skrypt, który wykonuje dość długą pętlę. Z każdym kolejnym przebiegiem pętli rośnie zużycie pamieci przez php. Mam wrażenie, że jakieś zmienne zajmują kolejne obszary pamięci. Ten post edytował 115750 25.11.2014, 15:31:14 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Możesz usunąć (unset) bądź nadpisać (np.: $zm = null) daną zmienną. O ile będzie ona jedyną referencją do danego obszaru pamięci powinna zostać zwolniona pamięć po niej.
Jeżeli możesz postaraj się uprościć/skrócić kod i pokaż nam go. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 60 Dołączył: 25.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Oprócz nullowania, unsetowania i używania referencji, możesz też jawnie wywołać czyszczenie pamięci przez gc. Trudno powiedzieć, co Twój kod wyczynia.
-------------------- there is much to be learned
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 7.06.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Uprościłem w miarę ten kod i wklejam go do analizy.
Skrypt ma sprawdzać po serię numerów seryjnych. Jeśli istnieją one już w lokalnej bazie, to przechodzi do kolejnego numeru. Jeśli numeru nie ma w lokalnej bazie, to ma pobierać go ze strony, parsować otrzymane dane i zapisać je w bazie.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ło matko, 10tyś razy nawiązujesz połączenie z BD.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 340 Pomógł: 46 Dołączył: 31.07.2009 Skąd: A Ostrzeżenie: (0%) ![]() ![]() |
@Pyton_000 to jest chyba jakaś nowa szkoła programowania, koleś robi copy/paste z kilku źródeł a jak nie działa jak powinno to na forum ze nie działa ;p Inaczej tego kodu nie potrafię opisać ;p
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ja nawet nie próbowałem bo śmietnik niemiłosierny.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 7.06.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Ta pętla for jest tam dołożona później, do oryginalnego skryptu, więc przez to wygląda to jak wygląda.
Dzięki za te uwagi, już to wyrzuciłem poza pętlę. Doszedłem już do tego, że funkcja file_get_html() powoduje te problemy. Z każdym wykonaniem tej funkcji rośnie zużycie pamięci. Starczyło wywołać metodę $html->clear() i jest ok. Ten post edytował 115750 27.11.2014, 12:37:23 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 02:16 |