Wycieki pamięci
Proces wycieku pamięci polega na stopniowym zwiększaniu się ilości pamięci operacyjnej konsumowanej przez uruchomiony program. Zazwyczaj jest wynikiem błędu w programie, przez który nieużywana pamięć nie jest zwalniana.
Szczególnie niebezpieczne są wycieki pamięci w programach działających przez długi czas bez restartu. W takim przypadku po pewnym czasie taki program może wyczerpać cały dostępny wolumen pamięci operacyjnej, co doprowadzi do awaryjnego zatrzymania programu lub, co gorsza, do nieprawidłowego działania.
Istnieją następujące sposoby zapobiegania wyciekom pamięci:
- Zastosowanie garbage collectorów (odśmiecaczy pamięci), które zwalniają nieużywaną pamięć, ale jednocześnie zabierają część zasobów systemu na swoją pracę, co prowadzi do spowolnień jego działania lub zawieszeń.
- Restart programu za pomocą zewnętrznego programu, w wyniku którego po zakończeniu pracy programu cała pamięć znów wraca do systemu i wycieki nie są tak duże.
- Rezygnacja z dynamicznego alokowania pamięci, co z kolei wyklucza podobne błędy, ale również ogranicza funkcjonalność programów.
- Wykorzystanie wskaźników własnościowych (owning pointers) po to, aby uzgodnić czas życia wskaźnika i czas życia obiektu, na który wskazuje. Jednakże ten sposób nie nadaje się dla referencji cyklicznych między obiektami.
Zobacz też
-
okres czas wykonania,
w którym wykonywany jest program -
Dane źródłowe,
które reprezentują lokalizację danych -
zbiór programów Oprogramowanie,
który zapewnia funkcjonowanie aplikacji -
zbiór programów System operacyjny,
który zapewnia zarządzanie systemami komputera