4 votes

Pourquoi les navigateurs sont-ils si lourds ?

En 1998, j'avais un ordinateur avec un processeur Pentium MMX à 233 MHz et une carte GFX sans accélération 3D. Il était capable de faire tourner des jeux comme Quake II à un taux de FPS décent. Mon ordinateur actuel est beaucoup plus performant et possède un GPU de classe moyenne, mais il peine à atteindre 20 FPS lors du rendu d'un seul modèle dans une skybox avec WebGL. Même les pages ordinaires comportant de nombreuses animations CSS en 2D mettent métaphoriquement à genoux de nombreux ordinateurs modernes.

En tant que développeur web, je comprends qu'il se passe beaucoup de choses dans une page web, mais pas ce qui la rend que lourd. Les navigateurs modernes compilent JavaScript en code machine natif du CPU avant de l'exécuter et le rendu dans un élément de toile ne devrait pas déclencher de reconstructions du DOM, donc théoriquement, il devrait être beaucoup plus rapide qu'il ne l'est.

Qu'est-ce que je rate ici et est-il possible d'éviter ou de minimiser ce qui rend les navigateurs lents pour construire des sites Web plus efficaces ?

0voto

Basa Points 11

Les pages web sont beaucoup plus grandes aujourd'hui qu'il y a vingt ans, et elles utilisent également des composants plus gourmands en ressources processeur, comme Flash.

Une page web d'il y a vingt ans faisait environ 7KB, alors qu'aujourd'hui elle fait environ 200-300K ? Et à l'époque, on pouvait utiliser très peu de JavaScript, avec très peu d'images, et s'il s'agissait d'images, il s'agissait de GIF ou de petits JPEG. Et Flash pouvait bloquer une machine avec ses terribles performances. Aujourd'hui, vous avez des sites Web contenant plusieurs éléments Flash, avec des JPEG de 1920x1080 ou plus.

Les navigateurs sont à peu près aussi efficaces qu'ils peuvent l'être.

0voto

Ana cleto Points 11

Il est un peu injuste de comparer une page web moderne chargée en 3D, CSS, AJAX et JavaScript avec une ancienne page web où le plus compliqué était de permuter les images sur les boutons ou dans la page toutes les quelques secondes.

Ce que vous demandez au navigateur est plus compliqué de plusieurs ordres de grandeur, la modélisation des calculs 3D pour les transmettre à la carte graphique nécessite à elle seule une puissance de traitement bien supérieure à celle des simples pages web "mettez une image ici" d'antan.

Les modèles dans Quake n'étaient pas compliqués, gérant de l'ordre de quelques dizaines de polygones par modèle plutôt que les jeux modernes qui attendent des dizaines de milliers de polygones par modèle.

Même dans ce cas, je ne m'attendrais pas à voir une dégradation massive des performances dans le navigateur et je m'intéresserais à votre modèle lui-même. Plus il y a de polygones dans le modèle, plus il faudra de temps pour calculer et transmettre à la carte graphique.

Essayez de voir si vous pouvez réduire la complexité (le nombre de polygones) de votre modèle dans un premier temps, la 3D a toujours été beaucoup plus une question d'obtenir le bon niveau de complexité dans les modèles afin qu'ils soient beaux, mais n'affectent pas trop les performances.

Ce site から Expériences sur le chrome est un exemple de bonne 3D dans le navigateur, il me semble assez fluide (dans Firefox) et le niveau de détail est celui que j'attends pour un bon fonctionnement. Si vous avez des problèmes avec ce site qui est douloureusement lent, je serais curieux de savoir si votre navigateur utilise réellement la carte graphique pour le rendu 3D.

0voto

Beaucoup de pages semblent lentes parce qu'elles demandent des annonces de différents endroits. D'autres pages sont lentes parce que le javascript est mal écrit. D'autres facteurs ont été décrits par Mokubai et user*. Le "dénominateur" commun, cependant, est le javascript. Il est essentiellement responsable de la lenteur de votre navigateur. Certaines personnes diront que c'est principalement le flash, mais je ne suis pas d'accord. Les pages flash bien écrites sont légères et efficaces. Animations 3D, jeux interactifs, tout ce que vous voulez... Le principal problème est celui des personnes qui ne savent pas comment programmer efficacement. Et ce n'est pas toujours facile !

En tout cas. Si vous utilisez Firefox, obtenez NoScript . Il bloquera tout le javascript (et le flash), tout en vous permettant d'activer les éléments "riches" un par un ou page par page. Si vous n'êtes pas un fan de firefox, alors google chrome est votre deuxième meilleur choix, car il est vraiment très rapide.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X