Como o uso da RAM afeta o consumo de bateria?

17

Estou realmente confuso sobre o gerenciamento de memória do Android.

Acabei de ler aqui que matar aplicativos deslizando da lista recente ou usando executores de tarefas não economizará sua bateria, mas gastará mais, porque isso fará com que o sistema operacional carregue os aplicativos novamente na próxima vez que você o iniciar ou iniciar sozinho. Eles também disseram que o que realmente devemos nos preocupar é o uso da CPU, não o uso da RAM.

Isso significa que usar muita RAM não gasta a bateria? Como a RAM é um hardware, segurar algo nele não deve esgotar a bateria? E se eu estivesse jogando Temple Run e apenas pressione o botão home para que o aplicativo seja carregado mais rápido na próxima vez que for lançado? Ou devemos apenas pressionar o botão Voltar até que o aplicativo saia como sempre fazemos? Eu também procurei na Internet, mas alguns disseram que gastariam a bateria enquanto fica na RAM, outros disseram que não há diferença entre a RAM conter dados reais ou nada. Devemos deixar de lado nosso hábito de matar aplicativos e nos sentir relaxados?

Algumas respostas precisas seriam muito apreciadas. Obrigado. :)

Min Naing Oo
fonte
1
Sua memória RAM é um dos seus menos peças sedento de poder do hardware ...
Brian S
Seu exemplo de templo pode não ser o melhor: como os jogos podem consumir muita memória, eles são mortos pelo sistema operacional rapidamente, ou proativamente salvam os dados importantes quando são enviados para segundo plano. Nesse caso, ele pode carregar um pouco mais rápido, porque uma pequena parte ainda está carregada, mas os dados do jogo provavelmente precisarão ser carregados de qualquer maneira. Um exemplo melhor seria um simples cliente do twitter: que pode ser agradável e aconchegante na sua RAM até que você precise dela novamente.
perfil completo de Nanne

Respostas:

22

Duvido que exista uma correlação direta entre o consumo da bateria e o uso de RAM. O hardware não sabe quais células RAM contêm dados 'usados' e quais não. Portanto, não há diferença no consumo de bateria nesse nível.

Mas acho que se poderia dizer que matar aplicativos desnecessariamente causa alguns ciclos extras de CPU quando esses aplicativos precisam ser reiniciados e, portanto, "usam mais bateria".

E sim, você definitivamente deve deixar seu hábito de matar aplicativos. Na maioria dos casos, o Android é capaz de gerenciar os recursos do sistema muito bem e você não deve se preocupar em matar manualmente os aplicativos. Definitivamente, eles não consumirão mais bateria se ficarem ociosos e consumirem alguma RAM. Obviamente, se esses aplicativos estiverem constantemente usando a CPU, eles consumirão a bateria (mas isso geralmente é um sinal de um bug no aplicativo ou em um aplicativo mal implementado).

Fluxo
fonte
Por outro lado, existem aplicativos que se comportam mal e que acordam e não voltam a dormir em um período de tempo razoável. Esses são os aplicativos que provavelmente estão causando problemas de bateria. Você pode levar aa olhar para eles usando wakelock Detector
Ehtesh Choudhury
É por isso que eu disse que os aplicativos que usam constantemente a CPU geralmente estão com defeito ou pelo menos mal implementados. Observe que eu não recomendaria o uso de aplicativos como o Wakelock Detector, pois essa funcionalidade agora faz parte do Android (com 4.4 IIRC).
Flow
16

Pense na RAM como um caderno de papel. Você pode gravar dados no livro (com um lápis) e pode apagá-los e substituí-los por novos, mas o livro sempre tem o mesmo peso. O livro não fica mais pesado, o que quer que você escreva nele. Da mesma forma, com a tecnologia RAM atual, o uso da bateria da RAM é fixo, independentemente do que (se houver) estiver armazenado nela.

