Como alterar a velocidade do processador no Android — ajuste dos governors – Elias Praciano
Categories
Android Tutoriais

Como alterar a velocidade do processador no Android — ajuste dos governors

Neste artigo, vou explicar o que é um governor e como ele afeta o desempenho do seu aparelho.
Você irá conhecer e entender mais de 20 governors disponíveis para aparelhos Android – sejam tablets ou smartphones. A relação de governors, disponíveis em seu aparelho pode ser extensa e depende dos recursos de hardware presentes nele.

O que é exatamente um governor?

Basicamente, é um “gestor” de recursos do(s) processador(es) de seu aparelho. Cada governor segue um conjunto próprio de políticas que adaptam a frequência do clock da CPU e da GPU a certas condições – elevando-a ou diminuindo-a. Há dezenas de governors, cada qual projetado para um determinado perfil de uso – alguns te dão maior performance, outros maior duração da bateria.

Android CPU Painel de controle
clique para ampliar
O assunto tem ganhando mais importância, entre os usuários de dispositivos móveis por que tem grande impacto na fluidez da interface gráfica dos smartphones e tablets e na duração da carga da sua bateria. O que pode te dar um ganho de eficiência é escolher o governor, enquanto conjunto de ajustes, que melhor  se acomode ao seu estilo de vida. Neste artigo, vamos conhecer os gestores mais comuns.

Como alterar o meu governor

Você não pode alterar o governor do seu dispositivo, como usuário normal. Você precisará ser root para isto. Além do quê, precisará ter uma ROM e um aplicativo que te dê acesso a este mecanismo do sistema.
Em seguida, vamos relacionar os governors mais comuns e seus efeitos no seu aparelho.

OnDemand

Este governor tem um gatilho sensível, que impulsiona o clock à velocidade máxima definida pelo usuário. À medida que a demanda por recursos do processador diminui, a frequência do clock vai se reduzindo até chegar ao mínimo definido pelo usuário.

O perfil de gestão de recursos OnDemand oferece excelente fluidez à interface por causa de sua tendência à alta freqüência – mas tudo tem um preço. Este governor, pode ter um efeito relativamente negativo sobre a duração da bateria, se comparado a outros. Não se esqueça: quanto mais alta a frequência do clock, maior é a velocidade do sistema e menor será a duração da sua bateria.

Sua principal característica é elevar o clock ao seu nível máximo, assim que uma nova atividade é detectada, para garantir a responsividade do sistema.

O OnDemand é comumente escolhido por fabricantes de smartphones e é padrão em quase todos os kernels (Android e Linux), porque é bem testado, confiável e praticamente garante o desempenho mais suave possível para o telefone. Isto é assim porque os usuários são muito mais propensos a reclamar do desempenho do que das poucas horas de vida extra (da bateria) que outro governor poderia ter-lhes concedido.

OndemandX

Basicamente, é um OnDemand com maior atenção para os recursos de suspend e wake, portanto, é um pouco mais econômico em relação à bateria. Ao apagar das luzes da tela, a frequência máxima é fixa em 500 Mhz. Tem boa interação com o scheduler SIO.

Performance

Aqui, o clock é fixado na frequência máxima possível. Embora pareça ser uma má ideia (por que drena a carga da bateria), há evidências que sugerem que usar o aparelho com o clock máximo acelera o race-to-idle — processo no qual um aparelho completa uma tarefa e retorna a CPU a um estado de eficiência extrema de economia de energia. Mas esta tese ainda requer testes e o perfil requer um kernel que implemente o C-states (estado de baixo consumo) na CPU.

setcpu, clock speed
Clique para ampliar

Powersave

Oposto do Performance. Este governor fixa o clock no nível mais baixo, determinado pelo usuário. O seu objetivo é a economia de energia.

Conservative

Orienta o aparelho a usar o menor clock, sempre que possível. Em outras palavras, uma carga de tarefas precisa ser maior e mais persistente para “convencer” o governor a aumentar a velocidade do clock da CPU.

A depender do modo como o programador o implementou ou da velocidade mínima de clock, definida pelo usuário, este pode ser um tanto ruim na performance. Por outro lado, isto pode ser bom para quem precisa economizar na bateria. Às vezes, ele é chamado de slow OnDemand – o que pode ajudar a ter uma ideia melhor da sua funcionalidade.

Userspace

Excepcionalmente raro no mundo móvel, este é mais presente em servidores ou PCs. Ele permite que programas executados pelo usuário determinem a frequência em que a CPU vai operar.

Min Max

Este é o “ou oito, ou oitenta”. Com ele, a CPU opera no clock máximo ou no mínimo – baseado na carga de exigências.

Interactive

Este governor foi projetado para dar mais prioridade às tarefas na Interface do Usuário (seus apps) – ele aparenta ser mais responsivo que o tradicional OnDemand. Pode-se dizer que ele foi feito para quem deseja obter maior suavidade na interação entre os aplicativos.

