SlideShare uma empresa Scribd logo
1 de 9
Baixar para ler offline
benchmarks et comparaison de
performance en JavaScript


Julien Wajsberg
Twitter : @jwajsberg
http://everlong.org/blog/

présentation au groupe webperf Paris – 24 avril 2011
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
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
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
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
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
on fait un test ?
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 »
Merci

Mais conteúdo relacionado

Mais procurados

Tester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techTester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techMarine Karam
 
Les aventuriers des tests exploratoires : à la poursuite du bug perdu V. Théa...
Les aventuriers des tests exploratoires : à la poursuite du bug perdu V. Théa...Les aventuriers des tests exploratoires : à la poursuite du bug perdu V. Théa...
Les aventuriers des tests exploratoires : à la poursuite du bug perdu V. Théa...EspritAgile
 
Une boîte à outils pour les tests sous Java 8
Une boîte à outils pour les tests sous Java 8Une boîte à outils pour les tests sous Java 8
Une boîte à outils pour les tests sous Java 8aro_tech
 
SYnopsis Open Studio
SYnopsis Open StudioSYnopsis Open Studio
SYnopsis Open StudioGilles Auvray
 
Outils et pratiques : tester une application web moderne
Outils et pratiques : tester une application web moderneOutils et pratiques : tester une application web moderne
Outils et pratiques : tester une application web modernehalleck45
 
Interface-it
Interface-itInterface-it
Interface-itaro_tech
 
ça marchait pourtant en dev
ça marchait pourtant en devça marchait pourtant en dev
ça marchait pourtant en devOlivier Doucet
 
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet AgileLes cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet AgileDenis Voituron
 

Mais procurados (9)

Tester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue techTester c'est douter - Linkvalue tech
Tester c'est douter - Linkvalue tech
 
Les aventuriers des tests exploratoires : à la poursuite du bug perdu V. Théa...
Les aventuriers des tests exploratoires : à la poursuite du bug perdu V. Théa...Les aventuriers des tests exploratoires : à la poursuite du bug perdu V. Théa...
Les aventuriers des tests exploratoires : à la poursuite du bug perdu V. Théa...
 
Une boîte à outils pour les tests sous Java 8
Une boîte à outils pour les tests sous Java 8Une boîte à outils pour les tests sous Java 8
Une boîte à outils pour les tests sous Java 8
 
Flex Unit Testing
Flex Unit TestingFlex Unit Testing
Flex Unit Testing
 
SYnopsis Open Studio
SYnopsis Open StudioSYnopsis Open Studio
SYnopsis Open Studio
 
Outils et pratiques : tester une application web moderne
Outils et pratiques : tester une application web moderneOutils et pratiques : tester une application web moderne
Outils et pratiques : tester une application web moderne
 
Interface-it
Interface-itInterface-it
Interface-it
 
ça marchait pourtant en dev
ça marchait pourtant en devça marchait pourtant en dev
ça marchait pourtant en dev
 
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet AgileLes cinq bonnes pratiques des Tests Unitaires dans un projet Agile
Les cinq bonnes pratiques des Tests Unitaires dans un projet Agile
 

Destaque

La mesure de performance au coeur de votre stratégie Web
La mesure de performance au coeur de votre stratégie WebLa mesure de performance au coeur de votre stratégie Web
La mesure de performance au coeur de votre stratégie WebAdviso Stratégie Internet
 
Performance measurement system design
Performance measurement system designPerformance measurement system design
Performance measurement system designFernanda Araujo
 
Benchmarking
BenchmarkingBenchmarking
Benchmarkingslayerxor
 
JCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and Ignite
JCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and IgniteJCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and Ignite
JCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and IgniteJoseph Kuo
 
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture WebCours 2/3 - Architecture Web
Cours 2/3 - Architecture WebAdyax
 
Cours 3/3 - Architecture Web
Cours 3/3 - Architecture WebCours 3/3 - Architecture Web
Cours 3/3 - Architecture WebAdyax
 

Destaque (6)

La mesure de performance au coeur de votre stratégie Web
La mesure de performance au coeur de votre stratégie WebLa mesure de performance au coeur de votre stratégie Web
La mesure de performance au coeur de votre stratégie Web
 
Performance measurement system design
Performance measurement system designPerformance measurement system design
Performance measurement system design
 
Benchmarking
BenchmarkingBenchmarking
Benchmarking
 
JCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and Ignite
JCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and IgniteJCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and Ignite
JCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and Ignite
 
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture WebCours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
 
Cours 3/3 - Architecture Web
Cours 3/3 - Architecture WebCours 3/3 - Architecture Web
Cours 3/3 - Architecture Web
 

Semelhante a Benchmark et comparaison de performance en JavaScript

Tests de performances d'une application Java EE
Tests de performances d'une application Java EETests de performances d'une application Java EE
Tests de performances d'une application Java EEAntonio Gomes Rodrigues
 
Présentation TDD UQAM
Présentation TDD UQAMPrésentation TDD UQAM
Présentation TDD UQAMNicholas Lemay
 
Les Aventures d'Alice - la Révolte des Tests
Les Aventures d'Alice - la Révolte des TestsLes Aventures d'Alice - la Révolte des Tests
Les Aventures d'Alice - la Révolte des TestsLy-Jia Goldstein
 
Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010JUG Lausanne
 