Do ponto de vista do Android, não importa se você sai de um aplicativo com o botão home ou o botão voltar. Pressionar o botão Voltar não mata um aplicativo nem o remove da RAM. Passar um aplicativo da lista de "aplicativos recentes" não o mata nem o remove da RAM. A única diferença que faz é mudar o que o aplicativo mostra na próxima vez em que é iniciado: a tela em que você estava antes ou a tela principal / primeira do aplicativo.

Imagine que você tem um notebook (como antes) e uma grande estante com muitos livros de referência. Você não pode carregar os livros de referência com você; portanto, se você precisar conhecer um assunto, precisará copiar as informações de um livro de referência para o seu pequeno caderno. Ao ficar sem espaço no notebook, você usa a borracha para limpar algumas informações desnecessárias novamente, para poder copiar mais informações.

Toda essa cópia é cansativa. Portanto, depois de copiar algumas informações, você deve mantê-las no seu notebook pelo tempo que achar necessário. Você monitora as informações do notebook que está usando no momento, as informações que utiliza com freqüência e as que não usa há algum tempo. Quando você quer ganhar espaço, primeiro apaga as informações que não usa há um tempo. Se você ainda não tem nada, apaga algumas informações que usa com frequência, mas não no momento. Somente se você estiver realmente desesperado por espaço (talvez exista um grande assunto que ocupe todo o caderno) você apaga as informações que está usando hoje.

É exatamente isso que o Android está fazendo com sua RAM. A grande estante com livros de referência é como o armazenamento interno do telefone: você não pode usá-lo diretamente (porque os livros são impressos, não escritos a lápis), por isso é caro (leva tempo e energia) copiar dados para o seu notebook ( RAM) para trabalhar.

Um aplicativo de gerenciamento de tarefas é como um professor que acha que seu caderno está desarrumado com todas as páginas de anotações que você não está mais usando. O professor aparece de vez em quando e apaga páginas inteiras de anotações. Isso é desnecessário, porque não torna o livro mais fácil de carregar: o livro pesa o mesmo, independentemente. Além disso, o professor não sabe quais informações você usa com mais frequência - ele pode ter uma ideia vaga, mas não sabe tão bem quanto você - então, às vezes, quando apaga informações, o custo é uma viagem extra para a estante, da qual você não precisaria de outra maneira.

Pensando dessa maneira, é fácil responder sua pergunta. Usar mais RAM não consome mais energia diretamente. Um aplicativo de gerenciador de tarefas pode fazer você usar mais energia, porque você precisa copiar coisas do armazenamento interno para a RAM que você não precisaria. Da mesma forma, um único aplicativo com fome de RAM custa duas vezes: primeiro você precisa escrever todas as informações desse aplicativo no notebook e, em seguida, quando terminar, há muita informação que você precisa apagar (para fazer espaço), que você deve copiar da estante novamente.

Dan Hulme
fonte
2
Haha, eu gosto da analogia (+1). (Embora, tecnicamente, se você escrever algo no caderno, ele pesará um pouco mais ... mas estou sendo crítico demais.) Outra coisa a se observar no @MinNaingOo é que, se você estiver executando um Gerenciador de Tarefas, esse O Gerenciador de Tarefas também está usando ciclos de energia (AKA CPU) para fazer o que precisa. Portanto ... mais bateria está sendo usada.
JasCav
2
Também vale a pena mencionar o coletor de lixo. Seu notebook não contém apenas as informações necessárias novamente. Ele também contém "lixo" - informações que você definitivamente nunca precisará mais. Isso ocorre porque o andróide é preguiçoso e nem apaga o lixo até precisar de mais memória. Quando você está com pouca memória, ele coleta esse lixo para economizar espaço. Se você tiver pouca memória com frequência, ele coletará o lixo com mais frequência e usará mais bateria.
#
@ James_pic É disso que trata o quarto parágrafo. Além disso, não quero incluir o GC dentro do aplicativo, pois esse é um tópico maior, relevante apenas para programadores.
9118 Dan Hulme
The only difference it makes is changing what the app shows you next time you launch it- Ehh, principalmente verdade, mas nem sempre. "Voltar" diz ao aplicativo "ok, já terminei", para que ele possa fazer uma limpeza extra imediatamente. Eu matei meu plano de dados um dia quando acidentalmente pressionei "Página inicial" em vez de "Voltar" do Google Maps - ele continuava sendo atualizado em segundo plano.
Izkata
> Tirar um aplicativo da lista de 'aplicativos recentes' não o mata nem o remove da RAM. Isso foi alterado nas últimas versões do Android. Veja, por exemplo: code.google.com/p/android/issues/detail?id=63618
jis
1

