Udostępnij za pośrednictwem


Navigateurs web modernes : tous vers l’accélération matérielle ! Mais pas à la même vitesse…

HTML5 et ses amis permettront dans le futur l’écriture d’une nouvelle génération d’applications très riches visuellement. Il faudra alors faire très attention à l’accessibilité de ces nouvelles applications. Mais il faudra aussi que les navigateurs modernes soient capables de rendre la complexité de ces nouvelles applications avec la plus grande fluidité possible. Pour cela, il faut être capable d’exploiter au mieux les ressources de la machine, que ce soit un PC ou un périphérique portable comme un téléphone ou une tablette.

C’est avec cet objectif en tête qu’IE9 a été conçu depuis le début. Il est donc capable d’exploiter la puissance de traitement du GPU présent sur une machine tournant sous Windows Vista ou Windows 7 (et bientôt également du GPU présent dans tous les téléphones Windows Phone 7). Mettre en place ce que l’on appelle donc “l’accélération matérielle” semble donc indispensable si l’on souhaite pouvoir exploiter au mieux les merveilleuses promesses d’HTML5. D’ailleurs l’ensemble de l’industrie semble d’accord sur ce point : IE9 propose une accélération matérielle activée par défaut, Firefox 4.0 aura également une accélération matérielle par défaut, Google planche dessus pour Chrome (mais se refuse pour l’instant à l’activer par défaut) et plus récemment Opera (avec la beta 11.50) a annoncé des plans similaires. Certains tentent de vous faire croire que tout ce qui compte, c’est d’avoir une forme d’accélération matérielle dans son navigateur. Cependant, la mise en œuvre technique de l’accélération matérielle n’est pas chose aisée. Ainsi, l’accélération matérielle proposée par les différents acteurs des navigateurs ne se valent pas. C’est ce que nous allons avoir ensemble ici.

Il y a 2 raisons à cette différences de performances. La 1ère est simplement liée au fait que ce n’est pas simple à implémenter. Le talent de chacune des équipes de développement va donc jouer un rôle crucial ici tant en terme de performance que de stabilité. La 2ème est lié au choix effectué par certains éditeurs. Certains (comme nous) préfèrent se limiter à quelques plateformes (Windows Vista et Windows 7) pour optimiser au mieux les performances de notre navigateur. D’autres (comme Opera, Google et Mozilla) ont historiquement fait le choix d’être multiplateformes. C’est tout à leur honneur mais cela augmente naturellement la complexité de mise en place de l’accélération matérielle de par l’architecture nécessaire à déployer. Cependant, il semblerait que ces derniers, même s’ils ont fait des annonces d’accélération matérielle multiplateformes, privilégient pour le moment les mêmes plateformes que nous (Vista & Win7). Les utilisateurs de MacOS et de distributions Linux semblent pour l’instant lésé de ce côté.

Sommaire :

1 – Protocole, machine et navigateurs utilisés pour les tests
  - Comment vérifier si l’accélération matérielle est bien activée ?
  - Méthodologie pour analyser l’occupation GPU
2 – Benchmarks sur Microsoft IE Test Drive
  - Speed Reading avec GPU nVidia
  - Speed Reading avec GPU Intel
  - HTML5 Blizzard avec GPU nVidia
  - HTML5 Blizzard avec GPU Intel
3 – Benchmarks extérieurs à Microsoft
  - Jeu HTML5 VII avec GPU nVidia
  - Jeu HTML5 VII avec GPU Intel
  - Hardware Acceleration Stress Test par Mozilla
  - The Man in Blue Animation Benchmarking
  - Asteroids HTML5 Canvas 2D Rendering and JavaScript Benchmark
4 – Conclusion

Note : cet article fait suite à celui-ci : Une accélération matérielle complète pour tous les éléments du Web où je vous parlais déjà de certains de ces points. Comme tout le monde a progressé entre temps, je me suis dit que c’était une bonne occasion de mettre à jour ce comparatif tout en creusant un peu plus certaines parties comme l’occupation GPU.

1. Protocole, machine et navigateurs utilisés pour les tests

L’ensemble des tests ont été réalisés sous Windows 7 SP1 Ultimate 64 bits. La machine utilisée est un Sony Vaio Z (référence exacte VPCZ12C5E) dont je vous ai déjà parlé ici : Sony Vaio Z ou la quête de la machine portable parfaite . Cette machine est équipée d’un Core i5 540m (double cœurs hyperthreadés soit 4 processeurs logiques vu sous Windows), de 2 GPUs (nVidia GT330m et le GPU Intel HD Graphics intégré) et de 8 Go de mémoire vive. 

