Por que os navegadores são tão pesados? [fechadas]

4

Em 1998 eu tinha um computador com CPU Pentium MMX de 233MHz e uma placa GFX sem aceleração 3D. Ele foi capaz de rodar jogos como o Quake II a uma taxa decente de FPS. Meu computador atual tem muito mais desempenho e uma GPU de classe média, mas ainda se esforça para alcançar 20 FPS ao renderizar um único modelo dentro de um skybox com WebGL. Até mesmo páginas comuns com muitas animações CSS 2D trazem muitos computadores modernos para seus joelhos metafóricos.

Como desenvolvedor web, eu entendo que há muita coisa acontecendo em uma página da web, mas não o que a torna pesada . Os navegadores modernos compilam o JavaScript para o código da máquina nativa da CPU antes de executá-lo e a renderização em um elemento da tela não deve acionar reconstruções de DOM, portanto, teoricamente, ele deve ser muito mais rápido do que é.

O que estou perdendo aqui e é possível evitar ou minimizar o que está tornando os navegadores lentos para construir sites mais eficientes?

    
por Kaivosukeltaja 13.10.2012 / 10:40

3 respostas

1

Muitas páginas parecem lentas porque solicitam anúncios de diferentes locais. Outras páginas parecem lentas porque o javascript está mal escrito. Outros fatores foram descritos por Mokubai e pelo usuário *. O "denominador" comum, embora seja javascript. É basicamente responsável por tornar o seu navegador lento. Algumas pessoas dirão que é flash principalmente, mas eu tenho que discordar. Páginas flash bem escritas são magras e mesquinhas. Animações em 3D, jogos interativos, o que for ... O principal problema são as pessoas que não sabem programar com eficiência. E nem sempre é fácil!

De qualquer forma. Se você executar o Firefox, obtenha o NoScript . Ele irá bloquear todos os javascript (e flash), permitindo que você habilite elementos "ricos" em uma base de um por um ou página por página. Se você não é fã do Firefox, então o google chrome é sua próxima melhor aposta, já que é realmente muito rápido.

    
por 13.10.2012 / 13:19
0

As páginas da Web são muito maiores hoje do que há duas décadas e também usam componentes que exigem mais CPU, como o Flash.

A página de duas décadas atrás seria de cerca de 7KB, hoje em dia estão em torno de 200-300K? E, naquela época, você pode usar um JavaScript muito pequeno, com pouquíssimas imagens, e se fossem imagens, você estava olhando para GIFs ou pequenos JPEGs. E o Flash poderia bloquear uma máquina com o seu desempenho terrível. Agora você tem sites com vários itens Flash neles, com 1920x1080 ou JPEGs maiores neles.

Os navegadores são tão eficientes quanto conseguirão.

    
por 13.10.2012 / 10:57
0

É um pouco injusto comparar uma página da web moderna cheia em 3D, CSS, AJAX e JavaScript com uma página antiga, onde o mais complicado foi trocar imagens nos botões ou na página em intervalos de poucos segundos.

O que você está pedindo ao navegador para fazer é mais complicado em várias ordens de grandeza, modelagem de cálculos 3D para passá-lo para a placa gráfica só requer muito mais poder de processamento do que o simples "colocar imagem aqui" páginas do passado.

Os modelos em Quake não eram complicados, gerenciando a ordem de dezenas de polígonos por modelo, em vez de jogos modernos que esperavam dezenas de milhares de polígonos por modelo.

Mesmo assim, eu não esperaria ver uma grande degradação no desempenho do navegador e estaria analisando o seu próprio modelo. Quanto mais polígonos no modelo, mais tempo levará para calcular e passar para a placa gráfica.

Tente ver se você pode reduzir a complexidade (número de polígonos) em seu modelo como um primeiro caso, o 3D sempre foi muito mais para obter o nível certo de complexidade nos modelos para que eles pareçam bons, mas não afeta muito o desempenho.

Este site de Experimentos com o Google Chrome é um exemplo de bom navegador 3D, parece bastante bom para mim (no Firefox) e é o nível de detalhe eu esperaria correr bem. Se você tiver problemas com esse site sendo dolorosamente lento, eu ficaria curioso para saber se o seu navegador está realmente usando a placa gráfica para renderizar em 3D.

    
por 13.10.2012 / 11:22