Des publicités gourmandes (en ressources)
Par Simon Vart le samedi 20 octobre 2007, 19:34 - Informatique - Lien permanent
Constatant que ma souris répond avec du retard, le curseur se déplaçant par bonds au lieu de suivre sa trajectoire, et que je ne parviens plus à cliquer sur les onglets de mon navigateur, alors que par ailleurs le système réagit normalement, je fais ce qu'on fait généralement dans ces cas-là : j'ouvre le gestionnaire de tâches et je jette un oeil sur l'onglet des ressouces utilisées.
Comme on le voit sur cette capture d'écran, le processeur est saturé à plus de 50% en moyenne sur les les deux coeurs. Je ne faisais rien à ce moment précis pouvant justifier d'une telle consommation des ressouces processeurs. Il était surprenant d'avoir des telles courbes sur le taux d'utilisation du processeur, d'autant que je constate qu'il ne s'agit pas d'un simple pic de saturation, comme beaucoup de programmes en provoquent parfois, surtout à l'ouverture, mais d'une consommation continue.
Deuxième étape : identifier le ou les processeurs qui consomment autant de ressources. L'onglet Processus, qui liste les... processus actifs sur le système, m'apprend que l'application gourmande s'appelle Firefox. Le processus consomme 50% du temps processeur et mobilise 103,5 Mo de mémoire, ce qui est assez considérable.
J'utilise beaucoup et presque exclusivement Firefox comme navigateur Internet, et j'ai pour habitude d'ouvrir de nombreux onglets que je laisse ouverts - en attendant d'avoir le temps de les lire. Comme chaque page ouverte est placée en mémoire et que l'historique est gardé en cache pour la durée de la session, il n'était pas étonnant que le processus consume beaucoup de mémoire si l'on consulte de nombreuses pages. J'avais déjà remarqué auparavant que le processus Firefox atteignait fréquemment en mémoire la centaine de méga-octets, sans que cela n'occasionne de ralentissement du système - je savais donc que ce n'était pas la cause de mon problème.
En revanche, il n'était pas normal que Firefox consomme autant de ressources processeur. 50% de taux d'utilisation signifie que le processus fait appel au processeur à hauteur de la moitié de ses capacités en permanence (ou à la totalité de ses capacités la moitié du temps), ce qui étant donné la capacité de traitement d'un P4 Prescott, est assez considérable pour un simple navigateur. Une fois la page web chargée, le navigateur n'a plus besoin de faire appel au processeur pour calculer quoi que ce soit. Le taux habituel d'utilisation du processeur, en dehors des tâches complexes ou des pics générés par l'ouverture et la fermeture des programmes, oscille entre 0 et 4%.
La seule explication était donc qu'il se trouvait dans mon navigateur Firefox une page dont le contenu nécessitait une charge de calcul permanente. J'ai travaillé de façon fort simple : j'ai fermé un à un les onglets en surveillant le gestionnaire de ressources pour voir lequel allait libérer les ressouces processeur en disparaissant.

Comme vous le voyez sur la capture d'écran ci-dessus, en fermant certain onglet, on voit la courbe diminuer nettement. Une fois la page identifiée, je l'ai ouverte à nouveau pour confirmer si, en l'affichant, le processeur recommançait à saturer. Ce fut le cas. Restait à savoir pourquoi et j'avais ma petite idée.
Je ne fus guère surpris de trouver sur cette page une petite animation Flash. Cette animation était une publicité :

Le problème était que cette animation Flash, une publicité pour Century 21 dans le cas présent, utilise de nombreux calques textes utilisant des transparences. J'avais déjà remarqué la même chose avec certaines publicités récentes pour HP et pour Cisco, je crois --edit: il s'agissait de Nokia, en réalité, avec une publicité contenant plein de petits téléphones qui se déplacent et changent de taille, ce qui fait plein d'objets à gérer--. Mais il n'est pas ici affaire de marques, mais de technique. Les animations sont bouclées et se répètent indéfiniment, de sorte que le phénomène dure tant que l'on a pas fermé la page. Evidemment, il n'a pas d'option incluse à l'animation qui permette de la stopper.
Or, sur mon ordinateur, j'ai une petite carte graphique assez ordinaire et ancienne, dont le processeur ne doit pas inclure la gestion des transparences. Résultat, c'est le processeur principal (appelé le CPU, Central Process Unit, par opposition au GPU, Graphic Processing Unit) qui supporte la charge de calcul, d'où une certaine saturation de celui-ci. Le processeur saturant, certains processus (dans mon cas, l'affichage du pointeur de la souris) voient leur execution retardée.
On voit ici l'importance de la carte graphique dans la gestion de l'affichage, y compris en dehors des jeux 3D.
La solution serait d'utiliser une carte graphique plus puissante pour voir si le problème persiste. Mais je n'ai pas envie d'investir dans un composant plus puissant uniquement pour pouvoir afficher des publicités !
J'ai opté pour l'installation d'AdBlock Plus, extension de Firefox qui permet de bloquer automatiquement les publicités - y compris les publicités au format Flash. Du coup je n'ai plus de publicité sur mes pages et mon navigateur est invisible dans les statistiques de sites Web gérés par l'activation d'un compteur de visite basé sur Javascript - notamment Google. Jusqu'à présent, je ne voulais pas utiliser de "bloqueur de pub" trop complet, jugeant que cela n'était pas loyal envers les sites web dont le "modèle économique" est basé sur la publicité. Mais pas au prix des performances de ma machine, auquelles je suis très attaché. Si les animations étaient testés par les développeurs sur des machines typiques de 3 à 5 ans, ce genre de choses n'arriverait pas et je n'aurais pas bloqué les publicités sur ma machine. Mais ce genre de test n'aura pas lieu, pour des raisons de logique économique.
Voilà comment les régies publicitaires, en utilisant un format de publicité trop lourd et mal testé, au lieu de renforcer leur présence publicitaire avec des annonces alléchantes, perdent une partie de leur auditoire. Le mieux est l'ennemi du bien !