Par ailleurs, suite au passage à la beta 12 de Firefox 4.0, j’ai perdu l’accélération matérielle car mes drivers ont manifestement été blacklistés entre la beta 11 et la beta 12. Comme Opera 11.50 beta ne voulait pas non plus de mes drivers (qui marchaient pourtant très avec la RC d’IE9…), j’ai décidé de les mettre à jour.

Voici donc la version des drivers nVidia : 263.00 (8.17.12.6300) et Intel : 2022 (8.15.10.2202) que j’ai utilisés. Je vais en effet utiliser les 2 GPUs dans ces tests pour que l’on puisse constater du bénéfice obtenu en fonction de la puissance sous-jacente.

Note : si vous avez aussi un Vaio Z et que vous souhaitez mettre à jour vos pilotes graphiques, il faut suivre cette procédure un peu ésotérique : Our discoveries on Vaio Z’s Hybrid Graphics . Espérons qu’à l’avenir, certains éditeurs soient moins rigides sur les mises à jour de drivers pour nous laisser bénéficier de leur accélération matérielle.

Voici les versions des navigateurs retenus pour ce test :

- Microsoft Internet Explorer 9 RC (9.0.8080.16413)
- Mozilla Firefox 4.0 beta 12 -
Google Chrome 11.0.686.1 dev -
Opera 11.50 labs

Safari n’utilisant pas à ma connaissance d’accélération matérielle, je ne l’ai tout simplement pas retenu pour ce test. Nous noterez aussi au passage qu’IE9 est la version la plus stable du lot et la plus proche d’une version finale. J’ai eu par exemple quelques freezes et crashes d’Opera 11.50 et également quelques soucis avec Firefox 4.0 beta 12 qui refusait parfois de se fermer.

Comment vérifier si l’accélération matérielle est bien activée ?

Si vous souhaitez également de votre côté comparer la performance des différents navigateurs sur votre machine, pensez bien avant à vérifier si l’accélération matérielle est bien activée.

Sous IE9, c’est activé par défaut si votre GPU et vos pilotes graphiques le permettent. Nous gérons par exemple une liste noire de pilotes graphiques instables qui entrainent de facto la désactivation de l’accélération matérielle. Pour le vérifier, rendez-vous dans les “Options Internet” puis “Avancé” et vérifiez bien que la case Utiliser le rendu logiciel au lieu du rendu GPU* ” n’est pas cochée. Sinon, c’est uniquement votre CPU qui sera sollicité pour le rendu et vous aurez donc des performances nettement inférieures.

IE9RCBench_001

Sous Firefox 4.0, il faut taper dans la barre d’adresse “about:support” et dans la section “Accélération graphique” vérifier si Direct2D et DirectWrite sont bien activés. Par exemple, sur ma machine, voici le résultat avant et après la mise à jour de mes pilotes:

IE9RCBench_002 IE9RCBench_003

Sous Chrome, il faut l’activer manuellement en tapant dans la barre d’adresse “about:flags” et cliquer sur “Activer” dans la section “2D canvas et accélération matérielle".

Sour Opera, il faut se rendre dans l’aide et “About Opera” et vérifier que “Vega backend” est bien sur “OpenGL” et pas “Software”.

Note : j’espère que vous noterez que je fais des efforts pour tenter de comparer de manière la plus loyale possible les différents navigateurs. J’aurais pu me contenter de tester les navigateurs en l’état, sans activer l’accélération matérielle et sans mettre à jour mes pilotes vu qu’IE9 RC fonctionnait très bien tel quel. Mais avec Stanislas, nous avons à cœur de comparer ce qui est comparable. Je ne vois ainsi pas l’intérêt aujourd’hui de comparer un IE8 à un Chrome 9 ou un Opera 11. C’est donc avec cette démarche en tête que j’ai retenu les toutes dernières versions des navigateurs concurrents.

Méthodologie pour analyser l’occupation GPU

Pour finir sur le protocole retenu, sachez qu’à chaque fois, je n’ai laissé qu’un seul navigateur ouvert et aucune autre application ouverte en parallèle (à part les outils de mesure). Par ailleurs, j’ai utilisé l’utilitaire GPU-Z me permettant d’analyser en temps réel le taux d’occupation du GPU.

