Wiem, że istnieją 2-3 tematy na ten temat, były problemy z FinalizerReference
, ale nadal nie jest to dobrze wyjaśnione. Mam pytanie dotyczące tej klasy i jak działają w niej rzeczy.Android FinalizerReference za pomocą 7 MB pamięci RAM
Bez względu na to, co robię w moim app, FinalizerReference
zawsze 5-10 RAM
dla siebie, i moje pytanie brzmi:
jest to normalne zachowanie, że nie mam się martwić?
Z tego co wiem, obiekty Java są zwalniane, ale "wskaźniki" pozostają w pamięci i są czyszczone przy następnym GC (tak samo jak normalne obiekty oczyszczane za pomocą GC, bez odniesienia do niego).
Dla mnie jest to trochę źle, ponieważ jeśli mam ~ 64 MB pamięci RAM do użycia z moją aplikacją i 10mb są zmarnowane - musi to być problem.
Sprawdziłem to wszystko, usunąłem wszystkie przecieki, które miałem i obecnie moja aplikacja po prostu pozostaje w 18 ~ MB pamięci RAM (7 RAM - grafika, 2 RAM - Obiekty). Reszta - FinalizerReference
;/
oto ekran z jego wystąpień:
i tu jest mój monitor pamięci (pozostaje w tej formie przez 30 minut):
Ponadto w panelu "Wystąpienia" znajduje się 50 wpisów, w tym ~ 5 z mojego kodu i bibliotek, z których korzystam. Reszta jest z Androidem - InputManagers, paczki, proxy itp
Edit
Dzieje się tak na Galaxy S5. Na Android Emulator mam ~ 2MB z FinalizerReference
Mam na myśli system, ponieważ obok niego napisana jest klasa systemowa i o ile mi wiadomo, oznacza to, że system Android załadował tę klasę – hakobyanheghine