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 !