Mesures, métriques et bancs d'essai (Benchmarks)

Document en construction...

Quelques raccourcis :

Pour un texte portant plus précisément sur la question de la mesure du temps d'exécution d'un programme, voir ../AuSecours/Mesurer-le-temps.html

Si vous êtes intéressé(e) par la mesure, vous l'êtes peut-être aussi par l'optimisation : ../../Liens/Optimisation--Liens.html

Généralités

Mesurer l'exécution des algorithmes génériques (par Dave Musser, rien de moins) : http://www.cs.rpi.edu/~musser/gp/timing.html

À propos de la difficulté d'évaluer les « performances » de disque SSD, texte de 2010 par Marc Bevand : http://blog.zorinaq.com/many-ssd-benchmark-reviews-contain-flaws/

Mesurer le temps requis pour le calcul d'une racine carrée : http://assemblyrequired.crashworks.org/2009/10/16/timing-square-root/

Comment mesurer la rapidité d'exécution dans les jeux, maintenant que nous utilisons à la fois les unités graphiques parallèles (GPU) et les unités centrales de traitement (CPU)? Texte de Scott Wasson en 2011 : http://techreport.com/articles.x/21516

Utiliser Box2D, le moteur de physique derrière Angry Birds, en tant que métrique de performance, un texte de Joel Webber en 2011 : http://blog.j15r.com/2011/12/for-those-unfamiliar-with-it-box2d-is.html

Textes d'Andrew Koenig en 2013 :

En 2014, Nicholas Nethercote publie (à titre personnel) un manifeste pour les tests de « performances » (Benchmarks) des fureteurs : https://blog.mozilla.org/nnethercote/2014/06/16/a-browser-benchmarking-manifesto/

Mesurer correctement l'utilisation du processeur sous Linux, texte de 2014 : http://blog.monitorscout.com/2014/06/26/accurate-cpu-usage-measurement-on-linux/

Mesurer la vitesse du calcul d'une racine carrée, implémentée de plusieurs manières et sur plusieurs architectures, par Elan Ruskin en 2009 :

En 2014, Rico Marinoni propose une approche pour mesurer les variations de vitesse d'exécution avec l'évolution du code : http://blogs.msdn.com/b/ricom/archive/2014/12/13/a-systematic-approach-to-finding-performance-regressions-using-overweight-analysis.aspx

Comment utiliser l'instruction RTDSC pour compter les cycles d'instruction dans un ordinateur, et les limites de cette démarche, texte de Jonas Wagner en 2015 : http://blog.purpureus.net/technology/2015/01/26/counting-cpu-cycles.html

En 2015, Bruce Dawson présente une approche de suivi de l'utilisation du tas : https://randomascii.wordpress.com/2015/04/27/etw-heap-tracingevery-allocation-recorded/

Dans ce texte de 2015, Paul Watt explique ses difficultés à bien mesurer les raisons de l'inefficacité dans une implémentation en apparence très optimisée : http://codeofthedamned.com/index.php/alchemy-benchmarks

Texte de Julia Evans en 2016, proposant des techniques pour raffiner les pratiques de mesure du temps d'exécution des programmes : http://jvns.ca/blog/2016/07/23/rigorous-benchmarking-in-reasonable-time/

Éditorial de Frances Buontempo en 2016, portant sur la question de la mesure : https://accu.org/index.php/journals/2247

Selon les langages

Étude quantitative comparative de langages de programmation, qui met en relief les liens entre expressivité et « performance » : http://gmarceau.qc.ca/blog/2009/05/speed-size-and-dependability-of.html

À propos des subtilités dans la saisie de métriques avec les langages de programmation contemporains, par Matt Waren en 2014 : http://mattwarren.org/2014/09/19/the-art-of-benchmarking/

Bien mesurer l'exécution d'un programme .NET :

Mesurer adéquatement la vitesse d'exécution de programmes C#, série de textes d'Eric Lippert en 2013 :

Avec C++ :

Avec Erlang :

Mesurer la vitesse d'exécution avec Go :

Avec Java :

Avec JavaScript :

Analyser les sources de programmes Perl : http://ulissesaraujo.wordpress.com/2011/02/06/lines-of-code-and-related-lines-oriented-statistics-with-perl/

Mesurer la vitesse d'exécution de programmes PHP : http://php.webtutor.pl/index.php/2011/04/04/hiphop-for-php-benchmark-revenge-of-php/

Mesurer la vitesse d'exécution des programmes Scala sur la base de l'utilisation de collections, par Li Haoyi en 2016 : http://www.lihaoyi.com/post/BenchmarkingScalaCollections.html

Outils

Divers outils pour réaliser des bancs d'essai.

Utiliser Xperf pour mesurer la consommation de temps sur le processeur :

Divers outils pour tirer des métriques sous Linux, colligés par Brendan Gregg : http://www.brendangregg.com/linuxperf.html

Outil en ligne pour mesurer la vitesse d'exécution d'un extrait de code : http://quick-bench.com/


Valid XHTML 1.0 Transitional

CSS Valide !