Jak użycie pamięci RAM wpływa na zużycie baterii?

17

Jestem naprawdę zdezorientowany co do zarządzania pamięcią Androida.

Właśnie przeczytałem tutaj, że zabijanie aplikacji przez przesunięcie z ostatniej listy lub użycie zabójców zadań nie oszczędza baterii, ale wyczerpuje więcej, ponieważ powoduje to ponowne załadowanie aplikacji przez system operacyjny przy następnym uruchomieniu lub uruchomieniu przez nich samych. Powiedzieli też, że tak naprawdę powinniśmy się martwić zużyciem procesora, a nie pamięci RAM.

Czy to oznacza, że ​​użycie zbyt dużej ilości pamięci RAM nie powoduje wyczerpania baterii? Ponieważ pamięć RAM jest sprzętem, trzymanie czegoś na niej nie powinno wyczerpywać baterii? Co jeśli grałem w Temple Run i po prostu nacisnąłem przycisk Home, aby aplikacja ładowała się szybciej przy następnym uruchomieniu? A może powinniśmy po prostu naciskać przycisk Wstecz, aż aplikacja wyjdzie, jak zawsze? Przeszukałem również internet, ale niektórzy twierdzili, że rozładuje baterię, ponieważ znajduje się na pamięci RAM, inni twierdzą, że nie ma różnicy między pamięcią RAM lub rzeczywistymi danymi. Czy powinniśmy porzucić nawyk zabijania aplikacji i po prostu zrelaksować się?

Byłoby bardzo mile widziane niektóre dokładne odpowiedzi. Dzięki. :)

Min Naing Oo
źródło
1
Twoja pamięć RAM jest jednym z najmniej energochłonnych urządzeń ...
Brian S
Twój przykład ze świątyni może nie być najlepszy: ponieważ gry mogą wymagać pamięci, albo zostaną zabite przez system operacyjny dość szybko, albo proaktywnie zapiszą ważne dane, gdy zostaną wysłane w tle. W takim przypadku może się ładować nieco szybciej, ponieważ wciąż jest ładowana niewielka część, ale dane gry prawdopodobnie i tak będą musiały zostać załadowane. Lepszym przykładem może być prosty klient Twitter: który może ładnie i przytulnie pasować do twojej pamięci RAM, dopóki nie będziesz go potrzebować ponownie.
Nanne

Odpowiedzi:

22

Wątpię, aby istniała bezpośrednia korelacja między zużyciem baterii a zużyciem pamięci RAM. Sprzęt nie wie, które komórki RAM zawierają „używane” dane, a które nie. Dlatego na tym poziomie nie może być różnicy w zużyciu baterii.

Myślę jednak, że można powiedzieć, że niepotrzebne zabijanie aplikacji powoduje kilka dodatkowych cykli procesora, gdy aplikacje te muszą zostać ponownie uruchomione, a zatem „zużywa więcej baterii”.

I tak, zdecydowanie powinieneś porzucić nawyk zabijania aplikacji. W większości przypadków Android jest w stanie dość dobrze zarządzać zasobami systemu i nie powinieneś zawracać sobie głowy ręcznym zabijaniem aplikacji. Na pewno nie zużyją więcej baterii, jeśli będą bezczynne i zużyją trochę pamięci RAM. Oczywiście, jeśli te aplikacje ciągle korzystają z procesora, rozładują baterię (ale zwykle jest to oznaką błędu w aplikacji lub źle zaimplementowanej aplikacji).

Pływ
źródło
Z drugiej strony istnieją źle działające aplikacje, które budzą się i nie wracają spać w rozsądnym czasie. Są to aplikacje, które najprawdopodobniej powodują problemy z baterią. Możesz na nie spojrzeć za pomocą Wakelock Detector
Ehtesh Choudhury
Dlatego powiedziałem, że aplikacje używające stale procesora są zwykle wadliwe lub przynajmniej źle zaimplementowane. Pamiętaj, że nie polecałbym używania aplikacji takich jak Wakelock Detector, ponieważ ta funkcja jest teraz częścią Androida (z 4.4 IIRC).
Flow
16

Pomyśl o pamięci RAM jak o papierowym notatniku. Możesz zapisać dane w książce (ołówkiem), możesz je usunąć i zastąpić nowymi, ale książka ma zawsze taką samą wagę. Książka nie robi się cięższa, cokolwiek w niej piszesz. W ten sam sposób, przy obecnej technologii pamięci RAM, użycie pamięci RAM w baterii jest stałe, niezależnie od tego, co (jeśli cokolwiek) jest w niej przechowywane.