Como o artigo explicou, não importa a quantidade de coisas carregadas na RAM, tudo bem se você não fechar os aplicativos que estão ociosos. Mas, se o aplicativo realiza alguma atividade constantemente, como sincronizar alguns dados, fazer download ou gravar sons, ele consome a bateria, porque usa a CPU, que suga a energia da bateria; nesse caso, fechar os aplicativos seja uma coisa boa a considerar. Caso contrário, se você tiver certeza de que o aplicativo não realizará atividade constante em segundo plano, não se preocupe com o fato de ele ser armazenado na RAM, é o mesmo que armazenar seus arquivos no SDCard (quero dizer, o SDCard não use bateria, certo?). Então relaxe :) Eu acho que a corrida no templo não faz nenhuma atividade em segundo plano, então não se preocupe em deixá-la no carneiro. Espero ter explicado a você. Felicidades!

Ilo
fonte
0

Há uma grande diferença entre iOS e Android. O iOS congela os aplicativos, o Android não. A lógica que ele explica nesse artigo não pode ser aplicada ao Android, onde alguns aplicativos esgotam a bateria enquanto em segundo plano. Se você se importa com isso, use algo como Greenify em vez de um assassino de tarefas.

bluehallu
fonte
Quais são as vantagens do aplicativo de congelamento?
Min Naing Oo
1
@MinNaingOo, um aplicativo "ruim", não pode fazer o usuário pensar que a bateria do iPhone está falhando. Então, parando o usuário culpando a maçã.
31815 Ian McGraw-Hill,
1
@MinNaingOo Leia este addictivetips.com/android/…
bluehallu
1
@Hallucynogenyc Eu tenho usado o Greenify em todos os meus dispositivos Android, mesmo não sabendo muito sobre suas vantagens. Obrigado pelo link :)
Min Naing Oo
1
@MinNaingOo Leia este stackoverflow.com/questions/11417837/…
bluehallu
0

Respondendo à pergunta do título: "O uso de muita memória RAM pode esgotar a bateria?"
(Não é sua pergunta "real", mas possivelmente útil para outras pessoas interessadas no título das perguntas.)

Sim, quando muita RAM é usada por aplicativos ou serviços que tentam executar ao mesmo tempo, o sistema pode precisar matar alguns deles com muita frequência, mesmo várias vezes por segundo, e reiniciá-los assim que necessário por outra coisa.
Isso está usando muitos ciclos de CPU e, portanto, alguma capacidade da bateria.

Observe que não é um caso normal, como "não matar alguns aplicativos manualmente", é um estado "muito quebrado" - mas eu já vi isso acontecer, parece estar relacionado a muitos serviços que interferem e competem pela memória.

Volker Siegel
fonte
-1

Como a RAM principal é dinâmica (feita de capasitores que perdem informações), eles devem ser atualizados. Esse refreshal toma energia e um bloco completo (ou usado) deve consumir mais energia para "recarregar" do que uma vez contendo todos os 0s ou de alguma forma sabe que não está sendo usado.

No entanto, se isso é realmente perceptível, é para alguém com mais conhecimento / experiência em eletrônica.

Eu sempre notei maior uso da bateria em todos os computadores quando mais RAM é usada, independentemente do nível da CPU, mas deve haver alguns outros fatores em jogo aqui.

N ytonial
fonte