SlideShare una empresa de Scribd logo
1 de 77
Descargar para leer sin conexión
@pingtimeout#FailAtBenchs
Comment rater ses
benchmarks ?
Pierre Laporte
Ingénieur performances - Datastax
@pingtimeout
pierre.laporte@datastax.com
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Agenda
• Intro
• Pourquoi cette session ?
• Comment se planter ?
• Que mesurer ?
• Comment mesurer ?
• « Coordinated Omission » ?
• Quel état d’esprit ?
@YourTwitterHandle@YourTwitterHandle@pingtimeout#FailAtBenchs
Intro
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Cassandra
• NoSQL
• Scalabilité linéaire
• Toujours disponible
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Datastax Enterprise (DSE)
• Plateforme complète
• Certifiée
• Sécurisée
• Search (Apache Solr)
• Analytics (Hadoop, Spark)
• Simplicité opérationnelle (OpsCenter)
@YourTwitterHandle@YourTwitterHandle@pingtimeout#FailAtBenchs
Pourquoi ce talk ?
@pingtimeout#FailAtBenchs
I have not failed,
I have just found 10,000 ways
that won't work.
- Thomas Edison
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Progresser
Faire des erreurs
Trouver des solutions
Ne pas blâmer
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Benchmarks
@YourTwitterHandle@YourTwitterHandle@pingtimeout#FailAtBenchs
Comment se planter ?
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Exemple
• Bench d’une API REST : POST /login
• 100.000 logins
• 1 utilisateur
• Temps de réponse de chaque login
• Mesure dès le premier résultat
• Une exécution (longue)
• Sur un portable de dev
• Moyenne des résultats
• Projection utilisation CPU <=> Capacité restante
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Un problème ?
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Caches
• « 100.000 logins d’un unique utilisateur »
• Caches CPU (L1, L2, L3, …)
• TLB
• Cache de Base de Données
• Cache Hibernate (query, L2, …)
• …
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Précision d'horloge
• « Temps de réponse de chaque login »
• login ~> 5ms
• System.currentTimeMillis() ~> 1ms
• ±1 <=> ±20%
• System.nanoTime() "provides nanosecond precision, but not
necessarily nanosecond resolution »
• Source: Javadoc
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Temps de chauffe
• « Mesure dès le premier résultat »
• Chargement des classes
• Profiling du code
• Optimisations (Inlining, compilation, élimination de locks, …)
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Confiance dans les résultats
• « Une exécution (longue) »
• Bruit de fond ?
• Compétition ?
• Quelle confiance dans les mesures ?
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
• « Sur un portable de dev »
Environnement
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
• « Sur une seule machine »
Environnement
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Métriques
• « Moyenne des résultats »
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Projection de capacité
• Utilisation CPU ≈ 50%
• Capacité restante ≈ … ?
@YourTwitterHandle@YourTwitterHandle@pingtimeout#FailAtBenchs
Que mesurer ?
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Moyenne
• Supprimer les points gênants
• « Moyenne de deux nombres » = … ?
• Pourquoi l’utilise-t-on ?
• Est-ce suffisant ?
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Métriques utiles
• Histogramme
• Centiles
• 90ème
• 95ème
• 99ème
• …
• Maximum
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Combien de 9 ?
• 99% ?
• 99,99% ??
• Ça dépend.
• Pour 500 utilisateurs
• 99% signifie… ?
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Combien de 9 ?
• Si 1.000.000 utilisateurs
• 99% signifie… ?
• 10.000 utilisateurs.
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Comment font les autres ?
• 5.000.000 joueurs simultanés
• 12.000.000 par jour
• 67.000.000 par mois
• Quels centiles mesurer ?
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Maximum
• « Boarf, surement un timeout, on peut l’ignorer »
• Random dev devant un temps de réponse de 60s
• Acceptable ?
• Temps réel ?
• Jeux vidéo ?
• Appli mobile ?
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Genèse d’un benchmark
• Une question bien spécifique
• Des exigences précises
• Exemple
• Site de e-commerce
• « Avec mes 5 serveurs d’application, 20.000 articles en base,
et 1.000 clients simultanés, est-ce que la commande d’article
prend moins de 50ms en moyenne, 100ms une fois sur 10 et
300ms au pire ? »
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Environnement
• « Avec mes 5 serveurs d’application, 20.000 articles en base,
et 1.000 clients simultanés, est-ce que la commande d’article
prend moins de 50ms en moyenne, 100ms une fois sur 10 et
300ms au pire ? »
• POC:
• TomEE
• Glassfish
• Weblogic
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Charge
• « Avec mes 5 serveurs d’application, 20.000 articles en base, et
1.000 clients simultanés, est-ce que la commande d’article
prend moins de 50ms en moyenne, 100ms une fois sur 10 et
300ms au pire ? »
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Exigences
• « Avec mes 5 serveurs d’application, 20.000 articles en base, et
1.000 clients simultanés, est-ce que la commande d’article
prend moins de 50ms en moyenne, de 100ms une fois sur
10 et de 300ms au pire ? »
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Épilogue d’un benchmark
• Réponse obtenue
• Satisfaisante… ou pas.
• Résultats Contextuels
• Environnement
• Charge
• Contraintes
• Compromis
@YourTwitterHandle@YourTwitterHandle@pingtimeout#FailAtBenchs
Vérités statistiques
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
99ème centile en moyenne
• Application typique en 2012
• 100 « Web objects »/page
• ≈ 100 requêtes HTTP/page
• Probabilité d’éviter le 99ème centile ?
• 0.99n, sur n requêtes
• 0.99100 ≈ 36.6%
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
La loi Normale
• Le client dit :
• Moyenne = 100ms
• Écart type = 20ms
• Médiane = 120ms
• Maximum = 1s
• Quel est le 99% ?
@YourTwitterHandle@YourTwitterHandle@pingtimeout#FailAtBenchs
Aucune idée.
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Quartet d'Anscombe
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Loi Normale et latence
• Le temps de réponse ne suit pas une distribution Normale.
• Dropwizard metrics :
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Loi Normale et latence
• Remplacer metrics par HdrHistogram
• Plage de valeurs
• Précision
• Empreinte mémoire constante
• http://hdrhistogram.github.io/HdrHistogram/
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Représentation
@YourTwitterHandle@YourTwitterHandle@pingtimeout#FailAtBenchs
Puzzles
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Puzzler #1
• Un problème ?
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Puzzler #1 complet
@pingtimeout#FailAtBenchs
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Puzzler #1 - nouvel essai
• -XX:+AggressiveOpts
• Qui connaît ?
• Qu’est-ce que cela fait ?
@pingtimeout#FailAtBenchs
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Aggressive Opts ?
• Augmente le pool de Fixnum de 128 à … ?
• À vous de trouver
• Astuces
• set_aggressive_opts_flags() dans arguments.cpp
• java -XX:+PrintFlagsFinal
• C’est presque tout.
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Puzzler #2 - QCM
• Que fait ce code ?
1. Il pousse un juron
2. Il ne fait pas ce qu’on pense
3. Il bench Hotspot
4. Il crée environ 10.000 objets
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Puzzler #2 - QCM
1. Il pousse un juron
2. Il ne fait pas ce qu’on pense
3. Il bench Hotspot
4. Il crée environ 10.000 objets
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Puzzler #2 - solution
• Après ~10.000 itérations, le code est supprimé
@YourTwitterHandle@YourTwitterHandle@pingtimeout#FailAtBenchs
Coordinated Omission
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Java 8 Enterprisy REST API
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
CO client
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Runner
• Simuler de lonnnngues pause (11 secondes)
• GC
• autre tâche bloquante
• Technique: ^Z
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Récapitulatif - Timeline
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Récapitulatif avant run
• Fréquence = 1 req/s
• Durée totale = 100s
• Longue pause = 11s
• Temps de réponse nominal ≈ 10ms
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Attentes - Débit
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Attentes - Latence
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Attentes - centiles
• Calcul anticipé des centiles (en secondes)
• Max ∈ ]10; 11]
• 99% ∈ ]9; 10]
• 98% ∈ ]8; 9]
• 95% ∈ ]5; 6]
• 90% ∈ ]0; 1]
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Réalité
Wait… What?
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Réalité
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Pourquoi ?
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Réalité - Débit
100s
100ème requête
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Réalité - Latence
100s
100ème requête
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
CO - Définition
• Interval entre les points = i
• Latence nominale << i
• Valeurs extrêmes > x
• Requêtes suivantes retardées
• Après la période néfaste
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Qu’est-ce qui est mesuré ?
• 99% des bonnes requêtes
• ≠ 99% de toutes les requêtes
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Une erreur fréquente
I rarely see load testers that don't
suffer from it, including common
testers used in the industry (JMeter,
Grinder, HP LoadRunner), benchmarks
(YCSB, SPECeverything, etc.), and
custom build testers I see used by
many low latency shops. » — Gil Tene
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Tester le test
• Tester le testeur
• Remplacer le SUT par un noop
• Temps de réponse: 0
• Test ^Z
• Vérifier les hypothèses
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Correction
• Connaître le temps d’envoi de chaque requête
• Utiliser ce temps comme temps de départ
• Effet:
• Faire apparaître les requêtes retardées
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
• Connaître l’interval entre les envois
• Utiliser HdrHistogram
• Classe Histogram
• copyCorrectedForCoordinatedOmission(…)
• recordValueWithExpectedInterval(…)
@YourTwitterHandle@YourTwitterHandle@pingtimeout#FailAtBenchs
Récap
@pingtimeout#FailAtBenchs
The successful man will profit
from his mistakes and try
again in a different way
- Dale Carnegie
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Des résultats contextuels
http://tiny.cc/FailAtBenchs @pingtimeout#FailAtBenchs
Sources
• https://groups.google.com/d/msg/mechanical-sympathy/
• http://latencytipoftheday.blogspot.fr/
• http://www.websiteoptimization.com/speed/tweak/average-
number-web-objects/
• http://tylervigen.com/
• Hotspot source code
@YourTwitterHandle@YourTwitterHandle@pingtimeout#FailAtBenchs
Q & A
@YourTwitterHandle@YourTwitterHandle@pingtimeout#FailAtBenchs
Merci pour votre attention !