Pour aller encore plus loin sur l’analyse de l’utilisation GPU, j’ai utilisé la technique en partie décrite ici : Measuring Browser Performance with the Windows Performance Tools en utilisant les outils du SDK Windows notamment GPUView. On peut ainsi voir en détail la charge du GPU ainsi que le FPS (Frame Per Second) dans le temps associé à un processus particulier. Ce sont des outils en général utilisés pour débugger les problèmes de performances dans les applications 3D (DirectX ou XNA). Mais ils sont ici particulièrement intéressants pour mettre en lumière les différences de performance entre les navigateurs. 

Allez, trêve de bavardage, regardons ce qu’ils sont dans le ventre ces derniers petits navigateurs accélérés !

2. Benchmarks sur Microsoft IE Test Drive

Commençons par regarder quelques résultats sur le site que nous maintenons : http://ie.microsoft.com/testdrive où de nombreuses démos sont désormais célèbres comme celle de nos superbes poissons. Sourire

Speed Reading avec GPU nVidia

Voici le tableau des résultats avec le GPU nVidia GT330m et le taux approximatif d’utilisation pour chacun des navigateurs du GPU en cours d’exécution sur l’application Speed Reading. Le but du jeu est d’afficher, à travers l’utilisation de la balise <canvas>, l’ensemble des caractères le plus rapidement possible. La valeur la plus basse est donc bien évidement la meilleure :

IE9RCBench_015

Navigateur

 IE9 RC

Opera 11.50 labs

Chrome 11.0.686.1 dev

Firefox 4b12

Temps

7s

8s

19s

24s

Occupation GPU nVidia (GPU-Z)

37%

98%

17%

42%

FPS moyen (GPUView)

52

50

15

6

Cette première série de résultats est intéressante. On voit ainsi qu’Opera 11.50 et IE9 RC sont quasiment ex-aequo. IE9 RC et Opera 11.50 labs sont également du coup plus de 3 fois plus rapides que Firefox 4 beta 12 et plus de 2 fois plus rapide que Chrome sur ce test. Chapeau bas donc à Opera pour cet excellent travail ! Cependant, on voit aussi qu’Opera a saturé le GPU à quasiment 100% pour atteindre le même niveau de performances qu’IE9. Cela veut donc dire 2 choses :

1 - Il nous en reste potentiellement sous la pédale avec IE9
2 – La version IE9 pour les périphériques mobiles permettra d’avoir d’excellentes performances sans pour autant forcément saturer le GPU… pour le bénéfice de l’autonomie !

Cela veut dire aussi au passage qu’IE9 devrait être capable aussi de bénéficier de GPU moins puissants pour déjà vous apporter un confort inédit. C’est ce que nous allons justement voir après.

Vous noterez également sur les courbes GPU View ci-dessous des différences très importantes sur le taux FPS affiché par chacun des navigateurs sur ce test. Opera 11.50 et IE9 RC sont largement 1er avec une courbe moyenne oscillant dans les 50 FPS, Chrome est loin derrière avec environ 15 FPS et Firefox 4.0beta12 est bon dernier avec ses 6 FPS. On peut également lire sur ces courbes GPU View que IE9 et Opera 11.50 tirent réellement profit du GPU.

Voici la série de screenshots montrant les résultats présentés dans ce tableau avec le GPU nVidia (classement du meilleur au moins bon). Vous y noterez également l’utilisation GPU-Z sur la 1ère copie d’écran et la courbe de FPS de GPUView sur la 3ème copie d’écran. Vous pouvez cliquer sur les vignettes pour avoir les images en meilleure qualité sur Flickr. 


Internet Explorer 9 RC

IE9RCBench_004 IE9RCBench_005

IE9RCBench_015_IE9GpuView_nVidia_SpeedReading
Cliquez sur les images pour avoir les versions haute résolution


Opera 11.50 labs

IE9RCBench_008 IE9RCBench_009

IE9RCBench_017_OperaGpuView_nVidia_SpeedReading
Cliquez sur les images pour avoir les versions haute résolution


Chrome 11.0.686.1 dev

IE9RCBench_010 IE9RCBench_011

 
IE9RCBench_018_ChromeGpuView_nVidia_SpeedReading
Cliquez sur les images pour avoir les versions haute résolution


Firefox 4.0 beta 12

IE9RCBench_006 IE9RCBench_007

IE9RCBench_016_FF4GpuView_nVidia_SpeedReading
Cliquez sur les images pour avoir les versions haute résolution


