New Firefox is a Kyūbi among browsers

O computador de onde saem estas linhas recentemente completou quatro anos de idade, uma eternidade nos domínios regidos pela Lei de Moore. Para sobreviver ao que já é praticamente a terceira idade de um desktop, ele saltou de 4GB para 16GB de memória RAM. Mesmo assim, continua um aparelho bastante esquecido.

Os navegadores são os principais culpados. Em ambiente Windows, ao menos, não existe nenhum navegador realmente bom. Há os que dão pro gasto, e os que são tão ruins que não deveriam sequer ¨ter sido lançados. No sistema que desenvolvi para o PURA, sequer me dei ao trabalho de estender o suporte a além dos quatro mais fáceis: Chrome/Safari (são mais similares do que parecem), Firefox e Edge. Quem entrava com outro navegador, era elegantemente recebido com um aviso destes:

Em termos de consumo de memória, Chrome é o pior de todos, de longe. Cada aba consome ao menos 30MB de recursos próprios. Fora as extensões. Fora os recursos compartilhados. Fora os plug-ins. Com cerca de 100 abas abertas, as centenas de processos abertos consomem muito acima de 8GB de memória, basicamente metade de toda a informação que meu computador consegue acumular. Curiosamente, quando comento sobre isso em voz alta, a resposta mais comum costuma ser "por que você tem 100 abas abertas?", o que, na verdade, só me traz espanto. O que diabos você faz na internet para não ter 100 abas abertas? Se você não está navegando em centenas de abas ao mesmo tempo, saiba que está cuspindo no esforço de 14 bilhões de anos do Universo que evoluíram para lhe dar 86 bilhões de neurônios. A habilidade de prestar atenção em múltiplas tarefas ao meio tempo é natural em seres humanos, e existe nos computadores desde 2001. Converse com seu médico.

Agora, se o problema era falta de recursos computacionais, acredito que a solução tenha vindo de onde menos se esperava: dos porões da Mozilla Corporation. Para entender como isto funciona, é importante entender como chegamos a este ponto. Nos anos 2000, o navegador usado por uma maioria acachapante de 90% ou mais de usuários era o Internet Explorer, instalado por padrão em máquinas Windows. Nele, cada página era uma janela diferente. Ou seja, cada página passava a competir diretamente pela memória e contra os outros programas. A quem não se lembra, confiem em mim, era muito ruim.

Quando surgiu o Mozilla Firefox, bem, ele também era uma porcaria. Mas, pelo menos, cada página era uma aba dentro da mesma janela, o que economizava muita memória. As extensões também eram muito divertidas, especialmente porque, na época, sites possuíam tantos anúncios que era impossível descobrir qual botão clicar na hora de fazer um download. O AdBlock, primeira ferramenta de controle dos anúncios, foi uma extensão criada para o Firefox. 

Antes do Adblock, era praticamente impossível encontrar o botão certo no universo de anúncios.

A web ficou realmente ágil quando o Google decidiu entrar na brincadeira, não só lançando seu próprio Chrome, mas também convertendo aplicações para a web. Por exemplo, e-mail era um programa que exigia um cliente nativo (como o Outlook) se você precisasse salvar as mensagens recebidas. Lembro de ter ligado para conhecidos algumas vezes para avisá-los de que a caixa de entrada deles estava cheia! Hoje parece improvável, já que o espaço da maioria dos webmails é imenso.

Quando o GMail foi lançado, 100MB era o limite mais comum. Acima disso, só pagando.

O Chrome era mais rápido porque usava o que havia de melhor no Internet Explorer e no Firefox. Cada página (aba) possui seu próprio processo, como no IE, mas há processos comuns a todas as páginas que compartilham informação entre elas, como no Firefox. Por exemplo, você não precisa de múltiplos processos do Adblock abertos, já que a função dele é a mesma em todas páginas. Outra vantagem é que cada processo pode ser recarregado sem afetar os demais. O problema é que, com 100 abas abertas, o computador agora precisa ter memória para todas elas. E, a cada vez que você abrir uma nova aba, precisará de ao menos mais 30MB disponíveis para serem sequestrados. 

Dos porões da Mozilla, vem o Quantum, que a empresa preferiu chamar de Firefox Quantum. O nome é um erro, na minha opinião, já que é um navegador completamente novo e que fará todas as suas antigas extensões pararem de funcionar. Ainda assim, faz dois meses que mudei e recomendo que você faça o mesmo. No [Firefox] Quantum, o número de processos é fixo e escala com a quantidade de núcleos do seu processador. Por exemplo, o Intel Core i5-4430 dentro do meu gabinete tem quatro núcleos lógicos individuais, por isso o Quantum determinou que o número ideal seria de 6 processos separados:

Aí tem só 25 abas abertas. Ainda assim, 1.5GB de memória é um valor ínfimo para um navegador.

Este número é determinado automaticamente, não se preocupe. Se quiser, pode mudar diretamente no próprio navegador, através do endereço about:config:

A graça desta arquitetura é manter a independência das abas ao mesmo tempo em que contém o vazamento de memória. Isto é especialmente importante quando se tem muitas abas que não estão em uso no momento, porque o processo delas pode ser reutilizado por abas que agora estão em uso. 

O resultado é um navegador completamente incompatível com todas as antigas extensões (e isso talvez lhe incomode muito), mas surpreendentemente ágil e eficiente. O novo Firefox inicia rapidamente, fecha instantaneamente e move-se com graciosidade pela web. Não deixe o histórico preconceito prevalecer, porque a melhoria é dramática, quando comparado ao velho Firefox. A Mozilla alega que ele está 4x mais rápido, mas minha impressão é de que o número é bem maior.

Em relação ao Chrome, que representa 70% dos meus leitores segundo o Analytics, a experiência é bastante similiar, a princípio. A diferença, no entanto, torna-se significativa depois de algumas centenas de abas abertas e fechadas, o que costuma ocorrer comigo depois de um par de horas. Extensões falhando por falta de  memória são uma visão rara no Quantum, embora costumam ocorrer com frequência irritante no Chrome. Abrir novas abas é um processo indolor no Quantum mesmo depois dos três dígitos. A renderização de scripts também é rápida e rasteira, mesmo em sites intensos como o Facebook. De fato, todas as minhas redes sociais estão exclusivas no Quantum justamente por conseguir navegar até o fim da linha do tempo sem lentidões. 

A vantagem em velocidade é especialmente observável se você estiver usando Windows. Em Linux/masOS, a diferença não é tão significativa, talvez porque estes sistemas operacionais sejam mais eficazes no gerenciamento de memória. No Ubuntu 16.04 64-bits do trabalho, frequentemente me pego confundindo os navegadores porque eles se comportam de forma muito similar. Em casa, não há como confundi-los. Os benchmarks da própria Mozilla podem parecer exagerados, mas, na minha experiência, até que são conservadores:

Fonte: blog do Ryan Pollock no Medium

Se você prefere benchmarks de terceiros, talvez se assuste em saber que eles são ainda mais incisivos:

Fonte: Eric Rahm

Enfim, não é à toa que a maioria dos novos usuários do Quantum sejam antigos usuários do Chrome. E eles estão satisfeitos. Há uma cachoeira de novas ferramentas (capturas de tela, integração nativa com o Pocket, bloqueio de rastreadores, etc) que realmente não me enchem os olhos, mas talvez lhe agradem. Um navegador precisa ser ágil e eficiente, e, neste momento, não há competidor à altura do Quantum. Teste o novo Firefox


 

Comments

There are currently no comments

New Comment