O que faz um navegador web ser rápido?

Por Pedro Cipoli

Os navegadores de internet talvez sejam o caso de concorrência mais acirrada entre as empresas que desenvolvem softwares. Chrome (Google), Firefox (Mozilla), Internet Explorer (Microsoft), Opera (Opera Software) e Safari (Apple) disputam ferozmente a preferência do usuário e o resultado são versões novas lançadas em curtos espaços de tempo.

Com interfaces de usuário cada vez mais modernas, recursos novos que em pouco tempo se tornam parte de nossas vidas e focados em velocidades cada vez maiores, os navegadores estão se tornando a principal ferramenta de um computador. Independentemente do sistema operacional utilizado, todos eles disputam o seu lugar ao sol.

Cada um de nós tem um browser preferido, por vezes até dois ou três tanto pela forma como eles funcionam como pelos recursos que trazem, como plugins e possibilidades de modificar a interface para fazer com que eles fiquem o mais pessoal possível. Essa é uma escolha bastante pessoal, por isso, é difícil apontar aquele que seja o melhor em tudo ou que traga todos os recursos que desejamos.

Hoje você vai conhecer um pouco mais sobre como cada um deles funciona internamente sem entrar em nenhum detalhe que seja técnico demais. Confira!

Chrome

O que faz um navegador rápidoInternet ExplorerSafariO que faz um navegador rápido

O que faz um navegador rápido
Internet Explorer
Safari
O que faz um navegador rápido

Renderização de layout

Essa função é, basicamente, a que fica "por baixo do capô" dos navegadores, sendo responsável pelo trabalho pesado ao ler páginas. O modo como o browser lida com tags HTML, imagens e renderização dos componentes CSS dos websites é o que resultará na velocidade maior ou menor da organização das páginas depois que o computador faz o download de todos os componentes. Conheça, abaixo, as tecnologias utilizadas por cada navegador.

Home Canaltech

Trident: Internet Explorer

Também conhecida como MSHTML, é uma engine proprietária da Microsoft e utilizada no navegador oficial da empresa desde a versão 4. Normalmente, esse sistema adota novos recursos com bastante atraso em relação aos outros navegadores. Por exemplo, o suporte a HTML5 só foi oficialmente adicionado na versão 10 do software.

Gecko: Firefox

Desenvolvido pela Mozilla Foundation, possui código aberto e é utilizado por vários projetos gratuitos como Camino, Flock, K-Meleon e apareceu pela primeira vez na internet com o navegador Netscape Communicator, já extinto. Por ser escrito totalmente em C++, possui suporte a vários sistemas operacionais, como Microsoft Windows, Linux, Unix, Mac OS X.

Webkit: Google Chrome e Safari

Também escrito em C++, é o motor de navegadores mais utilizado do mundo por ter grandes nomes como o Google, Amazon e Apple trabalhando em seu desenvolvimento. Ele é adotado na maioria dos browsers voltados para dispositivos móveis no Android, iOS, Blackberry Tablet OS e WebOS.

Presto: Opera

Utilizado pela primeira vez na versão 7 do navegador Opera, esta ainda é a base das novas versões do browser. É considerada a engine mais rápida disponível atualmente, com recursos de aceleração de hardware e WebGL embutidos no próprio código fonte.

Quer testar a velocidade de seu navegador e comparar qual das opções acima é melhor? Utilize o Peacekeeper e veja qual deles alcança maior pontuação.

Motor de Javascript

Sempre que clicamos em algo ou digitamos algum texto (como uma pesquisa no Google, por exemplo) o motor de Javascript é acionado, e vence aquele que conseguir processar o código em segundo plano mais rapidamente. Como estamos falando em milisegundos, quanto mais otimizações, melhor, e esse é o motivo do Chrome ter partes críticas de seu código escritas em Assembly, linguagem de programação de baixo nível.

O que faz um navegador rápido

Chakra: Internet Explorer 9

Adotado a partir da versão 9 do navegador da Microsoft para competir com os navegadores concorrentes, é otimizado para utilizar um núcleo separado do processador para compilar scripts dinamicamente, fazendo uso de aceleração gráfica via hardware da placa de vídeo.

SpiderMonkey/JägerMonkey: Firefox

Primeiro motor de Javascript a aparecer na internet em 1995, foi desenvolvido por Brendan Eich para o Netscape Communicator. Atualmente, é utilizado pelo Firefox sob licença de código aberto. É escrito em C++ e compilado dinamicamente pelo JägerMonkey, utilizado também em alguns componentes internos do GNOME 3, interface gráfica para Linux.

V8: Chrome

