O que é RAM virtual no Android e você deve se importar
Miscelânea / / March 16, 2022
Além de enorme câmera megapixels e telas de alta taxa de atualização, a maior tendência no mundo dos smartphones parece ser a RAM virtual. Alguns se referem a ela como expansão de RAM dinâmica, enquanto outros a chamam de RAM estendida. Independentemente do nome, a ideia permanece a mesma. Permita que os usuários usem parte de seu armazenamento como RAM para ajudar na multitarefa.
Discutiremos neste guia como funciona o gerenciamento de memória no Android e como a ideia de RAM virtual difere dele. Tentaremos ponderar se a RAM virtual é necessária no Android ou não. Então vamos fazer isso.
Como funciona o gerenciamento de memória no Android
Antes de mais nada, é importante entender como o Android gerencia sua memória. Dentro do Android, existem 3 tipos de memória. Primeiro é sua RAM, depois você tem zRAM e, finalmente, seu armazenamento. RAM é o módulo de memória básico dentro do qual todos os aplicativos são executados. Depois, há seu armazenamento integrado, UFS ou eMMC em dispositivos econômicos. Finalmente, temos zRAM. Essencialmente, zRAM é uma partição dentro da RAM.
A ideia por trás do zRAM é que os dados de baixa prioridade na RAM sejam compactados e armazenados dentro do zRAM. Como a RAM é mais rápida que o armazenamento normal, ter dados compactados dentro do zRAM, que faz parte da RAM, é ainda será mais rápido do que acessá-lo do seu armazenamento, mesmo se você contar os tempos de compactação e descompactação.
Agora que estabelecemos os 3 tipos diferentes de memória disponíveis para o Android, vamos entender como o sistema operacional lida com tudo isso. Então o Android faz uso de técnicas de paginação. Como funciona é que a RAM é dividida em páginas, onde cada página é tipicamente de 4 KB. Seja essa página livre ou usada ativamente, elas se combinam para mostrar a RAM usada e a RAM não utilizada, respectivamente. Então, a tarefa do kernel é converter a memória usada em memória livre. Ele faz isso deslocando os dados dessas páginas usadas para o seu armazenamento.
O que é paginação e como funciona
Para entender como funciona, vamos entender os tipos de páginas. Você pode classificar as páginas em dois tipos – páginas limpas e sujas. As páginas limpas têm uma cópia não modificada salva no espaço de armazenamento. Enquanto isso, as páginas sujas têm uma cópia modificada dos dados armazenados no armazenamento. Agora, o que é isso modificado e não modificado? Vamos chamá-lo de uso dinâmico de sua memória.
As cópias não modificadas são dados estáticos, enquanto as cópias modificadas são alterações de dados dinâmicas a cada segundo. O Android pode limpar as páginas limpas quando necessário, pois elas não estão acessando os recursos dinamicamente. Isso ajuda a liberar a memória RAM e disponibilizar mais dela. Isso pode parecer um pouco técnico demais, então vamos simplificar o entendimento usando aplicativos do mundo real.
Suponha que você abra o Twitter, navegue pelo seu feed e depois mude para outra coisa. Twitter ainda está lá em sua memória RAM. Mas se você não abri-lo por um tempo, sua prioridade diminui. Mais tarde, se você lançar algo novo, o Android terá que liberar a memória que o Twitter está usando. Então, o que ele faz é mudar seus valores e dados para o armazenamento e fornecer espaço livre. É por isso que, quando você iniciar o Twitter novamente, ele primeiro mostrará a linha do tempo em que hibernou e, em seguida, atualizará. O mesmo vale para o Facebook, Reddit ou aplicativos semelhantes, como Calculadora ou Notas. Esses aplicativos usam páginas limpas, pois uma cópia de seus dados é salva estaticamente em seu armazenamento.
Agora, para páginas sujas, considere o Spotify ou qualquer player de música. Você inicia uma música dentro do player e a mantém em execução em segundo plano sem abrir o aplicativo. No entanto, o sistema não pode fechá-lo, pois está usando dinamicamente sua memória. Como resultado, o Android compacta o aplicativo e o transfere para zRAM quando é necessária mais RAM livre.
O que é RAM virtual
Agora que você sabe como o Android gerencia a memória, você deve se perguntar – onde entra o recurso Virtual RAM? Lembra como dissemos que o zRAM também faz parte da RAM? A maneira como a RAM virtual funciona é que ela cria uma partição de troca em seu espaço de armazenamento e a usa como zRAM extra.
Como o zRAM é armazenado apenas em sua RAM, há um limite para o número de páginas que você pode compactar e armazenar nele. Com uma partição swap, você pode usar seu espaço de armazenamento como zRAM extra, para compactar e deslocar aplicativos, ao mesmo tempo em que disponibiliza espaço em sua RAM real.
Este recurso é novo
Então, tudo isso é novo? Bem, na verdade não. O Linux usa partições swap desde o início. Para Android, usuários de kernel personalizados têm usado seus cartões SD para criar partições de troca adicionais para melhorar o gerenciamento de memória.
Como tal, os fabricantes de marcas estão apenas oferecendo a você o mesmo recurso incorporado em suas capas para Android. No entanto, levanta a questão - se o recurso é tão útil, por que não faz parte do código-fonte do Android?
A RAM virtual é boa ou ruim
A resposta está no funcionamento básico da própria RAM virtual. Embora o recurso permita que você execute mais aplicativos em seu dispositivo compactando aplicativos em hibernação e transferindo-os para o armazenamento, ele faz mais mal do que bem. Como as partições de troca estão essencialmente armazenando aplicativos ativos, há uma maior sensação de leitura e escrita envolvida.
Isso funciona bem no armazenamento tradicional, mas a memória flash tem um número limitado de leituras e gravações. Portanto, usando SWAP ou RAM virtual, você está tecnicamente diminuindo a vida útil do armazenamento do seu dispositivo.
Isso também é bem destacado em A página do desenvolvedor do Android. “No Android, o armazenamento não é usado para espaço de troca como em outras implementações do Linux, pois a escrita frequente pode causar desgaste nesta memória e encurtar a vida útil do meio de armazenamento.” Outro exemplo disso está no novo Apple M1 MacBooks. Essas máquinas usam uma partição swap nos SSDs da Apple, dos quais os usuários têm reclamado bastante.
A RAM virtual é importante e você deve usá-la
Essencialmente, tudo depende de como você define multitarefa. Se estiver fazendo malabarismos entre apenas dois ou três aplicativos ativos, com certeza, a RAM virtual ajuda nisso. Mas se você continuar alternando entre 5-6 aplicativos altamente ativos, a RAM virtual não fará nada porque continuaria mudando os aplicativos.
Em sua essência, o recurso de RAM virtual permite mais espaço de RAM disponível para a execução de aplicativos. No entanto, isso tem o custo de seu armazenamento. Se você pretende continuar usando seu dispositivo por mais de dois anos, achamos que usar RAM virtual pode não fazer muito sentido.