En performance, la moyenne ne veut rien dire

1 mai 2025#  performances

Vous testez votre API, et vous obtenez un temps de réponse moyen de ~230 ms.

🎉 Bonne nouvelle, c’est (presque) satisfaisant !

Sauf que… en regardant de plus près :

💥 Votre API est en réalité catastrophique pour une partie des utilisateurs.

La moyenne vous a menti. Voici pourquoi (et comment l’éviter).

La moyenne masque les pires cas (là où ça fait mal)

Prenons un exemple simple :

RequêtesTemps de réponse (ms)
190< 50
10> 5000

La moyenne est de ~215 ms, mais est-ce que ça reflète la réalité ?

Une requête ≠ un utilisateur: La moyenne ne reflète pas l’expérience utilisateur réelle

Un utilisateur ne se contente pas d’une seule requête. S’il en effectue plusieurs et qu’une seule d’entre elles est lente, son expérience est dégradée.

Dans le cas d’une API, une transaction métier repose souvent sur plusieurs appels :

(Et dans le cas des listes de données, il est courant qu’un utilisateur recupère plusieurs pages de données).

🚨 Les services qui s’appuient sur votre API ont souvent des règles de timeout. Si votre réponse est trop lente, ils coupent la connexion.
Et s’ils n’ont pas mis de mécanisme de retry, vous risquez d’interrompre une transaction entière, même si cela ne concerne qu’un faible pourcentage de requêtes.

💡 Les pires cas peuvent toucher bien plus de transactions que ce que la moyenne laisse penser.

🎯 Exemple concret :

Imaginez un site e-commerce.

Sachant qu’une navigation sur un site e-commerce c’est souvent plusieurs requêtes par page. Il n’est pas impossible qu’au cours de votre navigation, vous rencontriez au moins une fois des lenteurs à cause d’une ou deux requêtes (vous savez, votre 5% qui flanche).

Si une seule requête traîne, c’est toute l’expérience utilisateur qui en pâtit. Les utilisateurs ne ressentent pas “un temps de réponse moyen”, ils vivent chaque requête de façon unique.

💡 Les pires cas (P95/P99) impactent directement le business (taux de conversion, frustration client, abandon du panier…).

Que faut-il regarder à la place ? (Les percentiles !)

Plutôt que la moyenne, utilisez les percentiles :

💡 Si votre P95 explose à 5 secondes, vous avez un réel problème, même si votre moyenne est belle.

La moyenne ne marche pas bien quand il y a de l’instabilité.

Un autre piège de la moyenne : elle ne capture pas la variance.

Exemple :

Test 1Test 2Test 3Test 4Test 5Test 6Test 7
100 ms200 ms300 ms50 ms5 000 ms500 ms45 ms

Moyenne = 885 ms ❌ (Ce qui est déjà vraiment mauvais)

Mais que nous dit le P95 ?
👉 5 000 ms… soit une expérience (vraiment) désastreuse pour certains utilisateurs !

D’où peut venir cette variance ?

💡 Regardez la distribution complète des temps de réponse, pas juste une valeur unique ! L’étude de la variance est un premier signal de fumée pour aller plus loin dans les investigations.

En résumé : la moyenne, ça ne veut rien dire !

Comment analyser ça correctement ?

photoCédric CHARIERE FIEDLER

Cédric CHARIERE FIEDLER

Architecte Web, QA & Perf
# APIFrontQAPerformanceCloud