Commentaires
Tu me l’aurais demandé, je te l’aurais dit ! Et pourtant, tu sais que je n’y connais rien ! Ah, ha !
Je me souviens de ce type, cet espèce d’informaticien, Michel B., il y a une dizaine d’année, qui me disait : « Internet, ça ne bouffe aucune ressource ! »… Ah, ah ! Cette douce époque où les gifs animés faisaient péter les modems !
Personnellement, je me sers d’IE et Firefox. Pour peu que j’écoute la radio, où passe de la pub en Flash, que j’utilise un logiciel, la machine ne suit plus !
Mon choix est fait également, je coupe la pub au moins sur Firefox !
Merci pour le tuyau. :-)
Très bonne demonstration de la consommation excessive de ressources du format Flash !
Mais je ne suis pas sur qu'une meilleure carte graphique changerai quelquechose, pour la simple et bonne raison que le rendu Flash est calculé par le processeur du PC, et certainement pas par celui de la carte graphique. Meme avec Firefox minimisé, la consommation CPU reste la meme, bien que le rendu ne soit pas affiché. Le GPU est intensivement utilisé pour le rendu 3D dans une application faisant appel à OpenGL ou Direct3D. Pour la 2D et les autres applis de Windows, les performances de la CG jouent d'une maniere beaucoup moins significative (Quoi que cela est de moins en moins vrai, quand on sait que Windows Vista utilise un rendu en 3D accelerée pour son interface graphique)
Pour IE, on trouve www.IE7pro.com
Mais pour moi le pbl n'est pas réellement les pub (enfin, je susi contetn de ne plus les voir) mais toutes les anni flash sur mon centrino... avant il marchait bien, maintenant à cause de ces trucs, il sature sur internet !!!!!
Merci !
J'ai failli changé de browser, car à vrai dire je rencontrais tout le temps ce problème (puisque ma page d'ouverture contenait un cadre faisant appel à météo france qui contenait une animation flash) ...
Voilà que j'ai des lecteurs sur mon blog ! Quelle bonne surprise ce dimanche !
@Retrocomputing : c'est exact que la carte graphique ne change sur XP pas grand-chose à cette surcharge - mais la qualité de la carte si elle prend en charge certains calculs de transparence devrait tout de même soulager un peu le processeur. Je n'ai pas fait de tests sur le sujet.
j'observe exactement le même phénomène depuis très longtemps et le site de météo france est particulièrement catastrophique. Ils ont toujours des publicités demandant beaucoup de ressources.
Ce qui est étonnant c'est que ce phénomène n'apparait pas avec IE... ça fait bien chier...
je me suis lancé cet après-midi dans la recherche d'une solution différente d'AdBlock.
Et en refaisant un test avec IE sur le site de meteo.fr je me suis rendu compte que ça ramait aussi...
Du coup, j'ai vérifié la version de mon lecteur flash : 9.0.0.28. Or la dernière version est 9.0.0.115.
Du coup, je me suis lancé dans la mise à jour du plugin.
Et finalement, le site de meteo.fr reste toujours aussi gourmand en ressources... il faut croire que les développeurs des publicités sur le site de météo.fr sont loin d'être compétents...
Par contre, un nouveau phénomène bien pratique est apparu : quand on change d'onglet, la consommation CPU retombe alors qu'avant, que la page soit affichée ou pas, la consommation en CPU était permanente !!
Je vous conseille donc fortement de faire cette mise à jour !! ça améliorera grandement vos conditions de surf !!