Silverlight sur un PC d'ancienne génération... Disons de quelques générations en arrière

Hier j'ai passé la journée chez un client, et il était - entre autres - question de Silverlight. Un des contacts chez ce client me faisait remarquer que leur parc informatique était assez hétérogène et composé dans certains de machines assez anciennes, avec des capacités de traitement et mémoire limitées par rapport aux "standards" actuels.

Le contact me disait que sur son propre laptop - un DELL D610 pas trop ancien pourtant - Silverlight dès le lancement d'une application consommait 100% de CPU et rendait toute la machine inutilisable.

Ni une, ni deux, comme j'aime bien savoir ce dont je parle, ce matin je ressors un antique DELL Optiplex GX1 à base de Pentium III 500 MHz de sous un bureau, et je lui installe un XP SP2 tout propre. La machine n'a que 128 Mo de mémoire...

Pendant un moment, je me dis que j'ai peut être vraiment choisi une config trop petite et que je ne verrais tout simplement rien de probant. Sur la caisse du PC, il y a un splendide autocollant "Designed for Windows 98"... J'ai très peur ;)

Et bien non ! A peine le système installé, me voilà sur http://www.silverlight.net pour installer dans un premier temps Silverlight 1.0 sur la machine.

Petite visite dans la gallerie, et surprise, ça tourne étonnement bien. Une partie de casse-briques (Sparkle Ball) programmé en Javascript (Silverlight 1.0 oblige), ça se passe sans soucis majeur, juste quelques ralentissements de temps à autres. A noter : je jeu est hosté chez Dr. Dobb's. Il comporte une bannière de pub en flash en haut de la page. Difficile de dire donc si l'un ou l'autre de Flash ou de Silverlight est responsable des ralentissements, et dans quelle proportion. Mais ça reste vivable et utilisable.

Test d'un player vidéo en Silverlight 1.0, et là, clairement, on monte à 100% de CPU et la machine ne répond presque plus. Je teste avec un player comportant en plus des overlays et des zones de clipping et là, on atteint les limites.

Je termine par installer Silverlight 1.1 pour regarder comment se comportent d'autres applications, en particulier le jeu d'échecs dans lequel on peut faire jouer l'ordinateur contre lui-même, l'une des deux intelligences écrites en Javascript, l'autre en C# s'exécutant dans le CLR de Silverlight 1.1.

Surprise...

Surprise puisqu'en effet, alors que je pensais que "l'intelligence" de ce jeu allait consommer toute la CPU de la machine, ça n'est pas le cas. En faisant jouer l'ordinateur contre lui-même, Javascript contre C#, on observe toujours les ratios de 1 à 1000 ou plus, comme sur une machine récente, mais le reste de la machine est disponible et continue relativement bien à répondre.

Mes conclusions partielles et complètement empiriques : le décodage d'une vidéo est très couteux. Ca se ressent dans une application ou dans une scène Silverlight qui y fait appel.

Je me suis demandé comment se comporterait Flash sur une telle machine pour décoder de la vidéo, et là, un simple petit test sur Youtube et Dailymotion m'ont rapidement montré qu'il en allait de même.

Du point de vue de l'utilisateur que je suis, et en dehors de toute mesure de performance dans une démarche pseudo-scientifique, je dirais que l'impression générale est que Silverlight n'est ni plus ni moins exigeant en ressources que Flash sur ce type de machine d'un autre temps, pour ce qui est du décodage de la vidéo.

A côté de ça, j'ai trouvé que sur cette machine, qui est je le rappelle un Pentium III 500 MHz avec 128 Mo de mémoire, les applications Silverlight qui n'utilisent pas de vidéo se comportent et répondent très bien. Le Taskmgr montre en effet qu'une application Silvelright qui ne fait rien de compliqué, sans trop de surprise, ne charge pas la machine ni en CPU, ni en consommation mémoire, tant que la scène n'est pas trop compliquée.

Ah, je suis assez content d'avoir fait ce test...

Et vous, comment ça se comporte sur vos machines ? Vous utilisez aussi des machines qui devraient être en retraite depuis quelques années ? Quelqu'un parmi vous a un Mac à base de PPC pour me dire comment ça se passe dessus ?