Más contenido relacionado

La actualidad más candente

Pas d'agilité sans qualité
Pas d'agilité sans qualitéPas d'agilité sans qualité
Pas d'agilité sans qualitéAgile Montréal
 
Ecrire de bonnes user stories - en 5 minutes - scrum wine v1.0
Ecrire de bonnes user stories - en 5 minutes -  scrum wine v1.0Ecrire de bonnes user stories - en 5 minutes -  scrum wine v1.0
Ecrire de bonnes user stories - en 5 minutes - scrum wine v1.0Olivier Patou
 
Mon Agilité est plus grosse que la tienne!
Mon Agilité est plus grosse que la tienne!Mon Agilité est plus grosse que la tienne!
Mon Agilité est plus grosse que la tienne!CGI Québec Formation
 
Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !Cédric Leblond
 
Mes outils électroniques Agile, tout un programme!
Mes outils électroniques Agile, tout un programme!Mes outils électroniques Agile, tout un programme!
Mes outils électroniques Agile, tout un programme!Cédric Leblond
 
Mise en place de bonnes pratiques (Scrum et php) au sein de projets existants
Mise en place de bonnes pratiques (Scrum et php) au sein de projets existantsMise en place de bonnes pratiques (Scrum et php) au sein de projets existants
Mise en place de bonnes pratiques (Scrum et php) au sein de projets existantsNicolas De Boose
 
