Przed chwilą ktoś się mnie spytał, czy to normalne, że transport GG zżera 64MB pamięci
(pole VIRT na topie). No normalne to nie jest, ale sprawdziłem u siebie… odpaliłem top,
dałem
i moim oczom ukazało sięu jabber
913MB w polu VIRT
procesu jggtrans
. Hmmm…
chyba mamy mały wyciek… Tylko kiedy ja to zbadam i poprawię?
Już dość dawno temu mój znajomy napisał prześliczną bibliotekę (o ile można to nazwać aż tak dużym słowem) o nazwie xmalloc. Jest o tyle zarąbczasta, że używasz xmalloc, xfree xrealloc etc. zamiast standardowych alokacji pamięci. Ona za Ciebie sprawdza, czy udało się jej zarezerwować pamięć i inne takie.
Jednak prawdziwe cudo tej biblioteki ukazuje się kiedy kompilacja jest w trybie DEBUG. Odpowiednie zmienne środowiskowe wskazują na plik, który ma zapisywać logi rezerwacji i zwalniania pamięci… i potem prostą komendą, po zamknięciu programu widzisz gdzie i jaka pamięć została zarezerwowana i niezwolniona…
Moim zdaniem pychota 🙂 Wanna?
PolubieniePolubienie
Jasne, i będę pół kodu przerabiał. W tym nieswoje libxode i libgadu. To ja juz wolę Valgrinda, który żadnych modyfikacji w kodzie nie wymaga, a wycieki pamięci wykryje i zlokalizuje nawet w zamkniętej binarce. Tylko najpierw trzeba się zorientować _kiedy_ ta pamięć wycieka. Może znowu był jakiś pad serwerów GG?
PolubieniePolubienie