Por dentro da linguagem do OS Android: "Governor" e "I/O Scheduler"
Quando fazemos o root, trocamos a ROM ou o Kernel originais de um aparelho Android pela primeira vez, quase todos temos a mesma reação, vamos ver quais foram as novas funções adicionadas no aparelho e, em muitos casos, nos deparamos com o aplicativo No-frills CPU Control/Controle Simples da CPU, ilustrado na imagem abaixo. E agora, o que fazer? O que significa cada uma destas opções? Como eu também passei por isso, aqui segue uma explicação sobre o que é, para quê serve e como utilizar as opções "Governor" e "I/O Scheduler" deste aplicativo.
Em primeiro lugar, saiba que é através desse App que você faz o oveclock no aparelho, se disponível. O que a maioria não sabe é que usando a combinação certa de "Governor" e "I/O Scheduler", se pode aumentar o desenpenho do aparelho ou diminuir o consumo da bateria entre outras funções.
GOVERNOR
Atualmente, no kernel CoCoRe 4.0 temos 20 "Governors", mas o que são? A grosso modo pode se dizer que são scripts que governam como a CPU vai se comportar em cada situação durante o manuseio do aparelho. Aqui vou falar de uma forma simples sobre os mais comuns:
1 - ONDEMAND
A principal característica deste "Governor" é a rapidez com que ele sai da frequência mínima de trabalho da CPU para a frequência máxima ao se iniciar uma tarefa e, após o término ele retorna aos poucos para a frequência mínima novamente. Este "Governor" é quase que padrão de fábrica nos aparelhos devido ao salto quase que instantâneo do mínimo para o máximo de frequência da CPU, com isso temos aquela rapidez e fluidez que tanto adoramos e procuramos, só que isso implica diretamente na duração da bateria.
2 - ONDEMAND 2
Supostamente o Ondemand 2 é mais amigável para a bateria, pois quando esta com a tela desligada, se um app que funcione em segundo plano exigir da CPU, ele não irá ao máximo da CPU como o outro, só irá até 500mhz.
3 - PERFORMANCE
Esse "Governor" bloqueia a CPU em frequência máxima, o que nem sempre se traduz em rapidez pelos testes que fiz, fora que o consumo de bateria é alto.
4 - POWERSAVE
Ao contrário do anterior, o Powersave, como o nome já diz, bloqueia a CPU em frequência mínima e poupa bateria, mas derruba a performance do aparelho.
5 - CONSERVATIVE
Esse "Governor" tem preferência pela frequência mínima, ou seja, ele demora para chegar ao máximo da CPU, mas volta imediatamente para o mínimo, é considerado um "Ondemand" lento, para se ter uma ideia.
6 - USERSPACE
Este "Governor" excepcionalmente raro para o mundo dos dispositivos móveis, permite que qualquer programa executado pelo usuário defina a frequência da CPU. Este "Governor" é mais comum entre servidores ou desktops, onde a aplicação (como um aplicativo de perfil de energia) precisa de privilégios para definir a velocidade de clock da CPU.
7 - MINMAX
Bom, o nome já dá uma idéia do que seja, este "Governor" usa só o mínimo e o máximo de frequência, logo, não usa frequências intermediárias.
8 - INTERACTIVE
Muito parecido com o "Ondemand", este "Governor" tem escalas de frequências definidas pelo programador do kernel, o que significa que ele se ajusta melhor à demanda de serviço da CPU imposta pelo usuário, só indo a frequência máxima se realmente necessário, isso implica na vida útil e na durabilidade da bateria.
9 - SMARTASS
Outro "Governor" interativo que tem como diferencial a frequência máxima de operação com tela desligada/em repouso de 352mhz, o que influencia também na duração da bateria.
10 - SMARTASS V2
Esta é a segunda versão do "Smartass", onde se dá prioridade ao equilibrio desempenho/consumo.
11 - SCARY
É um "Governor" conservador, que sempre dá preferência para as frequências mais baixas, tendo um limite de frequência com tela desligada de 245mhz, mesmo que você tenha definido uma frequência mínima superior a esta.
12 - LAGSFREE
O "Lagsfree" é um "Governor" que utiliza uma escala pré-definida de frequências para subir ao 100% da CPU, teoricamente, é mais amigável para a bateria, mas existem relatos de que para reprodução de videos é lento.
13 - BRASILIANWAX
Este é semelhante ao "Smartass v2", mas com uma rampa de frequência mais agressiva, o que implica maior consumo de bateria.
14 - INTELLIDEMAND
Com base no "Ondemand", com a diferença de que ele se baseia na carga de trabalho da GPU do aparelho, este "Governor" equlibra a escalada da frequência da CPU conforme a GPU necessitar, é basicamente um "Ondemand" inteligente.
15 - HOTPLUG
É semelhante ao "Ondemand", com o diferencial que ele tem a capacidade de desligar um núcleo do processador, quando o sistema estiver ocioso e reinicia-lo imediatamente quando exigido, é obivio que só funciona em aparelhos multicore.
I/O SCHEDULER
De uma forma simples, o "I/O Scheduler" é como o kernel controla o acesso ao disco rígido. Assim como o "Governor" existem alguns "I/O's" mais comuns que se apresentam nos nossos smartphones:
1 - NOOP
Coordena os dados I/O solicitados ao disco, sendo que se adecua melhor com unidades flash como é o caso dos smarphones.
Vantagens: Serve solicitações de I/O com menor número de ciclos da CPU (mais amigavel para a bateria).
Desvantagens: A redução do número de ciclos de CPU utilizada é proporcional à queda de desempenho.
2 - DEADLINE
Basicamente é um super organizador de I/O, diminuindo assim a latência (atraso) na solicitação de uma informação. Isso se consegue através de um rodizio de I/O's solicitados, para ser justo entre vários pedidos.
Vantagens: Quase um programador em tempo real, melhor planejador para acesso e consulta de dados.
Desvantagens: Quando o sistema está sobrecarregado, conjunto de processos que podem perder prazo é largamente imprevisível.
3 - CFQ
Um programador escalonado, tenta distribuir a mesma "fatia" de tempo para cada solicitação de I/O.
Vantagens: Desempenho de I/O mais equilibrado, se ajustando melhor em multicores.
Desvantagens: Solicitações de I/O multimídias pondem ser mais lentas, devido a distribuição de tempos iguais para todas as solicitações.
4 - BFQ
Em vez de fatias de tempo, ele distribui "orçamentos" (números de setores em disco), para as solicitações de I/O.
Vantagens: Melhor desenpenho na transferência de dados pelo USB, considerado um programador de I/O preciso.
Desvantagens: Não obtem melhor desenpenho geral em benchmark e um orçamento muito grande pode gerar uma certa latência.
5 - SIO
Faz o agendamento de I/O's simples, tem como objetivo manter o mínimo de sobrecarga para atender as solicitações.
Vantagens: Simples e confiável.
Desvantagens: Leitura em drives flash é inferior aos outros I/O schedulers.
6 - V(R)
Basicamente é um gerenciador de I/O por ordem de chegada, o primeiro da fila é o primeiro a ser atendido.
Vantagens: Pode ser melhor para o benchmarking, pois no auge da sua "forma" VR tem o melhor desempenho.
Desvantagens: Menos confiável, mais instável.
Qual é a melhor combinação de Governos e I/O Scheduler?
Bom, isto depende do perfil do usuário, do kernel do aaprelho, so processador e por aí vai. Como disse lá no início, é na experimentação que você irá descobrir qual o melhor para você, lembrando que ainda existem apps nos quais se pode programar perfis diferenciados para cada hora do dia e da noite, nos horários onde você mais exige do sistema ou não, como não ligo muito para a duração de bateria, uso um perfil bem agressivo e de alta performance, mas de alto consumo, e você? Qual é o seu perfil? Deixe-nos saber a sua opinião nos comentários abaixo.
Fonte: XDA DEVELOPERS
Ainda não aprendi ¬¬
Pra mim tem que ter um baixo consumo de bateria e rapidez no desenpenho do cel...vou estudar com mais calma qual desses perfis perfis eu vou usar.alquem tem uma dica pra mim usar?tenho um lg g3 e preciso de economia na bateria......
Interactive e maple ou zen
Esse artigo me salvou! já não sabia mais o que fazer!
Como você está jogando enraizado ?
A melhor combinação para desempenho para rodar Pokemon GO que encontrei foi =>
Governor: Performace e I/O scheduler: Deadline
Deixou o jogo extremamente mais suave e beleza, rodando em um Alcatel Pop C7 com sistema MIUI 7. Porem! na hora de jogar, a bateria esgotou 50% em cerca de meia hora.
Oi. Como você joga o Pokémon. Se não permite usar em celular enraizado? Aqui eu não consigo.
Como você está jogando enraizado ?
Valeu ajudo muito, deixava só dois dos núcleos ativos e n via resultado na batéria, pq ficavam sempre no seu máximo, agora que entendi como funciona os governor, deu pra regular pra ter mais núcleos mas rodando numa potência menor
Caí na besteira de pesquisar BRASILIANWAX no Google... O.o
Qual o melhor para fazer esse controle o SetCpu ou esse controle simples de cpu?
Com alguns erros de digitação na matéria, mas não tira o brilho da mesma.
Muito importante para quem gosta de aumentar ou diminuir o ''clock'' do aparelho.
Alguém usando ou testando as combinações acima na CM12.1 (5.1.1)?
Galaxy s2
Jefferson, boa noite. Qual módulo seria melhor para o meu Galaxy s4 I9515L ? Eu deixei aqui CPU MIN : 1,026 GHZ / CPU MÁX: 1,89 GHZ / ONDEMAND / NOOP.
Seria a melhor combinação esta ?
Obrigado.
ONDEMAND e NOOP é uma combinação perfeita pra quem quer desempenho
razoavel e uma boa duração de bateria. Eu uso esses dois aqui no
4.4.4 stock do meu Moto G 2 e com a ajuda de alguns scripts que
inseri no build.prop melhorou ainda mais. Pra configurar esses
gerenciadores eu usei o app SetCPU. Lembrando que tem que ter
acesso Root.
Na verdade o perfeito seria o smartassv2 com o sio,mas são poucos os kerneis que tem os dois
Estou usando essa configuração na CM 12.1...kernel Apolo.. Até agora tudo ok,
Desculpe minha inocência. Mas minha dúvida é. Se apos todo o processo eu quiser remover o root e o aplicativo tipo setcpu. Vai voltar tudo como antes da mudança? Ou mudar a rom?
Para o Moto G com a ROM Nexus G+ (7) qual a configuração que você me aconselha colocar??? Uso o No-frills CPU Control. Valeu. Abraço..
Bom dia! O post é muito bom e útil, gostaria de sugerir que coloquem exemplos de tipos de usuários, sei que já falaram que é algo pessoal mas assim ficaria mais facil poder configurar no meio de tantas opcoes.
Obrigada