ALM et Agilite : la convergence
ALM et Agilite : la convergenceALM et Agilite : la convergence
ALM et Agilite : la convergenceLucian Precup
 
Lean Kanban Une Inversion de Controle
Lean Kanban Une Inversion de ControleLean Kanban Une Inversion de Controle
Lean Kanban Une Inversion de ControleDimitri Baeli
 
Qu'est ce qu'un scrum master ?
Qu'est ce qu'un scrum master ?Qu'est ce qu'un scrum master ?
Qu'est ce qu'un scrum master ?Romain Couturier
 
Tableaux kanban pas à pas FR
Tableaux kanban pas à pas FRTableaux kanban pas à pas FR
Tableaux kanban pas à pas FRFranck Beulé
 
Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010Microsoft
 
Recherche lead technique désespérément
Recherche lead technique désespérémentRecherche lead technique désespérément
Recherche lead technique désespérémentAgile Montréal
 
Scrumday 2015 : La régression continue - une méthode pour bien faire rater l'...
Scrumday 2015 : La régression continue - une méthode pour bien faire rater l'...Scrumday 2015 : La régression continue - une méthode pour bien faire rater l'...
Scrumday 2015 : La régression continue - une méthode pour bien faire rater l'...French Scrum User Group
 
Mieux rediger-les-user-stories-bonnes-pratiques-oeildecoach 2019
Mieux rediger-les-user-stories-bonnes-pratiques-oeildecoach 2019Mieux rediger-les-user-stories-bonnes-pratiques-oeildecoach 2019
Mieux rediger-les-user-stories-bonnes-pratiques-oeildecoach 2019Oeil de Coach
 
Agilité, n’oublions pas les valeurs
Agilité, n’oublions pas les valeursAgilité, n’oublions pas les valeurs
Agilité, n’oublions pas les valeursIppon
 
No scrum no win atbx 2015 v1.0
No scrum no win   atbx 2015 v1.0No scrum no win   atbx 2015 v1.0
No scrum no win atbx 2015 v1.0Olivier Patou
 