Z punktu widzenia Androida nie ma znaczenia, czy zostawisz aplikację z przyciskiem Home, czy Back. Naciśnięcie przycisku Wstecz nie powoduje zabicia aplikacji ani usunięcia jej z pamięci RAM. Przesunięcie aplikacji z listy „ostatnich aplikacji” nie zabija aplikacji ani nie usuwa jej z pamięci RAM. Jedyną różnicą, jaką robi, jest zmiana tego, co pokazuje aplikacja przy następnym uruchomieniu: ekran, na którym byłeś wcześniej, lub główny / pierwszy ekran aplikacji.

Wyobraź sobie, że masz zeszyt (jak poprzednio) i duży regał z mnóstwem podręczników. Nie możesz nosić ze sobą podręczników, więc jeśli chcesz wiedzieć na dany temat, musisz skopiować informacje z podręcznika do małego notesu. Gdy zabraknie Ci miejsca w notatniku, użyj gumki, aby ponownie wyczyścić niektóre niepotrzebne informacje, aby móc skopiować do nich więcej informacji.

Całe to kopiowanie jest męczące. Więc po skopiowaniu niektórych informacji, chcesz przechowywać je w swoim notatniku tak długo, jak uważasz, że możesz ich potrzebować. Śledzisz, jakich informacji w notatniku używasz w tej chwili i jakich informacji używasz często oraz jakich informacji nie używałeś od dłuższego czasu. Kiedy chcesz zrobić miejsce, najpierw usuwasz informacje, z których nie korzystałeś przez jakiś czas. Jeśli nie masz nic z tego, usuwasz niektóre informacje, których często używasz, ale nie teraz. Tylko jeśli naprawdę desperacko szukasz miejsca (być może istnieje jeden duży temat, który zajmuje cały zeszyt), usuwasz informacje, których używasz dzisiaj.

To właśnie robi Android z twoją pamięcią RAM. Duży regał z książkami referencyjnymi przypomina pamięć wewnętrzną telefonu: nie można go używać bezpośrednio (ponieważ książki są drukowane, a nie ołówkiem), więc kopiowanie danych do notebooka jest kosztowne (wymaga czasu i energii) ( RAM) do pracy.

Aplikacja menedżera zadań przypomina nauczyciela, który uważa, że ​​Twój notatnik wygląda nieporządnie z tymi wszystkimi stronami notatek, których już nie używasz. Nauczyciel przychodzi tak często i usuwa całe strony notatek. Jest to niepotrzebne, ponieważ nie ułatwia noszenia książki: książka waży tak samo niezależnie. Co więcej, nauczyciel nie wie, z jakich informacji najczęściej korzystasz - może mieć niejasny pomysł, ale nie wie tak dobrze jak ty - więc czasami, gdy usuwa informacje, koszt jest dodatkową podróżą do półka na książki, której inaczej byś nie potrzebował.

Myśląc o tym w ten sposób, łatwo odpowiedzieć na twoje pytanie. Korzystanie z większej ilości pamięci RAM nie zużywa bezpośrednio więcej energii. Aplikacja menedżera zadań może sprawić, że zużyjesz więcej energii, ponieważ musisz skopiować rzeczy z pamięci wewnętrznej do pamięci RAM, których inaczej nie musiałbyś robić. W ten sam sposób pojedyncza aplikacja wymagająca dużej ilości pamięci RAM kosztuje dwa razy: najpierw musisz zapisać wszystkie informacje o tej aplikacji w notatniku, a następnie, gdy ją skończysz, musisz usunąć wiele informacji (aby spacja), którą musisz ponownie skopiować z półki.

Dan Hulme
źródło
2
Haha, podoba mi się analogia (+1). (Chociaż, technicznie rzecz biorąc, jeśli napiszesz coś w notatniku, będzie miało ono nieco większą wagę ... ale jestem zbyt krytyczny.) Coś innego, na co należy zwrócić uwagę w @MinNaingOo, to to, że jeśli używasz Menedżera zadań, to Menedżer zadań używa również cykli zasilania (CPU AKA) do robienia tego, co musi zrobić. Dlatego ... używana jest większa bateria.
JasCav
2
Warto też wspomnieć o śmieciarzu. Twój notebook nie zawiera tylko informacji, których możesz ponownie potrzebować. Zawiera także „śmieci” - informacje, których na pewno już nigdy nie będziesz potrzebować. Dzieje się tak, ponieważ android jest leniwy i nawet nie kasuje śmieci, dopóki nie potrzebuje więcej pamięci. Gdy zabraknie pamięci, zbierze te śmieci, aby zaoszczędzić trochę miejsca. Jeśli często brakuje Ci pamięci, będzie ona częściej zbierać śmieci i zużywać więcej baterii.
James_pic
@James_pic O tym właśnie jest czwarty akapit. Nie chcę dodatkowo wprowadzać do niej GC wewnątrz aplikacji, ponieważ jest to większy temat tylko dla programistów.
Dan Hulme
The only difference it makes is changing what the app shows you next time you launch it- Ech, w większości prawda, ale nie zawsze. „Wstecz” mówi aplikacji „OK, gotowe”, dzięki czemu może natychmiast wykonać dodatkowe czyszczenie. Pewnego dnia zabiłem swój plan danych, gdy przypadkowo uderzyłem w „Strona główna” zamiast „Wstecz” z Map Google - aktualizowałem go w tle.
Izkata,
> Przeciągnięcie aplikacji z listy „ostatnich aplikacji” nie powoduje jej zabicia ani usunięcia z pamięci RAM. Zostało to zmienione w najnowszych wersjach Androida. Patrz np .: code.google.com/p/android/issues/detail?id=63618
j.
1