Semelhante ao OnDemand, o Interactive faz um escalonamento dinâmico da velocidade do clock em resposta à carga de trabalho imposta à CPU pelo usuário – e é aí que as similaridades terminam. Este modo de operação é significantemente mais sensível que o OnDemand, uma vez que é mais rápido na escalada pra frequência máxima.

Diferente do OnDemand, no qual as escalas da velocidade do clock são determinadas pela fila de trabalhos, o Interactive faz o escalonamento do clockspeed ao longo de um temporizador definido internamente pelo desenvolvedor. Em outras palavras, se uma aplicação demanda a velocidade máxima do clock (inserindo uma carga de trabalho de 100% na CPU), ainda é possível executar outra tarefa do usuário antes do governor voltar a reduzir a frequência da CPU. Isto pode reduzir o sobe e desce da frequência. Em função deste temporizador, o Interactive está melhor preparado para usar clockspeeds intermediários – fato que também beneficia a duração da carga da bateria. Contudo, já que este perfil se permite permanecer mais tempo na frequência máxima da CPU (em benefício da performance), os ganhos na vida útil da carga da bateria acabam não sendo tão significativos em relação ao perfil OnDemand.

Para encurtar a estória, o Interactive oferece uma performance melhor do que o OnDemand — e há quem diga que, de todos, é o melhor governor — e uma diferença desprezível na economia de energia.

InteractiveX

Criado pelo desenvolvedor do kernel Imoseyon, o InteractiveX se baseia fortemente no Interactive, como já era de se esperar, com um timer ajustado para prover uma relação melhor entre consumo e performance do aparelho.

A característica que define InteractiveX, contudo, é o fato de que ele fixa a frequência da CPU no valor mínimo definido pelo usuário, quando a tela é apagada.

Smartass

Baseado nos conceitos do Interactive – o Smartass (ou espertinho) foi totalmente reescrito, com algumas adições, por erasmux, para usar no seu kernel Android. Popular por sua habilidade no uso do mecanismo de suspensão onboard do Android. Tal como o Conservative, é suave para aumentar a frequência do clock.

É consenso entre alguns especialistas que ele faz bem o que ele se propõe. Sua performance é equivalente à do “velho” mínimo/máximo e, há quem diga, é um pouco mais responsivo – ou seja, reage rápido às mudanças no ambiente.

É difícil quantificar, com precisão, o consumo energético do aparelho rodando neste perfil. Mas ele permanece, a maior parte do tempo, em baixas frequências – o que indica baixo consumo.

Outra característica deste perfil é que ele fixa a frequência máxima em 352Mhz — ou, no caso de você ter definido uma frequência mínima acima de 352, o Smartass vai respeitar a sua definição. Pra exemplificar, Se você definiu as velocidades máxima/mínima em 624/152, ele vai entrar no modo de espera (standby ou sleep mode) em 352/152.

Durante o dia, o seu aparelho passa mais tempo em standby?

SmartassV2

A segunda versão do Smartass também é a favorita entre muitas pessoas. Este governor visa uma “frequência ideal” e, quando precisa, a alcança agressivamente – a partir daí, a escalada é mais suave.

Samsung GT S5360 clock frequencias
Opções de frequências de clock.

Tela ligada e tela desligada têm frequências de operação diferenciadas — estes eventos são chamados awake_ideal_freq e sleep_ideal_freq, internamente.

Este governor é capaz de reduzir o clock rapidamente para atingir a sleep_ideal_freq, assim que a tela é desligada. E sobe rapidamente em direção ao awake_ideal_freq, quando a tela é ligada.

Diferente do Smartass, não há limite máximo de frequência, quando a tela está desligada. Desta forma, todo a faixa de frequência disponível é usada pelo governor no processo de mudança entre tela desligada/ligada.

Aqui, o objetivo é balancear a performance e o consumo da bateria e, dependendo do poder de processamento do seu aparelho, ninguém vai perceber o lag quando sair do standby.

Conheça o perfil Scary (assustador!), na próxima página — um caso em que o nome não corresponde à “pessoa”.

By Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como "Rick and Morty" e "BoJack Horseman".
Me siga no Twitter e vamos trocar ideias!

7 replies on “Como alterar a velocidade do processador no Android — ajuste dos governors”

Salvou a minha vida… Muito obrigado, pesquisei sobre por todo lugar e não encontrei, valeu pela ajuda!

Possuo a seguinte dúvida. Apos root e apos usar um dos programas citados. Se eu der um reset de fábrica ou desinstalar root ou aplicativo. Volta tudo como antes? Apos as alterações posso remover o aplicativo?

bom post. é o meu primeiro smartphone e na verdade não existe nadaa como o meu pc., mas aprender nunca édemais

Gostei bastante. Ajudou-me muito quanto ao desempenho do meu smartphone.
Aliás, belo sobrenome, parece com o meu. Hahaha

Cara gostei do seu blog, ira me ajudar a entender e aprender sobre TIC já estou cursando GTI; parabéns pela generosidade de compartilhar seus conhecimentos.

Leave a Reply to mike Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.