Chouette! Encore un bug! Agile Tour 2012
Chouette! Encore un bug! Agile Tour 2012Chouette! Encore un bug! Agile Tour 2012
Chouette! Encore un bug! Agile Tour 2012AgileCoach.net
 

La actualidad más candente (20)

Pas d'agilité sans qualité
Pas d'agilité sans qualitéPas d'agilité sans qualité
Pas d'agilité sans qualité
 
Ecrire de bonnes user stories - en 5 minutes - scrum wine v1.0
Ecrire de bonnes user stories - en 5 minutes -  scrum wine v1.0Ecrire de bonnes user stories - en 5 minutes -  scrum wine v1.0
Ecrire de bonnes user stories - en 5 minutes - scrum wine v1.0
 
Mon Agilité est plus grosse que la tienne!
Mon Agilité est plus grosse que la tienne!Mon Agilité est plus grosse que la tienne!
Mon Agilité est plus grosse que la tienne!
 
Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !
 
Mes outils électroniques Agile, tout un programme!
Mes outils électroniques Agile, tout un programme!Mes outils électroniques Agile, tout un programme!
Mes outils électroniques Agile, tout un programme!
 
Mise en place de bonnes pratiques (Scrum et php) au sein de projets existants
Mise en place de bonnes pratiques (Scrum et php) au sein de projets existantsMise en place de bonnes pratiques (Scrum et php) au sein de projets existants
Mise en place de bonnes pratiques (Scrum et php) au sein de projets existants
 
ALM et Agilite : la convergence
ALM et Agilite : la convergenceALM et Agilite : la convergence
ALM et Agilite : la convergence
 
Lean Kanban Une Inversion de Controle
Lean Kanban Une Inversion de ControleLean Kanban Une Inversion de Controle
Lean Kanban Une Inversion de Controle
 
Qu'est ce qu'un scrum master ?
Qu'est ce qu'un scrum master ?Qu'est ce qu'un scrum master ?
Qu'est ce qu'un scrum master ?
 
Large Scale Scrum
Large Scale ScrumLarge Scale Scrum
Large Scale Scrum
 
Tableaux kanban pas à pas FR
Tableaux kanban pas à pas FRTableaux kanban pas à pas FR
Tableaux kanban pas à pas FR
 
Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010Les tests fonctionnels avec Visual Studio 2010
Les tests fonctionnels avec Visual Studio 2010
 
Recherche lead technique désespérément
Recherche lead technique désespérémentRecherche lead technique désespérément
Recherche lead technique désespérément
 
Scrumday 2015 : La régression continue - une méthode pour bien faire rater l'...
Scrumday 2015 : La régression continue - une méthode pour bien faire rater l'...Scrumday 2015 : La régression continue - une méthode pour bien faire rater l'...
Scrumday 2015 : La régression continue - une méthode pour bien faire rater l'...
 
Mieux rediger-les-user-stories-bonnes-pratiques-oeildecoach 2019
Mieux rediger-les-user-stories-bonnes-pratiques-oeildecoach 2019Mieux rediger-les-user-stories-bonnes-pratiques-oeildecoach 2019
Mieux rediger-les-user-stories-bonnes-pratiques-oeildecoach 2019
 
Méthodes agiles & Scrum
Méthodes agiles & ScrumMéthodes agiles & Scrum
Méthodes agiles & Scrum
 
Agilité, n’oublions pas les valeurs
Agilité, n’oublions pas les valeursAgilité, n’oublions pas les valeurs
Agilité, n’oublions pas les valeurs
 
No scrum no win atbx 2015 v1.0
No scrum no win   atbx 2015 v1.0No scrum no win   atbx 2015 v1.0
No scrum no win atbx 2015 v1.0
 
XebiCon'17 : Agile Smells - Julien Rossignol
XebiCon'17 : Agile Smells - Julien RossignolXebiCon'17 : Agile Smells - Julien Rossignol
XebiCon'17 : Agile Smells - Julien Rossignol
 
Chouette! Encore un bug! Agile Tour 2012
Chouette! Encore un bug! Agile Tour 2012Chouette! Encore un bug! Agile Tour 2012
Chouette! Encore un bug! Agile Tour 2012
 

Destacado

Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2Romain Linsolas
 
Annotation Processor, trésor caché de la JVM
Annotation Processor, trésor caché de la JVMAnnotation Processor, trésor caché de la JVM
Annotation Processor, trésor caché de la JVMRaphaël Brugier
 
Présentation DevoxxFR 2015 sur GWT
Présentation DevoxxFR 2015 sur GWTPrésentation DevoxxFR 2015 sur GWT
Présentation DevoxxFR 2015 sur GWTDNG Consulting
 
