sexta-feira, 18 de julho de 2014

O Chrome e a duração da carga da bateria

O comportamento humano é curioso. Por exemplo: em um dado momento de sua vida, geralmente ainda criança, uma pessoa escolhe um time de futebol para torcer. Os critérios usados para esta escolha variam desde uma discreta imposição dos pais até influência de amigos ou colegas. O tempo passa e uns se apegam mais ao time do que outros. Mas para um número razoável deles aquela escolha passa a ter uma importância crucial e, de torcedores, se tornam fanáticos. E, infelizmente sem exagero, chegam a matar para “defender” seu clube.
Google Chrome chega a sua 29ª versão (Foto: Reprodução/ poweruser)  (Foto: Google Chrome chega a sua 29ª versão (Foto: Reprodução/ poweruser) )O Chrome e a duração da carga da bateria  (Foto: Reprodução/Google)

Como uma escolha aparentemente tão desimportante pode assumir caráter de fanatismo?
Não sei. Mas sei que o mesmo acontece com diversos outros tipos de escolha. E, evitando temas delicados como política e religião, um bom exemplo é a escolha do sistema operacional do computador e de alguns programas, notadamente o programa navegador.
O que é particularmente estranho porque as ponderações e critérios que norteiam o torcedor a escolher seu time de futebol e por ele torcer apaixonadamente em princípio deveriam ser bastante diferentes daqueles que levam o usuário de computador a escolher seu sistema operacional e seu programa navegador e a usá-los racionalmente. Mas o fato é que o resultado final não é muito diferente. E a forma aguerrida e emocional com que o torcedor fanático defende as virtudes de seu time não difere muito da forma não menos aguerrida e – o que é mais espantoso – não menos emocional com que o usuário “devoto” defende seu sistema operacional e seu programa navegador.
Todo este preâmbulo serve para alertar que hoje vamos abordar um tema delicado: um inconveniente sério detectado pelo colunista Ian Morris, da Forbes, justamente no programa navegador que detém a preferência do maior número de usuários, o Google Chrome .
Efetivamente, tanto as estatísticas tanto do W3Schools quanto do StatCounter, dois grandes centros de dados sobre a Internet, dão conta que atualmente a preferência dos usuários se fixa no Chrome (entre 46% e 59%), seguida ou do Mozilla Firefox (25% e 18%) ou do Internet Explorer (9% e 21%).
No parágrafo anterior os valores porcentuais são declarados sempre na mesma ordem, o primeiro referente ao StatCounter, o segundo ao W3Schoojs, as diferenças se justificando devido a critérios de medição. Porém, no aspecto que nos interessa, elas não importam, já que ambas as fontes dão como líder absoluto o navegador Chrome.
Ainda de acordo com Morris, o inconveniente (que logo descreveremos) só afeta o Chrome quando roda sob Windows (todas as versões exceto Windows 8 na interface “moderna”). Mas Windows é justamente o sistema operacional que detém a preferência indiscutível dos usuários com grande vantagem sobre os demais, seja de computadores de mesa (“desktops”) ou – o que no nosso caso é mais importante porque o inconveniente, como já veremos, afeta a duração da carga da bateria – de portáteis (“laptops” e “notebooks”).
Então, um inconveniente que afeta o programa navegador mais usado rodando no sistema operacional que desfruta da preferência da grande maioria dos usuários é um problema digno de atenção.
O inconveniente, descrito no artigo de Ian Morris “Google’s Chrome Web Browser Is Killing Your Laptop Battery” (O navegador Chrome, do Google, está matando a bateria de seu computador portátil) deve-se ao ajuste de uma função de Windows denominada “system clock tick rate” que quantifica o intervalo de tempo entre dos “tiques” (ou pulsos elétricos) do relógio interno de Windows. O valor padrão, em Windows, é de 15,3625 ms (milissegundos), um valor que parece um tanto estrambótico, mas é perfeitamente lógico, já que corresponde a 64 “tiques” por segundo.
Sistemas operacionais como o Windows, capazes de executar multitarefas, rodam diversos programas ao mesmo tempo. Ou pelo menos assim pensa o usuário. Mas na verdade não é exatamente assim. Abstraindo-se detalhes técnicos como sistemas multinucleares (onde, realmente, rotinas podem rodar simultaneamente em núcleos diferentes), o que de fato acontece é que trechos dos programas rodam um após o outro e depois o mesmo ciclo é repetido sucessivamente, tão rapidamente que a percepção do usuário não é suficientemente apurada para perceber a troca. Por isto, para ele, tudo parece ocorrer simultaneamente.
É claro que tudo isto precisa de um controle extremamente eficaz que, quando é feito pelo próprio sistema operacional (e, neste caso, a multitarefa é do tipo “preemptivo”), necessita de algo que regule a chamada “time slice” (”fatia de tempo”) oferecida a cada programa. E em Windows este controle envolve o relógio do sistema.
Simplificando: quanto menor o intervalo entre dois “tiques” sucessivos do relógio, mais rapidamente se dá a troca entre os programas. E, por vezes, quando um dos programas que está rodando se encontra em uma fase em que nada está sendo exigido dele, na fatia de tempo a ele destinada o processador “dorme” para economizar energia e só “desperta” quando o programa que assumir o controle exigir atenção.
Alguns programas podem alterar esta taxa. Por exemplo: se você carregar o utilitário do YouTube para exibir um vídeo, ele próprio altera o intervalo entre pulsos do relógio para um milissegundo. O que faz com que ocorram mil tiques em cada segundo, essencial para que o filme seja exibido da forma mais suave possível, evitando “solavancos”. E, assim que o YouTube é fechado, antes de sair de cena ele restabelece a frequência de 64 tiques por segundo.
Por que?
Ora, porque o aumento da frequência faz com que as rotinas do sistema responsáveis pela troca entre programas sejam invocadas a intervalos mais curtos e as pausas em que o processador “dorme” sejam mais curtas, o que implica maior consumo de energia. Uma situação que não chega a representar um grande problema em máquinas de mesa, mas que pode exercer uma influência significativa na redução da duração da carga da bateria em sistemas móveis.
E o que isto tem a ver com o Chrome?
Bem, acontece que programas navegadores, que dependem da captação do fluxo de bytes que trafegam pela Internet e exibem conteúdo dinâmico como vídeos e animações, também funcionam melhor com pequenos intervalos entre pulsos do relógio. Todos eles.
Segundo o artigo de Morris, tanto o Firefox quanto Internet Explorer em suas versões mais recentes, agem de forma semelhante ao YouTube: aumentam a frequência do relógio quando detectam que o conteúdo a ser exibido exige este aumento, reduzindo-a ao valor padrão assim que aquela aba é fechada.
GPC20140717_1Figura 1: intervalos de 1ms entre pulsos sempre que o Chrome está rodando (Reprodução/Internet)
O problema do Chrome, ainda segundo Ian Morris, é que ele aumenta o intervalo entre pulsos do relógio interno para 1 ms quando é carregado independentemente do conteúdo a ser exibido e apenas restabelece o valor padrão quando é desligado.
Ora, segundo a Microsoft, o incremento da frequência entre pulsos do relógio interno de 64/seg para 1.000/seg aumenta o consumo de energia “em até 25%”. O que, para quem usa o Chrome e o deixa todo o tempo carregado (o que é bastante comum; eu, que uso o Chrome, o mantenho aberto a maior parte do tempo em que o micro está ligado) representa uma redução significativa no tempo de duração da carga da bateria em micros portáteis.
No artigo citado acima, Ian Morris relata um teste conduzido por ele mesmo em seu micro de mesa (“desktop”). Quando roda com apenas o Chrome carregado, o micro consome uma potência entre 15W e 20W. Assim que o Chrome é fechado o consumo cai para uma faixa entre 12W e 15W. Uma diferença significativa.
E daí? O que fazer?
Quanto ao usuário, nada ou quase nada. Ou ele desiste de usar seu navegador preferido em sua máquina portátil (o que, conforme vimos no início desta coluna, é uma heresia semelhante ao torcedor que “vira a casaca” e muda de time) ou passa a tomar o cuidado de só carregar o Chrome quando necessário e descarregá-lo assim que não mais for necessário.
Já para a Google, empresa que desenvolve o Chrome, a solução é corrigir o problema. O que, ainda segundo Morris no artigo citado, ela não parece considerar urgente. De fato, o problema foi relatado pela primeira vez em 1910, desde então o inconveniente sido reiterado por usuários e já está catalogado no “Chromium Bug Tracker” como a “issue 153139”, em cuja página foi obtida a Figura 1, que mostra os intervalos, sempre de 1 ms, enquanto o Chrome está carregado. Logo, a Google está farta de ter ciência dele. Não obstante, em quatro anos, nada foi feito.
Vamos ver se agora que o problema passou a ser divulgado inclusive na sisuda Forbes, alguma providência será tomada.
Espero que sim, já que eu, como a maioria, sou “devoto” do Chrome.
B. Piropo
Fonte: Tech Tudo.
Anterior
Proxima

Postador

0 comentários:

Os comentários serão moderados antes de publicar! respondo todos, obrigado por comentar.