Speed Reading avec GPU Intel

Regardons maintenant le résultat avec le GPU intégré au Core i5 (Intel HD Graphics). La valeur la plus basse étant toujours la meilleure :

IE9RCBench_016

Navigateur

IE9 RC

Opera 11.50 labs

Chrome 11.0.686.1 dev

Firefox 4b12

Temps

11s

1930s

28s

71s

Opera passe malheureusement en rendu “software” avec ma puce Intel intégrée. Pour ne pas avoir de problème d’échelle, je ne préfère donc pas intégrer le résultat qui dépasse les milliers de secondes du coup. IE9 RC devient par contre presque 7 fois plus rapide que Firefox 4 beta 12 et quasiment 3 fois plus rapide que Chrome avec le GPU Intel. Cela devrait donc intéresser tous les propriétaires de Netbook ou de portable d’entrée gamme. D’autant plus qu’IE9 s’occupe également de décompresser la balise vidéo de manière matérielle.

Voici la série de screenshots montrant les résultats présentés dans ce tableau avec le GPU Intel (classement du meilleur au moins bon) :


Internet Explorer 9 RC
IE9RCBench_012_ie9intel 

Chrome 11.0.686.1 dev
IE9RCBench_014_chromeintel

Firefox 4.0 beta 12
IE9RCBench_013_ff4intel

Opera 11.50 labs
IE9RCBench_014b_operaintel


HTML5 Blizzard avec GPU nVidia

Regardons maintenant comment se comportent chacun des navigateurs avec la démo HTML5 Blizzard. Cette démo dont l’aspect technique a été détaillée dans ce billet : HTML5 Blizzard: Full Hardware Acceleration in Action mélange plusieurs technologies comme Canvas, SVG, WOFF et un peu de CSS3. L’objectif de cette démo est de demander au navigateur de maintenir un taux FPS optimal de 60 FPS en adaptant dynamiquement le nombre d’objets affichés simultanément à l’écran. En résumé, meilleure l’accélération matérielle est, plus de flocons vous aurez. Sourire J’ai donc lancé cette démo sur chacun des navigateurs et attendu suffisamment longtemps pour que le score “Snowflakes” se stabilise. La valeur la plus haute est donc cette fois-ci la meilleure :

IE9RCBench_023

Navigateur

IE9 RC

Opera 11.50 labs

Chrome 11.0.686.1 dev

Firefox 4b12

Score

2684

2775

255

456

Occupation GPU moyenne

33%

55%

54%

62%

Mémoire vidéo utilisée

131MB

235MB

220MB

146MB

Opera 11.50 passe légèrement devant IE9 RC sur ce test ! Preuve s'il en est que nos tests ne sont pas spécialement optimisés pour IE 9. Clignement d'œil Il faut néanmoins tempérer les excellents résultats d’Opera en mettant en perspective son taux d’occupation GPU moyen 1,6 fois supérieur et sa consommation vidéo mémoire presque 2 fois supérieure à ceux d’IE9. Il est à noter aussi qu’Opera ne joue pas la musique en arrière plan utilisant la balise <audio> (supportée par Opera) avec le codec MP3 (non supporté par Opera). Cela peut donc expliquer ce léger avantage. Malgré tout, IE9RC et Opera 11.50 sont néanmoins au coude à coude en performance pure et restent tous les 2 nettement devant Firefox 4.0 beta 12 et Chrome 11.0.686.1. J’avoue être agréablement surpris par les performances d’Opera !

En résumé, IE9 RC est 10 fois plus rapide que Chrome 11.0.686 et presque 6 fois plus rapide Firefox 4.0 beta 12 sur ce test spécifique !

Voici la série de copies d’écrans correspondant à ce tableau avec le GPU nVidia (classement du meilleur au moins bon). J’y ai incrusté les valeurs fournies par GPU-Z :


Opera 11.50 labs
IE9RCBench_020_Opera_HTML5Blizzard

Internet Explorer 9 RC
IE9RCBench_019_IE9_HTML5Blizzard 

Firefox 4.0 beta 12
IE9RCBench_021_FF4_HTML5Blizzard

Chrome 11.0.686.1 dev
IE9RCBench_022_Chrome_HTML5Blizzard


HTML5 Blizzard avec GPU Intel