API Asynchrones en Java 8
API Asynchrones en Java 8API Asynchrones en Java 8
API Asynchrones en Java 8José Paumard
 
Les Streams sont parmi nous
Les Streams sont parmi nousLes Streams sont parmi nous
Les Streams sont parmi nousJosé Paumard
 
Mediat bibliothèques et droit de l'information [lecture seule] [mode de compa...
Mediat bibliothèques et droit de l'information [lecture seule] [mode de compa...Mediat bibliothèques et droit de l'information [lecture seule] [mode de compa...
Mediat bibliothèques et droit de l'information [lecture seule] [mode de compa...006148
 
Bibliotheque numérique et le web 2.0
Bibliotheque numérique et le web 2.0Bibliotheque numérique et le web 2.0
Bibliotheque numérique et le web 2.0Dujol Lionel
 
[DevoxxFr] Savoir faire le deuil de son code
[DevoxxFr] Savoir faire le deuil de son code[DevoxxFr] Savoir faire le deuil de son code
[DevoxxFr] Savoir faire le deuil de son codeElleneDijoux
 
HUB REPORT - L'indispensable à savoir sur la Data & le CRM
HUB REPORT - L'indispensable à savoir sur la Data & le CRM HUB REPORT - L'indispensable à savoir sur la Data & le CRM
HUB REPORT - L'indispensable à savoir sur la Data & le CRM HUB INSTITUTE
 
Conférence Groupe Dia-Mart 2016 • Et si la prochaine révolution retail était ...
Conférence Groupe Dia-Mart 2016 • Et si la prochaine révolution retail était ...Conférence Groupe Dia-Mart 2016 • Et si la prochaine révolution retail était ...
Conférence Groupe Dia-Mart 2016 • Et si la prochaine révolution retail était ...Groupe Dia-Mart
 
Shell脚本
Shell脚本Shell脚本
Shell脚本bj
 
Internet en classe de primaire
Internet en classe de primaireInternet en classe de primaire
Internet en classe de primaireCarmen Vera
 
Westhoffen plu diagnostic_mai 2012
Westhoffen plu diagnostic_mai 2012Westhoffen plu diagnostic_mai 2012
Westhoffen plu diagnostic_mai 2012Mairie de Westhoffen
 
Sistemas de Numeração e Conversão de Bases
Sistemas de Numeração e Conversão de BasesSistemas de Numeração e Conversão de Bases
Sistemas de Numeração e Conversão de BasesLeandro Costa
 
Was ist erfolgreiche Personalarbeit? Die relevanten KPIs für HR
Was ist erfolgreiche Personalarbeit? Die relevanten KPIs für HRWas ist erfolgreiche Personalarbeit? Die relevanten KPIs für HR
Was ist erfolgreiche Personalarbeit? Die relevanten KPIs für HRKai Deininger
 
PRINCE2 Grundlagen (Foundation Exam)
PRINCE2 Grundlagen (Foundation Exam)PRINCE2 Grundlagen (Foundation Exam)
PRINCE2 Grundlagen (Foundation Exam)Torsten Laser
 
Comprendre le vote des Français au 1er tour des élections Régionales 2015
Comprendre le vote des Français au 1er tour des élections Régionales 2015Comprendre le vote des Français au 1er tour des élections Régionales 2015
Comprendre le vote des Français au 1er tour des élections Régionales 2015Ipsos France
 
Migration de Tomcat vers Vert.x
Migration de Tomcat vers Vert.xMigration de Tomcat vers Vert.x
Migration de Tomcat vers Vert.xFlorianBoulay
 

Destacado (20)

Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
Devoxx France 2015 - Se préparer à l'arrivée d'Angular 2
 
Comment manager des geeks - Devoxx 2015
Comment manager des geeks - Devoxx 2015Comment manager des geeks - Devoxx 2015
Comment manager des geeks - Devoxx 2015
 
Annotation Processor, trésor caché de la JVM
Annotation Processor, trésor caché de la JVMAnnotation Processor, trésor caché de la JVM
Annotation Processor, trésor caché de la JVM
 
Git flow in action
Git flow in actionGit flow in action
Git flow in action
 
Présentation DevoxxFR 2015 sur GWT
Présentation DevoxxFR 2015 sur GWTPrésentation DevoxxFR 2015 sur GWT
Présentation DevoxxFR 2015 sur GWT
 
API Asynchrones en Java 8
API Asynchrones en Java 8API Asynchrones en Java 8
API Asynchrones en Java 8
 
Les Streams sont parmi nous
Les Streams sont parmi nousLes Streams sont parmi nous
Les Streams sont parmi nous
 
Mediat bibliothèques et droit de l'information [lecture seule] [mode de compa...
Mediat bibliothèques et droit de l'information [lecture seule] [mode de compa...Mediat bibliothèques et droit de l'information [lecture seule] [mode de compa...
Mediat bibliothèques et droit de l'information [lecture seule] [mode de compa...
 
Bibliotheque numérique et le web 2.0
Bibliotheque numérique et le web 2.0Bibliotheque numérique et le web 2.0
Bibliotheque numérique et le web 2.0
 
[DevoxxFr] Savoir faire le deuil de son code
[DevoxxFr] Savoir faire le deuil de son code[DevoxxFr] Savoir faire le deuil de son code
[DevoxxFr] Savoir faire le deuil de son code
 
HUB REPORT - L'indispensable à savoir sur la Data & le CRM
HUB REPORT - L'indispensable à savoir sur la Data & le CRM HUB REPORT - L'indispensable à savoir sur la Data & le CRM
HUB REPORT - L'indispensable à savoir sur la Data & le CRM
 
Conférence Groupe Dia-Mart 2016 • Et si la prochaine révolution retail était ...
Conférence Groupe Dia-Mart 2016 • Et si la prochaine révolution retail était ...Conférence Groupe Dia-Mart 2016 • Et si la prochaine révolution retail était ...
Conférence Groupe Dia-Mart 2016 • Et si la prochaine révolution retail était ...
 
Shell脚本
Shell脚本Shell脚本
Shell脚本
 
Internet en classe de primaire
Internet en classe de primaireInternet en classe de primaire
Internet en classe de primaire
 
Westhoffen plu diagnostic_mai 2012
Westhoffen plu diagnostic_mai 2012Westhoffen plu diagnostic_mai 2012
Westhoffen plu diagnostic_mai 2012
 
Sistemas de Numeração e Conversão de Bases
Sistemas de Numeração e Conversão de BasesSistemas de Numeração e Conversão de Bases
Sistemas de Numeração e Conversão de Bases
 
Was ist erfolgreiche Personalarbeit? Die relevanten KPIs für HR
Was ist erfolgreiche Personalarbeit? Die relevanten KPIs für HRWas ist erfolgreiche Personalarbeit? Die relevanten KPIs für HR
Was ist erfolgreiche Personalarbeit? Die relevanten KPIs für HR
 
PRINCE2 Grundlagen (Foundation Exam)
PRINCE2 Grundlagen (Foundation Exam)PRINCE2 Grundlagen (Foundation Exam)
PRINCE2 Grundlagen (Foundation Exam)
 
Comprendre le vote des Français au 1er tour des élections Régionales 2015
Comprendre le vote des Français au 1er tour des élections Régionales 2015Comprendre le vote des Français au 1er tour des élections Régionales 2015
Comprendre le vote des Français au 1er tour des élections Régionales 2015
 
Migration de Tomcat vers Vert.x
Migration de Tomcat vers Vert.xMigration de Tomcat vers Vert.x
Migration de Tomcat vers Vert.x
 

Similar a How to fail at benchmarking?

Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?Kenny Dits
 
Devoxx france 2015 livrer chaque jour ce qui est prêt
Devoxx france 2015   livrer chaque jour ce qui est prêtDevoxx france 2015   livrer chaque jour ce qui est prêt
Devoxx france 2015 livrer chaque jour ce qui est prêtbeastiefurets
 
Développer ou debugger ?
Développer ou debugger ? Développer ou debugger ?
Développer ou debugger ? Microsoft
 
Introduction à Google App Engine - WAQ 2011
Introduction à Google App Engine - WAQ 2011Introduction à Google App Engine - WAQ 2011
Introduction à Google App Engine - WAQ 2011jimmybourassa
 
Améliorez la vitesse de chargement de votre site - Webisland 2018
Améliorez la vitesse de chargement de votre site - Webisland 2018Améliorez la vitesse de chargement de votre site - Webisland 2018
Améliorez la vitesse de chargement de votre site - Webisland 2018Aymen Loukil
 
Softshake 2015 comment tester et optimiser la performance d'un si
Softshake 2015   comment tester et optimiser la performance d'un siSoftshake 2015   comment tester et optimiser la performance d'un si
Softshake 2015 comment tester et optimiser la performance d'un siMarc Bojoly
 
Cocoaheads Rennes #3 : Bien coder sur iOS
Cocoaheads Rennes #3 : Bien coder sur iOSCocoaheads Rennes #3 : Bien coder sur iOS
Cocoaheads Rennes #3 : Bien coder sur iOSCocoaHeadsRNS
 
TIAD : Choisir et construire son projet d’automatisation
TIAD : Choisir et construire son projet d’automatisationTIAD : Choisir et construire son projet d’automatisation
TIAD : Choisir et construire son projet d’automatisationThe Incredible Automation Day
 
Trucs et astuces sur le dévelopment Android
Trucs et astuces sur le dévelopment AndroidTrucs et astuces sur le dévelopment Android
Trucs et astuces sur le dévelopment AndroidThierry-Dimitri Roy
 
Développer une Single Page Application HTML 5 pour tous les devices
Développer une Single Page Application HTML 5 pour tous les devices Développer une Single Page Application HTML 5 pour tous les devices
Développer une Single Page Application HTML 5 pour tous les devices Microsoft
 
Core Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEO
Core Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEOCore Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEO
Core Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEOWeLoveSEO
 
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014Benoît de CHATEAUVIEUX
 
Technical seo tips and tricks actionnables 2018
Technical seo tips and tricks actionnables 2018Technical seo tips and tricks actionnables 2018
Technical seo tips and tricks actionnables 2018Aymen Loukil
 
Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020
Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020
Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020SEO CAMP
 
Analyse de logs SEO : pour qui, pour quoi, comment ?
Analyse de logs SEO : pour qui, pour quoi, comment ?Analyse de logs SEO : pour qui, pour quoi, comment ?
Analyse de logs SEO : pour qui, pour quoi, comment ?Julien Deneuville
 
Le monitoring de la performance front
Le monitoring de la performance frontLe monitoring de la performance front
Le monitoring de la performance frontJean-Pierre Vincent
 
Chtijug springbatch 2011
Chtijug springbatch 2011Chtijug springbatch 2011
Chtijug springbatch 2011Olivier BAZOUD
 
Par216 sogeti data_of_interest_yann_sese_ms_techdays
Par216 sogeti data_of_interest_yann_sese_ms_techdaysPar216 sogeti data_of_interest_yann_sese_ms_techdays
Par216 sogeti data_of_interest_yann_sese_ms_techdaysYann SESE
 

Similar a How to fail at benchmarking? (20)

Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?Monitoring applicatif : Pourquoi et comment ?
Monitoring applicatif : Pourquoi et comment ?
 
Devoxx france 2015 livrer chaque jour ce qui est prêt
Devoxx france 2015   livrer chaque jour ce qui est prêtDevoxx france 2015   livrer chaque jour ce qui est prêt
Devoxx france 2015 livrer chaque jour ce qui est prêt
 
Le prix de la pub
Le prix de la pubLe prix de la pub
Le prix de la pub
 
Développer ou debugger ?
Développer ou debugger ? Développer ou debugger ?
Développer ou debugger ?
 
Introduction à Google App Engine - WAQ 2011
Introduction à Google App Engine - WAQ 2011Introduction à Google App Engine - WAQ 2011
Introduction à Google App Engine - WAQ 2011
 
Améliorez la vitesse de chargement de votre site - Webisland 2018
Améliorez la vitesse de chargement de votre site - Webisland 2018Améliorez la vitesse de chargement de votre site - Webisland 2018
Améliorez la vitesse de chargement de votre site - Webisland 2018
 
Softshake 2015 comment tester et optimiser la performance d'un si
Softshake 2015   comment tester et optimiser la performance d'un siSoftshake 2015   comment tester et optimiser la performance d'un si
Softshake 2015 comment tester et optimiser la performance d'un si
 
Cocoaheads Rennes #3 : Bien coder sur iOS
Cocoaheads Rennes #3 : Bien coder sur iOSCocoaheads Rennes #3 : Bien coder sur iOS
Cocoaheads Rennes #3 : Bien coder sur iOS
 
TIAD : Choisir et construire son projet d’automatisation
TIAD : Choisir et construire son projet d’automatisationTIAD : Choisir et construire son projet d’automatisation
TIAD : Choisir et construire son projet d’automatisation
 
Php 100k
Php 100kPhp 100k
Php 100k
 
Trucs et astuces sur le dévelopment Android
Trucs et astuces sur le dévelopment AndroidTrucs et astuces sur le dévelopment Android
Trucs et astuces sur le dévelopment Android
 
Développer une Single Page Application HTML 5 pour tous les devices
Développer une Single Page Application HTML 5 pour tous les devices Développer une Single Page Application HTML 5 pour tous les devices
Développer une Single Page Application HTML 5 pour tous les devices
 
Core Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEO
Core Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEOCore Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEO
Core Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEO
 
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
 
Technical seo tips and tricks actionnables 2018
Technical seo tips and tricks actionnables 2018Technical seo tips and tricks actionnables 2018
Technical seo tips and tricks actionnables 2018
 
Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020
Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020
Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020
 
Analyse de logs SEO : pour qui, pour quoi, comment ?
Analyse de logs SEO : pour qui, pour quoi, comment ?Analyse de logs SEO : pour qui, pour quoi, comment ?
Analyse de logs SEO : pour qui, pour quoi, comment ?
 
Le monitoring de la performance front
Le monitoring de la performance frontLe monitoring de la performance front
Le monitoring de la performance front
 
Chtijug springbatch 2011
Chtijug springbatch 2011Chtijug springbatch 2011
Chtijug springbatch 2011
 
Par216 sogeti data_of_interest_yann_sese_ms_techdays
Par216 sogeti data_of_interest_yann_sese_ms_techdaysPar216 sogeti data_of_interest_yann_sese_ms_techdays
Par216 sogeti data_of_interest_yann_sese_ms_techdays
 

Más de Pierre Laporte

Leveraging chaos mesh in Astra Serverless testing
Leveraging chaos mesh in Astra Serverless testingLeveraging chaos mesh in Astra Serverless testing
Leveraging chaos mesh in Astra Serverless testingPierre Laporte
 
Les race conditions, nos très chères amies
Les race conditions, nos très chères amiesLes race conditions, nos très chères amies
Les race conditions, nos très chères amiesPierre Laporte
 
Devoxx BE - How to fail at benchmarking
Devoxx BE - How to fail at benchmarkingDevoxx BE - How to fail at benchmarking
Devoxx BE - How to fail at benchmarkingPierre Laporte
 
Lyon jug-how-to-fail-at-benchmarking
Lyon jug-how-to-fail-at-benchmarkingLyon jug-how-to-fail-at-benchmarking
Lyon jug-how-to-fail-at-benchmarkingPierre Laporte
 
La BDD, l'enfant gâté des SI
La BDD, l'enfant gâté des SILa BDD, l'enfant gâté des SI
La BDD, l'enfant gâté des SIPierre Laporte
 
Pimp my gc - Supersonic Scala
Pimp my gc - Supersonic ScalaPimp my gc - Supersonic Scala
Pimp my gc - Supersonic ScalaPierre Laporte
 
Building a lock profiler on the JVM
Building a lock profiler on the JVMBuilding a lock profiler on the JVM
Building a lock profiler on the JVMPierre Laporte
 

Más de Pierre Laporte (7)

Leveraging chaos mesh in Astra Serverless testing
Leveraging chaos mesh in Astra Serverless testingLeveraging chaos mesh in Astra Serverless testing
Leveraging chaos mesh in Astra Serverless testing
 
Les race conditions, nos très chères amies
Les race conditions, nos très chères amiesLes race conditions, nos très chères amies
Les race conditions, nos très chères amies
 
Devoxx BE - How to fail at benchmarking
Devoxx BE - How to fail at benchmarkingDevoxx BE - How to fail at benchmarking
Devoxx BE - How to fail at benchmarking
 
Lyon jug-how-to-fail-at-benchmarking
Lyon jug-how-to-fail-at-benchmarkingLyon jug-how-to-fail-at-benchmarking
Lyon jug-how-to-fail-at-benchmarking
 
La BDD, l'enfant gâté des SI
La BDD, l'enfant gâté des SILa BDD, l'enfant gâté des SI
La BDD, l'enfant gâté des SI
 
Pimp my gc - Supersonic Scala
Pimp my gc - Supersonic ScalaPimp my gc - Supersonic Scala
Pimp my gc - Supersonic Scala
 
Building a lock profiler on the JVM
Building a lock profiler on the JVMBuilding a lock profiler on the JVM
Building a lock profiler on the JVM
 

Último

comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestionyakinekaidouchi1
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de planchermansouriahlam
 
optimisation logistique MLT_231102_155827.pdf
optimisation logistique  MLT_231102_155827.pdfoptimisation logistique  MLT_231102_155827.pdf
optimisation logistique MLT_231102_155827.pdfSoukainaMounawir
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Ville de Châteauguay
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirstjob4
 
Algo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigésAlgo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigésSana REFAI
 

Último (7)

comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestion
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
 
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024  Bâtiment et Photovoltaïque.pdfJTC 2024  Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
 
optimisation logistique MLT_231102_155827.pdf
optimisation logistique  MLT_231102_155827.pdfoptimisation logistique  MLT_231102_155827.pdf
optimisation logistique MLT_231102_155827.pdf
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdf
 
Algo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigésAlgo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigés
 

How to fail at benchmarking?