Les tests utilisateurs pour les petits budgets
Les tests utilisateurs pour les petits budgetsLes tests utilisateurs pour les petits budgets
Les tests utilisateurs pour les petits budgetsL_Demontiers
 
La relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesLa relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesEric SIBER
 
Automatisation des tests - objectifs et concepts - partie 1
Automatisation des tests  - objectifs et concepts - partie 1Automatisation des tests  - objectifs et concepts - partie 1
Automatisation des tests - objectifs et concepts - partie 1Christophe Rochefolle
 
Agile Tour Paris 2014 : Travailler Avec L'Existant, Sam Cranford
Agile Tour Paris 2014 : Travailler Avec L'Existant, Sam CranfordAgile Tour Paris 2014 : Travailler Avec L'Existant, Sam Cranford
Agile Tour Paris 2014 : Travailler Avec L'Existant, Sam CranfordENSIBS
 
Travailler avec l'existant : ou comment s'en débarrasser - Agile Tour Paris ...
Travailler avec l'existant : ou comment s'en débarrasser -  Agile Tour Paris ...Travailler avec l'existant : ou comment s'en débarrasser -  Agile Tour Paris ...
Travailler avec l'existant : ou comment s'en débarrasser - Agile Tour Paris ...nostradamnit
 
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)French Scrum User Group
 
ENIB 2013-2014 - CAI Web #3: J’ai besoin d’une appli web rapidement
ENIB 2013-2014 - CAI Web #3: J’ai besoin d’une appli web rapidementENIB 2013-2014 - CAI Web #3: J’ai besoin d’une appli web rapidement
ENIB 2013-2014 - CAI Web #3: J’ai besoin d’une appli web rapidementHoracio Gonzalez
 
Tdd en action - découverte
Tdd en action - découverteTdd en action - découverte
Tdd en action - découverteEric Mignot
 
Performance ug#1
Performance ug#1Performance ug#1
Performance ug#1Marc Bojoly
 
Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Enib   cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !Enib   cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !Horacio Gonzalez
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Normandy JUG
 
Accélération des pages Web : les bases en exemple
Accélération des pages Web : les bases en exempleAccélération des pages Web : les bases en exemple
Accélération des pages Web : les bases en exempleJean-Pierre Vincent
 
Cocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitairesCocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitairesCocoaHeads France
 
Pas d'agilité sans qualité
Pas d'agilité sans qualitéPas d'agilité sans qualité
Pas d'agilité sans qualitéAgile Montréal
 

Semelhante a Benchmark et comparaison de performance en JavaScript (20)

Tests de performances d'une application Java EE
Tests de performances d'une application Java EETests de performances d'une application Java EE
Tests de performances d'une application Java EE
 
Présentation TDD UQAM
Présentation TDD UQAMPrésentation TDD UQAM
Présentation TDD UQAM
 
Les Aventures d'Alice - la Révolte des Tests
Les Aventures d'Alice - la Révolte des TestsLes Aventures d'Alice - la Révolte des Tests
Les Aventures d'Alice - la Révolte des Tests
 
Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010
 
Les tests utilisateurs pour les petits budgets
Les tests utilisateurs pour les petits budgetsLes tests utilisateurs pour les petits budgets
Les tests utilisateurs pour les petits budgets
 
La relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesLa relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiques
 
Les tests de securite devops
Les tests de securite devopsLes tests de securite devops
Les tests de securite devops
 
Automatisation des tests - objectifs et concepts - partie 1
Automatisation des tests  - objectifs et concepts - partie 1Automatisation des tests  - objectifs et concepts - partie 1
Automatisation des tests - objectifs et concepts - partie 1
 
Agile Methodologies
Agile MethodologiesAgile Methodologies
Agile Methodologies
 
Agile Tour Paris 2014 : Travailler Avec L'Existant, Sam Cranford
Agile Tour Paris 2014 : Travailler Avec L'Existant, Sam CranfordAgile Tour Paris 2014 : Travailler Avec L'Existant, Sam Cranford
Agile Tour Paris 2014 : Travailler Avec L'Existant, Sam Cranford
 
Travailler avec l'existant : ou comment s'en débarrasser - Agile Tour Paris ...
Travailler avec l'existant : ou comment s'en débarrasser -  Agile Tour Paris ...Travailler avec l'existant : ou comment s'en débarrasser -  Agile Tour Paris ...
Travailler avec l'existant : ou comment s'en débarrasser - Agile Tour Paris ...
 
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
 
ENIB 2013-2014 - CAI Web #3: J’ai besoin d’une appli web rapidement
ENIB 2013-2014 - CAI Web #3: J’ai besoin d’une appli web rapidementENIB 2013-2014 - CAI Web #3: J’ai besoin d’une appli web rapidement
ENIB 2013-2014 - CAI Web #3: J’ai besoin d’une appli web rapidement
 
Tdd en action - découverte
Tdd en action - découverteTdd en action - découverte
Tdd en action - découverte
 
Performance ug#1
Performance ug#1Performance ug#1
Performance ug#1
 
Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Enib   cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !Enib   cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
 
Accélération des pages Web : les bases en exemple
Accélération des pages Web : les bases en exempleAccélération des pages Web : les bases en exemple
Accélération des pages Web : les bases en exemple
 
Cocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitairesCocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitaires
 
Pas d'agilité sans qualité
Pas d'agilité sans qualitéPas d'agilité sans qualité
Pas d'agilité sans qualité
 

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
  • 7. on fait un test ?
  • 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 »