[PHP] Wyciek pamięci |
[PHP] Wyciek pamięci |
4.02.2018, 13:09:10
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
Witajcie,
nie do końca wiem jak w PHP narazić się na wyciek pamięci, ale chyba właśnie padłem jego ofiarą. Mam skrypt konsolowy, który czyta po kolei strony z zewnętrznego serwera i zawsze po około 40-50-ciu tysiącach iteracji otrzymuję błąd w stylu: Cytat PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 421888 bytes) in ... on line 36 A to mój kod (uprościłem dla przykładu):
Linia 36. to: Czy po kroku iteracji zawartość $html dalej jest trzymana w pamięci? Jakoś nie chce mi się w to wierzyć. Ten post edytował SmokAnalog 4.02.2018, 13:09:52 |
|
|
6.02.2018, 19:56:49
Post
#2
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
przy
Kod 582 366144 FAIL 583 366144 FAIL 584 366144 FAIL 585 366144 FAIL 586 366144 FAIL 587 366144 FAIL 588 366144 Ten parametr w zasadzie nic nie zmienia, tylko mamy trochę większe zużycie ale ono nie rośnie dzięki temu że kasujemy referencje do poprzedniego. Cytat It is because exceptions include a backtrace, containing all the arguments given to the error handling closure. The fifth argument of ErrorException given is $context, an array containing all local variables, including the previous $e. Cytat Pytanie jeszcze o co chodzi z tym parametrem w memory_get_usage, bo wg dokumentacji jest to: W źródle dokładnie to wygląda tak: Kod if (real_usage) {
return AG(mm_heap)->real_size; } else { size_t usage = AG(mm_heap)->size; return usage; } Ten post edytował com 6.02.2018, 20:05:26 |
|
|
Wersja Lo-Fi | Aktualny czas: 28.04.2024 - 17:45 |