O Google Chrome tem um problema com laptops. Além dos ocasionais detalhes de desempenho, o navegador da Mountain View exige um sacrifício na forma de bateria. Até a Microsoft exerceu pressão sobre esse ponto ao promover o Edge, e os desenvolvedores têm trabalhado há um bom tempo para corrigir a situação. Após o anúncio formal em setembro do ano passado, a versão 57 do Google Chrome agora inclui um sistema de throttling para as abas em segundo plano, de modo que não reivindiquem mais do que 1% da CPU.
O panorama dos navegadores modernos é lamentável. No momento, estou executando uma instância do Firefox e outra do Chrome. O navegador da Mozilla decidiu devorar um total de 977 megabytes de RAM para três abas e duas extensões dos quais se recusa terminantemente a devolver. Do outro lado, o Chrome ainda sofre crises existenciais sempre que faço um pouco de rolagem em portais como o Facebook. O resultado é uma espécie de break dance tóxico que utiliza 50% de um processador de quatro núcleos, e não há comando na seção flags ou extensão na loja que ajude com isso. Outro problema muito sério que sofre o navegador do Google é o consumo de bateria em laptops. Não importa o modelo ou o sistema operacional, o Chrome se encarrega de espremer baterias como se fossem laranjas.
Os engenheiros descobriram que muitas páginas consomem uma grande quantidade de ciclos de CPU mesmo quando estão em uma aba em segundo plano. Com a chegada do Chrome 57, esse comportamento vai mudar. A chave é um novo sistema de throttling baseado em um orçamento (medido em segundos) ao qual cada aba em segundo plano é submetida depois de passarem 10 segundos. Esse orçamento é regenerado (com um fator de 0,01 segundos por segundo), mas a aba em segundo plano só poderá acessar o chamado "wall time" da CPU (wall time é o tempo real que um processo precisa para iniciar e completar sua tarefa) desde que não tenha esgotado seu orçamento. Em outras palavras, calcula-se que a média de consumo para uma aba em segundo plano será de 1% da CPU.
As principais exceções ao throttling são as abas que reproduzem áudio (pois são consideradas em primeiro plano automaticamente) e aquelas que mantêm conexões em tempo real via WebRTC ou WebSockets. A equipe do Chromium relata uma redução de "abas ocupadas" de 25% e, em determinados sites, a queda no uso da CPU pode chegar a 75%. Naturalmente, o que precisamos agora são medições muito mais sólidas por parte dos usuários, que deverão verificar se isso se traduz em maior duração da bateria. Mas a história não termina aí. Rumo a 2018, buscar-se-á a suspensão total das abas em segundo plano.