Desenvolvido pelo Google sob licença de código aberto e considerado o motor de JavaScript mais rápido disponível atualmente, o V8 compila o código em código de máquina nativo do processador utilizado, sendo que se sai melhor nos testes de desempenho disponíveis na internet.

Nitro: Safari

Com suporte nativo à utilização de múltiplos núcleos, aceleração via hardware nativa e gráficos 2D, proporciona uma excelente experiência de usuário em computadores Mac, embora no Windows esses recusos não sejam tão visíveis.

Sarakan: Opera

Adotado a partir da versão 10.5 do navegador da Opera, este é o maior competidor do motor V8 desenvolvido pelo Google e se saindo melhor em algumas tarefas particulares.

Para ver qual deles se sai melhor ao ler códigos Javascript confira os resultados Raytrace, EarleyBoyer, Mandreel e Code loading do teste Octane desenvolvido pelo Google.

Cache de dados

Cache

Manter um cache de dados significa, basicamente, armazenar os dados das páginas visitadas mais frequentemente, eliminando a necessidade de renderizar objetos que já foram processados anteriormente. Por exemplo, se visitarmos uma página e o navegador detectar que somente alguns componentes foram atualizados, ele renderizará somente esses dados, buscando os que não foram atualizados no disco rígido local do computador e aumentando significativamente a velocidade de leitura da página. O Google Chrome é o navegador que mais faz uso dessa técnica.

Compressão de dados/Processamento de computação em nuvem

Adotado pela primeira vez no Opera com o nome de Opera Turbo, este é um componente crucial em situações onde a banda de internet é limitada. De nada adianta ter uma excelente implementação de um renderizador de layout ou um motor de javascript poderoso se os dados demoram para chegar. Basicamente, os dados são processados na nuvem por um servidor de cache e comprimidos antes de serem enviados ao navegador, diminuindo o tamanho do download da página e a necessidade de processamento de dados.

O que faz um navegador rápido

Em dispositivos móveis que utilizam conexões 3G, por exemplo, esse processo é crucial tanto para atender as limitações de dados do plano quanto pela baixa velocidade oferecida por eles, especialmente no Brasil, onde o desempenho dessas redes é abaixo do esperado.

Gerenciamento de plugins

Plugins

Componentes como Flash, Silverlight, Shockwave, Java e PDFs são processados por plugins do navegador, e a forma como o browser lida com eles influencia diretamente no desempenho dessas aplicações. o Google, por exemplo, possui esses recursos embutidos no instalador principal, enquanto o Firefox utiliza um processo separado no gerenciador de tarefas para lidar com esses componentes, como mostrado abaixo:

Firefox no gerenciador de tarefas

Qualquer uma das formas tem vantagens e desvantagens, dependendo de como o fabricante implementa o gerenciamento de plugins. De qualquer modo, instalar muitos deles irá impactar na performance geral do navegador, pois são componentes que necessitam de processamento ou banda de internet adicionais.

Gerenciamento de memória

Memória RAM

Atualmente todos os grandes navegadores possuem suporte a múltiplas abas, e a forma como o fabricante implementa o gerenciamento de cada uma delas influencia tanto na estabilidade do browser quanto na segurança do sistema operacional. Enquanto Firefox e Opera utilizam apenas um processo na memória RAM, Chrome e Internet Explorer alocam um processo por aba.

Dependendo da configuração de hardware do usuário, como quantidade e velocidade de memória RAM, múltiplos núcleos e performance da GPU, os navegadores podem apresentar velocidades e comportamentos diferentes. Por isso não existe um navegador que seja mais rápido em todos os computadores de forma absoluta, pois seu desempenho varia bastante com a configuração.

Otimização de conteúdo web

OpenDNS

Além do trabalho bruto em processar dados, os navegadores implementam otimizações de tempos em tempos para aumentar a performance da busca e recebimento de dados da internet. Cada uma delas traz um pequeno avanço que melhora alguns detalhes, mas juntas, aumentam e muito a velocidade geral do navegador por implementar otmizações na forma como estes lidam com o recebimento de páginas web.

Para citar apenas alguns, temos o DNS prefetching, onde o navegador "aprende" quais são os subdomínios de endereços associados a um site e assim acessa o servidor DNS apenas uma vez; o Prerendering, que já lê uma próxima página que o usuário provavelmente irá acessar baseado em algoritmos de aprendizado; o SDPY, um protocolo novo de internet capaz de aumentar a velocidade de acesso a páginas originalmente desenvolvido pelo Google; e o Connection Management, que abre novas conexões se necessário, mais utilizado no Internet Explorer.

E você, usuário? Qual o seu navegador preferido?