2013/07/30

Android 4.3 traz suporte TRIM aos Nexus


Vocês sabem que eu sou um "picuinhas" no que diz respeito à optimização do software e hardware, e que fico doente quando vejo programação disparatada ou a má aproveitação dos recursos de um equipamento. Coisas que eu consideraria como sendo básicas e essenciais de implementar desde o início são muitas vezes esquecidas... mas resta-me o consolo de ver que algumas delas lá vão chegando, mesmo que seja com alguns anos de atraso.

No início de 2011, já eu procurava saber se os smartphones e tablets (iOS e Android) suportariam a função TRIM para melhorar o desempenho da memória Flash quando começasse a ficar com os blocos todos usados. Foi uma suspeita que tive desde que, na altura, enchi completamente a memória do iPhone e notei que a partir daí tinha ficado mais lento (mesmo depois de voltar a libertar espaço) - e que mais tarde também se veio a verificar em equipamentos como o Nexus 7.


Para descobrirmos as causas temos que espreitar como funcionam as memórias Flash, cuja gravação tem que ser feita em blocos. Ora, se tiverem que gravar dados num bloco que nunca foi utilizado, podem gravar a informação directamente - mas se tiverem que gravar dados num bloco já semi-utilizado, é necessário um passo adicional de leitura do que lá está, alteração das partes que é para alterar, e gravar tudo de volta - o que piora o desempenho. O problema é que depois de tal ter sido feito, mesmo que tenham apagado todos os dados, esse bloco de memória flash fica marcado como "usado".

A função TRIM permite recuperar os blocos inutilizados para o tal estado de "limpo", assim como agrupar dados de diferentes blocos num único só para maximizar o número de blocos livres. E felizmente, com a chegada do Android 4.3, o TRIM passa a estar disponível nos Nexus (e que permitirá melhorar o desempenho até nos equipamentos onde isso tem sido mais problemático, como os Nexus 7).

Este ciclo de limpeza será executado de forma automática a cada 24h, desde que sejam cumpridas certas condições: como o equipamento estar parado há mais de 1h, e ter mais de 80% de bateria (ou 30% caso esteja ligado ao carregador).

... Demorou, mas é melhor ser algo que chega tarde... do que nunca. (Agora só falta saber se a Apple também já implementou o TRIM no iOS.)

6 comentários:

  1. Equipamentos com iOS e de outras boas fabricantes usam um modelo de memoria flash mlc que apesar de ter vida curta se comparar com um HDD oferecem uma boa vida útil e de escritas, ja o Google pra multiplicar os lucros usa no nexus 7 e 4 TLC, uma modalidade de flash tão barata que morre antes mesmo de se escrever em todo disco, com isso eles optaram pelo trim, assim podem enganar o consumidor e "aumentar a vida útil" em alguns dias.

    ResponderEliminar
    Respostas
    1. O TRIM beneficia todos os tipos de memórias Flash, quer sejam SLC, MLC ou TLC.

      Quanto ao Google usar memórias mais baratas... interessará comparar o preço de um Nexus 4 com o de um iPhone. (Quanto aos lucros... acho que nem será preciso comparar o que o Google ganha com um Nexus que é vendido quase a preço de custo, e o que a Apple ganha em cada iPhone ou iPad, cujo lucro líquido será quase suficiente para comprar o Nexus.)

      Eliminar
    2. Só para esclarecer a diferença dos preços de cada dispositivo: a Apple é uma empresa de hardware (ainda) e a Google é uma empresa de serviços. A Google vende dispositivos ao preço de custo porque quer os consumidores a usarem os seus serviços. A Apple usa a margem de lucro dos seus dispositivos para alimentar quase a totalidade da sua operação. Sei que é um pouco off-topic mas fica a nota para uma melhor leitura do teu último comentário.

      Quanto à memória fico mesmo curioso se a Apple estará a usar algo deste tipo.
      Penso que responderá a alguns problemas que tenho tido com o iPad (reportar memória cheia apesar de ter uns gigas livres, coisa que um processo de limpeza com bugs poderia fazer). Mas nada como uma pesquisa nos logs do dispositivo não permita encontrar.

      Eliminar
    3. Este comentário foi removido pelo autor.

      Eliminar
  2. Entao parece-me qua a Apple tem memorias com o dobro da qualidade, ja que custa o dobro(pelo menos). É a leitura que faço deste "debate". Mas isso não importa porque também a Aple coloca os seus equipamentos como "obsoletos" oficialmente ao fim de 5 anos, mas na realidade é muito antes que isso, porque o IOS "engorda" a ponto de tornar penosa a experiencia do utilizador a menos que faca o upgrade. Eu experimentei isso mesmo com o meu iPhone 3G que era lentíssimo com o ios4 em 2010 e impossível de instalar o que fosse com o ios3 porque as apps obrigavam a ter o ios4. Coisas como a qualidade das memorias não interessam nim dispositivo com o tempo de vida (real) util de 24 meses.

    ResponderEliminar
  3. Entao parece-me qua a Apple tem memorias com o dobro da qualidade, ja que custa o dobro(pelo menos). É a leitura que faço deste "debate". Mas isso não importa porque também a Aple coloca os seus equipamentos como "obsoletos" oficialmente ao fim de 5 anos, mas na realidade é muito antes que isso, porque o IOS "engorda" a ponto de tornar penosa a experiencia do utilizador a menos que faca o upgrade. Eu experimentei isso mesmo com o meu iPhone 3G que era lentíssimo com o ios4 em 2010 e impossível de instalar o que fosse com o ios3 porque as apps obrigavam a ter o ios4. Coisas como a qualidade das memorias não interessam nim dispositivo com o tempo de vida (real) util de 24 meses.

    ResponderEliminar