Autor Wątek: Wyciek pamięci ;/  (Przeczytany 2060 razy)

Offline kokos22

  • Użytkownik

# Wrzesień 23, 2013, 16:45:03
Od niedawna programuje w javie. Dawniej pisząc w c++ wskaźników pilnowałem jak oka w głowie jednak garbare collector tak mnie rozleniwił, że zauważyłem że w aplikacji na androida ucieka mi gdzieś pamięć. Kod mam bardzo rozbudowany i tu moje pytanie. Czy tracąc ostatnia referencje do obiektu X zawierającego n obiektów Y   garbare collector zwolni pamięć wszystkich obiektów, zarówno zajmowaną przez X jaki i przez wszystkie Y ? (Referencje do Y zawiera tylko X)

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Wrzesień 23, 2013, 16:58:31
Cytuj
Czy tracąc ostatnia referencje do obiektu X zawierającego n obiektów Y   garbare collector zwolni pamięć wszystkich obiektów, zarówno zajmowaną przez X jaki i przez wszystkie Y ? (Referencje do Y zawiera tylko X)
Tak.

Ale jak masz rzeczywiście wyciek, to prawdopodobnie gdzieś zostają Ci jakieś referencje, w łańcuszku czy czymś takim, przez które do tych wszystkich "zgubionych" obiektów można jeszcze dojść.

Offline koirat

  • Użytkownik

# Wrzesień 23, 2013, 17:12:21
Korzystasz z jakiś listener-ów z którymi zapominasz zrobić porządek, bo to chyba najczęstsza przyczyna wycieku w programach z GC.

Offline .Dexter.

  • Użytkownik

# Wrzesień 23, 2013, 19:20:29
Ewentualnie przekazujesz gdzieś niewłaściwy Context. Bez kodu ciężko stwierdzić.
http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html

Offline golina5

  • Użytkownik

# Wrzesień 25, 2013, 12:31:55
Przy wyciekach pamięci bardzo pomogło mi to narzędzie :
http://www.eclipse.org/mat/