Jak wyjaśniono w artykule, nie ma znaczenia, ile rzeczy jest załadowanych do pamięci RAM, więc jest to całkowicie w porządku, jeśli nie zamkniesz aplikacji, które są bezczynne. Ale jeśli aplikacja stale wykonuje pewne czynności, takie jak synchronizowanie niektórych danych, pobieranie, a nawet nagrywanie dźwięku, rozładuje baterię, ponieważ wykorzystuje procesor, który wysysa energię z baterii, w takim przypadku zamknięcie aplikacji warto wziąć pod uwagę. W przeciwnym razie, jeśli masz pewność, że aplikacja nie będzie wykonywać stałej aktywności w tle, nie powinieneś się martwić, że będzie ona przechowywana w pamięci RAM, to tak samo, jak przechowywanie plików na karcie SD (mam na myśli, że karta SDCard nie działa użyj baterii, prawda?). Więc po prostu odpocznij :) Wydaje mi się, że bieg świątynny nie robi żadnej aktywności w tle, więc nie martw się, zostawiając go w pamięci barana. Mam nadzieję, że ci to wyjaśniłem. Twoje zdrowie!

Ilo
źródło
0

Istnieje duża różnica między iOS a Androidem. iOS zawiesza aplikacje, Android nie. Logiki, którą wyjaśnia w tym artykule, nie można zastosować w Androidzie, gdzie niektóre aplikacje rozładowują baterię w tle. Jeśli ci na tym zależy, użyj czegoś takiego jak Greenify zamiast zabójcy zadań.

bluehallu
źródło
Jakie są zalety aplikacji zamrażającej?
Min Naing Oo
1
@MinNaingOo, „Zła” aplikacja, nie może sprawić, że użytkownik pomyśli, że bateria iPhone'a nie działa. Więc powstrzymanie użytkownika obwiniającego jabłko.
Ian Ringrose
1
@MinNaingOo Przeczytaj ten addictivetips.com/android/…
bluehallu
1
@Hallucynogenyc Używam Greenify na wszystkich moich urządzeniach z Androidem, chociaż nie wiedziałem wiele o jego zaletach. Dziękuję za link :)
Min Naing Oo
1
@MinNaingOo Przeczytaj ten stackoverflow.com/questions/11417837/…
bluehallu
0

Odpowiadając na pytanie tytułu: „Czy użycie zbyt dużej ilości pamięci RAM powoduje wyczerpanie baterii?”
(Nie twoje „prawdziwe” pytanie, ale być może przydatne dla osób zainteresowanych tytułem pytań).

Tak, gdy aplikacje lub usługi próbują uruchomić jednocześnie zbyt dużo pamięci RAM, system może wymagać zabicia niektórych z nich bardzo często, nawet wiele razy na sekundę, i zrestartować je, gdy tylko będą potrzebne.
To zużywa wiele cykli procesora, a tym samym pewną pojemność baterii.

Zauważ, że nie jest to normalny przypadek, taki jak „nie zabijanie niektórych aplikacji ręcznie”, jest to stan „bardzo zepsuty” - ale widziałem, że tak się dzieje, wydaje się być związany z wieloma usługami zakłócającymi i konkurującymi o pamięć.

Volker Siegel
źródło
-1

Ponieważ główna pamięć RAM jest dynamiczna (składa się z kondensatorów, które tracą informacje), należy je odświeżyć. To odświeżenie wymaga zasilania, a pełny (lub używany) blok powinien zająć więcej energii, aby „naładować” niż raz zawierający wszystkie zera lub jakoś wie, że nie jest używany.

Jeśli jednak jest to rzeczywiście zauważalne, jest to dla kogoś z większą wiedzą / wiedzą na temat elektroniki.

Zawsze zauważyłem wyższe zużycie baterii na wszystkich komputerach, gdy używane jest więcej pamięci RAM, niezależnie od poziomu procesora, ale muszą tu występować inne czynniki.

N-tonowy
źródło