A nouveau, il est intéressant d’observer comment ces nouveaux navigateurs tirent partie de GPU moins puissants comme ceux d’Intel intégré. J’ai donc relancé le même test sur les 4 navigateurs en basculant sur ma puce Intel. J’avoue que je ne me serais jamais douté du résultat avant ! Regardons cela ensemble. La valeur la plus haute reste toujours ici la meilleure :

IE9RCBench_028

Navigateur

IE9 RC

Opera 11.50 labs

Chrome 11.0.686.1 dev

Firefox 4b12

Score

2578

3

177

79

Tout est chamboulé ! IE9 RC semble insensible au changement de GPU et obtient quasiment le même score qu’avec la puce nVidia. Opera passe de la 1ère à la dernière place assez logiquement puisqu’il n’est pas capable d’activer l’accélération matérielle sur la puce Intel. Les 2 navigateurs de Mozilla et Google sont capables de leur côté d’utiliser la puce Intel. Cependant, alors que Chrome est relativement stable en performance et obtient un score proche de celui qu’il avait avec la puce GT330m, Firefox 4.0 beta 12 dégringole en voyant ses performances divisées par presque 6 en passant du GPU nVidia au GPU Intel.

IE9 est donc très loin devant ses concurrents sur ce test lancé sur le GPU Intel. IE9 a en effet des performances respectivement 14,5 et 32,6 fois supérieures à Chrome et Firefox dans ces conditions.

Voici la série de copie d’écrans correspondant à ce tableau avec le GPU Intel (classement du meilleur au moins bon) :


Internet Explorer 9 RC
IE9RCBench_024_IE9_Intel_HTML5Blizzard 

Chrome 11.0.686.1 dev
IE9RCBench_027_Chrome_Intel_HTML5Blizzard

Firefox 4.0 beta 12
IE9RCBench_026_FF4_Intel_HTML5Blizzard

Opera 11.50 labs
IE9RCBench_025_Opera_Intel_HTML5Blizzard


3. Benchmarks extérieurs à Microsoft

Nous avons vu des tests comparatifs effectués depuis un site maintenu par Microsoft. Même si l’on a vu d’autres navigateurs qu’IE9 très bien s’en sortir, il est légitime de se demander comment les mêmes navigateurs se comportent sur des sites non gérés par Microsoft.

Jeu HTML5 VII avec GPU nVidia

IE9RCBench_029_VIIGameScreen

Commençons avec le jeu HTML5 VII qui mélange de la gestion de physique et une sorte de jeu de plateforme. Regardons le FPS indiqué par le jeu avec le GPU nVidia :

IE9RCBench_029_viigame_nvidia

Navigateur

IE9 RC

Opera 11.50 labs

Chrome 11.0.686.1 dev

Firefox 4b12

FPS

50

2

30

45

Pour une raison obscure Opera 11.50 rend le jeu totalement injouable même avec le GPU nVidia avec un FPS ne dépassant pas les 3. IE9 RC finit 1er ici talonné par Firefox 4.0 beta 12 qui propose du coup tous les 2 une expérience de jeu agréable. Chrome est un peu limite sur les FPS pour rendre le jeu parfaitement jouable. Je vous propose de confirmer ces résultats avec la courbe de FPS et l’utilisation GPU fournies par GPU View.


Internet Explorer 9 RC
IE9RCBench_030_IE9_GpuView_nVidia_VIIGame
On observe un FPS oscillant entre 40 et 50 avec une bonne partie autour de 45 FPS.

Firefox 4.0 beta 12
IE9RCBench_031_FF4_GpuView_nVidia_VIIGame
On observe un FPS oscillant entre 33 et 48 avec une bonne partie du jeu vers 38 FPS.

Chrome 11.0.686.1 dev
IE9RCBench_032_Chrome_GpuView_nVidia_VIIGame
On observe ici un FPS oscillant entre 20 et 34 avec une bonne partie du test à 20 FPS.

Opera 11.50 labs
IE9RCBench_032_Opera_GpuView_nVidia_VIIGame
On observe ici un FPS oscillant entre 0 et 3. La courbe me rappelle mes cours de Physique du collège mais je ne sais pas quoi d’autre en conclure pour autant. Clignement d'œil


Jeu HTML5 VII avec GPU Intel

Continuons avec le même jeu mais cette fois-ci avec la puce Intel HD Graphics :

IE9RCBench_34_viigame_intel

Navigateur

IE9 RC

Opera 11.50 labs

Chrome 11.0.686.1 dev

Firefox 4b12

FPS

50

27

18

27

