Dans cette présentation, on va d'abord dire quand il faut optimiser ou utiliser cet outil, puis on verra comment analyser les résultats obtenus.
Présentation au groupe WebPerf Paris le 24 avril 2012.
Benchmark et comparaison de performance en JavaScript
1. benchmarks et comparaison de
performance en JavaScript
Julien Wajsberg
Twitter : @jwajsberg
http://everlong.org/blog/
présentation au groupe webperf Paris – 24 avril 2011
2. Performance JavaScript
● Le chargement de la page s'est bien passé
● S'assurer que l'expérience utilisateur est au top
● Éviter des grosses bouzes comme le site
Twitter
● Attention aux priorités :
● Ne doit pas passer avant la sécurité
● Jsperf est un outil
3. pourquoi benchmarker ?
● deux solutions pour un même problème
● utiliser une bibliothèque
● l'utiliser ou non
● connaître son impact
● en choisir une
4. pourquoi ne pas benchmarker ?
● les micro-optimisations ne servent souvent à rien
● il vaut mieux optimiser les algorithmes utilisés que de
micro-optimiser certaines lignes
● les performances des navigateurs
● sont différentes en fonction des moteurs
● changent avec le temps
● les différences sont souvent trop ténues pour
signifier quelque chose
5. alors, quand benchmarker ?
● tester deux algorithmes différents
● un bon exemple : http://jsperf.com/map-vs-array
● (sauf que le code est faux)
● quand on teste des algos, il faut tester tous les cas : le cas
meilleur, le cas pire, le cas moyen
● par curiosité
● vérifier certaines « vérités » qu'on nous donne
● quand on a du « code chaud » exécuté très souvent,
dans des boucles
6. comment se compose un test ?
● d'abord, bien savoir ce qu'on veut tester
● comme toute bonne histoire : un début, une aventure,
une fin
● le début : c'est le « setUp » exécuté avant chaque test
● initialise un certain contexte
● puis le test proprement dit
● puis le « tearDown » exécuté après chaque test
● « nettoie » l'environnement
8. analyser les résultats
● on ne peut pas comparer les résultats entre
navigateurs (et même entre deux versions)
● les seuls résultats comparables, c'est entre les
tests d'un même « run »
● seules les grosses différences ont du sens
● un facteur 10
● un facteur 2 ou 3 si c'est vraiment du « hot spot »