Opera 11.50 se comporte mieux en rendu software avec le GPU Intel qu’en mode hardware avec le GPU nVidia. Cela semble indiquer qu’il souffre d’un bug sur ce jeu avec l’accélération matérielle. IE9 RC finit à nouveau 1er et distance cette fois-ci plus nettement Firefox 4.0 beta 12. Il est à noter que le jeu est parfaitement jouable dans IE9 RC (même s'il ne tourne pas à a vitesse optimale de 60 FPS) et est assez pénible à jouer dans Firefox 4.0 beta 12 et Opera 11.50 labs. Pour Chrome, c’est presque injouable.

Tout comme l’ensemble des tests précédents, on observe donc à nouveau qu’IE9 exploite nettement mieux les capacités GPU du processeur Intel que ses petits camarades.

Hardware Acceleration Stress Test par Mozilla

IE9RCBench_033_MozillaHWTestScreen

Ce test est cité dans cet article : Firefox 4: hardware acceleration que j’ai lu il y a quelques temps. Vous pouvez le lancer ici : Hardware Acceleration Stress Test.

Voici les résultats avec les GPU nVidia et Intel :

IE9RCBench_36_mozillastresstest_nvidia IE9RCBench_36_mozillastresstest_intel

Navigateur

IE9 RC

Opera 11.50 labs

Chrome 11.0.686.1 dev

Firefox 4b12

FPS avec nVidia

301

60

60

64

FPS avec Intel

153

15

60

64

IE9 finit largement 1er dans les 2 cas en étant toujours 5 à 10 fois plus rapide. J’ai par contre des doutes sur la validité technique du test en question. Mais bon, on est 1er quand même ! Clignement d'œil

Note du 09/03/2011 : le test a été mis à jour par les équipes de Mozilla peu de temps après la publication de cet article (on se demande pourquoi ? Sourire). Il est désormais capé à 60 fps. Même s’il est logique de caper un framerate à 60 fps (puisque nos écrans sont quasiment tous limités à 60 Hz), cette mise à jour permet aussi malheureusement de cacher la différence de performance entre les navigateurs. Je n’ai malheureusement pas fait de captures d’écrans mais si vous allez lire les commentaires de cet article : Firefox 4: hardware acceleration vous verrez “qu’à l’époque” d’autres avaient également des résultats supérieurs à 60 fps sous IE9 RC comme celui-ci par exemple:

IE9RCBench_45_mozillaupdate


The Man in Blue Animation Benchmarking

IE9RCBench_040_ManInBlueSVGScreen

Jusqu’à présent, nous avons principalement regardé les performances des navigateurs sur la balise <canvas>. Dans l’article suivant : "HTML5" versus Flash: Animation Benchmarking, l’auteur a créé des benchmarks intéressants utilisant SVG, canvas ou Flash pour voir quelle technologie était la plus adaptée à ses besoins. Comme jusqu’à présent nous avons joué avec la balise canvas, j’ai décidé de prendre un benchmark testant SVG. Je suis donc parti de celui-ci : Animation Benchmark SVG with 1000 particles and shadows . Regardons le résultat :

IE9RCBench_41_svg1000particules_nvidia IE9RCBench_42_svg1000particules_intel

Navigateur

IE9 RC

Opera 11.50 labs

Chrome 11.0.686.1 dev

Firefox 4b12

FPS avec nVidia

35

9

42

2

FPS avec Intel

34

8

41

2

Sauf erreur de ma part, je n’ai pas l’impression que Firefox n’accélère aujourd’hui le rendu du SVG. Avec 1000 particules, son taux de rafraichissement descend en effet à moins de 2fps sur ma machine.

Chrome par contre passe 1er sur ce test ! J’avais d’abord testé avec 500 particules mais IE9 et Chrome était trop proches pour que j’arrive à voir qui gagnait ce match (tous les 2 autour de 75fps). En passant à 1000 particules, Chrome s’est détaché. IE9 reste par contre un excellent élève dans le domaine de l’accélération du SVG. C’est amusant de noter également que les scores sont quasiment identiques entre les 4 navigateurs que ce soit avec la puce Intel ou nVidia.

Par contre, il existe des benchmarks SVG comme celui-ci : SVG Helicopter où IE9 est clairement devant tout le monde, Chrome compris. Vous pourrez le tester par vous-même. Mais bon, ne faisons pas les mauvais perdants !


Asteroids HTML5 Canvas 2D Rendering and JavaScript Benchmark

IE9RCBench_041_AsteroidBenchScreen 

Voici un petit dernier benchmark avant de conclure : Asteroids HTML5 Canvas 2D Rendering and JavaScript Benchmark. Celui-ci est dérivé d’un moteur de jeu d’astéroïdes utilisant canvas et le moteur JavaScript du navigateur. Regardons les résultats avec, comme d’habitude, l’usage de mes 2 GPUs présents dans mon Vaio Z :

IE9RCBench_43_asteroidsbench_nvidia IE9RCBench_44_asteroidsbench_intel

Navigateur

IE9 RC

Opera 11.50 labs

Chrome 11.0.686.1 dev

Firefox 4b12

Score avec nVidia

2689

776

1932

631

Score avec Intel

2282

1463

1820

494

IE9 RC finit encore une fois 1er à un benchmark mettant à mal les différentes parties de l’implémentations de l’accélération matérielle que ce soit en s’appuyant sur le GPU nVidia ou Intel. La différence de performances entre Firefox 4.0 beta 12 et ses concurrents est vraiment très importante sur ce benchmark. C’est encore plus flagrant lorsque l’on voit les animations à l’écran. Par ailleurs, Opera 11.50 se comporte à nouveau étrangement. Son score est en effet nettement meilleur avec la puce Intel qu’avec la puce nVidia !

Par ailleurs, je vous rappelle au passage que grâce à son nouveau moteur JavaScript nommé Chakra, IE9 est désormais 1er au benchmark JavaScript SunSpider maintenu par les équipes WebKit (moteur de Chrome et Safari) comme le montre ce graphique :


Mais bon, les benchmarks JavaScript, c’est une toute autre histoire et il y aurait bien matière à en dire également… Mais ne boudons pas pour autant notre plaisir de voir IE9 1er à un test où longtemps Internet Explorer fut montré du doigt comme le vilain petit dernier !

4. Conclusion

Vous trouverez certainement pleins d’autres tests dans le même genre sur la toile. D’après ce que j’ai pu en voir, IE9 finit presque systématiquement 1er. IE9 est donc bien le navigateur actuellement le plus doué pour gérer l’accélération matérielle. A vous maintenant de le vérifier par vous-même !

Vous aurez aussi surement remarqué que les différentes implémentations de l’accélération matérielle des navigateurs ne se valent pas.

Avec IE9, il parait assez évident que nous menons la danse à ce sujet en devançant clairement la concurrence. Nous serons d’ailleurs sans aucun doute les 1ers à vous proposer l’accélération matérielle activée par défaut dans une version finale. Je pense aussi sincèrement que Microsoft n’est pas étranger à l’intérêt soudain de tous les éditeurs de navigateurs vers les performances de l’accélération matérielle. C’est un sujet clé pour les années qui arrivent. 

Opera semble sur une excellente voie et m’a particulièrement impressionné lors de mes tests. Je garderais donc un œil attentif sur celui-ci ! Clignement d'œil Reste à voir s’ils seront capables de proposer tout cela par défaut et de manière stable.

Mozilla avec Firefox 4.0 proposera l’accélération matérielle activée par défaut mais semble clairement plus à la traine en terme de performance et de choix de version de drivers. Il semblerait d’ailleurs que dans la roadmap qu’ils ont publié au sujet des futures versions de Firefox, l’accélération matérielle du canvas revienne dans le cahier des charges. Il leur reste en effet une très bonne marge de progression sur ce sujet et je suis content qu’ils le reconnaissent. Je ne sais pas par contre s’ils vont s’intéresser à l’avenir à l’accélération matérielle du SVG.

Pour finir, Google avec Chrome s’en sort souvent pas mal mais leur accélération matérielle semble pour l’instant trop instable pour vous la proposer par défaut, ce que j’ai d’ailleurs pu moi-même constater avec quelques plantages réguliers. Par contre, ils semblent excellents sur SVG!

Internet Explorer 9 accélère donc complètement par défaut tous les éléments du Web y compris la vidéo, le canvas ou du SVG. N’hésitez donc pas à le tester pour vérifier par vous-même le confort qu’il peut vous apporter. Que votre GPU soit une bête de course ou non, IE9 saura quoi en faire ! Clignement d'œil

David

Comments

  • Anonymous
    March 10, 2011
    Ce billet est très intéressant, complet et bien documenté. Petit détail : Opera 11.50 n'est pas une beta, mais une labs. Autrement dit, c'est une démo technologique de ce qui se passe chez Opera Software, mais elle reste largement inachevée ("this is not a stable build – it is an early preview of upcoming technologies in Opera"). De plus, cette démo utilise actuellement OpenGL (multi-plateforme) mais utilisera Direct3D à l'avenir pour Windows, ce qui devrait améliorer encore les performances pour Windows.

  • Anonymous
    March 10, 2011
    Bonjour, Merci pour la précision sur Opera 11.50. C'est donc plutôt une alpha alors. En tout cas, déjà très impressionante! David

  • Anonymous
    March 15, 2011
    J'en conclu que la version final d'opéra sera au moins aussi performante que IE9, et puisqu'il respecte beaucoup plus tout les autres standard, le bon choix serait d'attendre Opéra 11.50 ou 12

  • Anonymous
    March 18, 2011
    The comment has been removed

  • Anonymous
    March 21, 2011
    Salut Anthony, Oui je connais bien ces 2 articles qui essaient d'expliquer pourquoi aujourd'hui les performances de Firefox sont inférieures. Ils ont effectivement réussi à trouver un scénario où ils ont optimisé un chemin particulier avec leur démo qui créée 10 000 box-shadow. C'est une opération particulièrement couteuse en GPU et peut-être qui ont donc mis en place un cache pour gérer ce scénario. Cela serait malin bien que le rendu serait potentiellement inférieur en qualité ou consommant plus de mémoire. Très bien. Mais pour tous les autres scénarios? En effet, je ne me contente pas de citer des benchmarks MS mais aussi des benchmarks non MS. D'ailleurs, c'est amusant qu'ils aient fini par capter leur propre benchmark à 60 fps. Je suis étonné de cette forme de justification qui essaient de démonter les tests pour justifier pourquoi l'architecture de Firefox aujourd'hui gère mal certains chemins qui devront être optimisés à l'avenir. Il serait plus sain de reconnaitre qu'il y ait des axes d'amélioration sur lesquels ils vont se pencher dans Firefox 5 comme tu le dis. On peut ensuite passer des heures à démonter chacun des benchmarks et les mettre en perspective à chacune des architectures des navigateurs. L'exercice peut-être intéressant pour les développeurs web qui comprendront mieux les limites de chacun des navigateurs pour créer du code optimisé. Mais franchement, je préfèrais voir les ingénieurs de Mozilla bosser sur ce sujet de leur côté et nous mettre sereinement la pression ensuite. De notre côté, ce que nous essayons de dire, c'est que nous avons eu une approche manifestement plus globale de l'accélération matérielle et que cela semble se vérifier dans les différents benchmarks. Ensuite, les 2 navigateurs ont clairement chacun leurs forces et leurs faiblesses. Avec Firefox 4, Mozilla a manifestement plus mis l'accent sur WebGL, CSS3 Transitions et Audio APIs. Très bien. Nous, nous avons fait des choix différents dans notre liste de courses dans les technos HTML5/CSS3 et on a plus travaillé sur les performances de notre moteur de rendu. Ce sera ensuite à l'utilisateur final de choisir ce qui l'intéresse le plus. @Nicolas, je n'en conclus pas la même chose que toi, mais libre à chacun de faire ses propres conclusions! ;-) Bye, David

  • Anonymous
    March 21, 2011
    @Anthony: je vois que tu travailles avec Paul. Je ne le savais pas, désolé. Passes lui le bonjour au passage! :)

  • Anonymous
    April 18, 2011
    Bonjour qu en ai t il d openGL & de webgl, mocrosoft va t il nous permetre de revoir un standard abandonné a tort et donc, auront nous désormais le X3D/BRML2 Dans IE9 ? MErci de al reponse !!

  • Anonymous
    April 28, 2011
    Bonjour Marco, WebGL n'est finalement qu'un wrapper sur OpenGL ES 2.0 dans le navigateur et est géré par le groupe Kronos. Ce "standard" n'est donc en rien rattaché au travail effectué par les groupes du W3C. Notre ambition étant de travailler sur l'implémentation et le développement des spécificiations émises par le W3C, nous n'avons pas pour l'instant de plan autour de WebGL. S'il venait un jour à naître un vrai standard géré par le W3C (et donc potentiellement indépendant d'OpenGL) sur la manière de rendre de la 3D dans la navigateur, j'imagine que notre position pourrait changer. Mais ce n'est qu'un avis personnel. Bye, David