Trouver et corriger des problèmes de performance avec des agents IA
Fournir des données de profiling plutôt que deviner, une hypothèse avant le correctif, et toujours mesurer avant/après – sinon l'agent se contente d'« optimiser » le comportement en le supprimant.
Sans données de mesure, pas de diagnostic
Un agent à qui l'on dit seulement « l'appli est lente » devine tout autant que pour du débogage sans stack trace. Fournis-lui de vraies sorties de profiling : des mesures de temps, un export de flamegraph, des logs de requêtes en base avec les durées. Des chiffres concrets montrent où le temps est réellement perdu – pas où il semble « intuitivement » perdu.
Une hypothèse avant le correctif
Exactement comme pour le débogage : fais d'abord nommer les causes possibles, classées par impact supposé, puis teste-en une de façon ciblée. Une optimisation sans hypothèse préalable vise souvent le mauvais endroit – vite faite, mais inefficace.
Mesurer avant/après
Chaque optimisation a besoin d'un benchmark avant et après, dans les mêmes conditions. Sans chiffre de comparaison, tu ne sais pas si un changement a vraiment apporté quelque chose – seulement qu'il donne une impression de rapidité.
Micro-optimisation vs. optimisation d'architecture
Les petits changements (une boucle, une requête) sont vite mis en œuvre, mais rapportent souvent peu. Le plus grand gain se trouve généralement dans des décisions d'architecture : un problème de requêtes N+1, un recalcul inutile, un cache manquant. Un agent devrait nommer les deux catégories – et te dire laquelle aurait le plus grand impact.
Le piège : optimiser le comportement en le supprimant
Un agent peut rendre les choses « plus rapides » en coupant simplement du travail – en sautant une validation, en servant des données périmées au lieu de fraîches via un cache, en codant en dur un résultat. Ça a l'air bien sur le benchmark, mais c'est un bug de correction. Vérifie après chaque changement de performance si le résultat est toujours correct, pas seulement s'il est plus rapide.
EXEMPLE
Prompt : « Voici l'export de profiling de /api/search (en pièce jointe). Nomme les trois causes les plus probables des 800 ms de latence, classées par impact supposé. Ne change encore rien. Mesure ensuite avant/après avec la même commande de benchmark et fais tourner la suite de tests existante. »
🛠️ EXERCICE — À TOI DE JOUER
Prends une fonction volontairement lente (par exemple une boucle imbriquée ou une requête N+1) et fais-la optimiser systématiquement par un agent.
- Mesure le temps d'exécution actuel avec une commande de benchmark fixe et note le chiffre.
- Fais d'abord nommer par l'agent la cause la plus probable, sans rien changer.
- Laisse-le ensuite optimiser, refais tourner le même benchmark et exécute les tests existants avant d'accepter le correctif.
✅ AUTO-VÉRIFICATION
- ☐ Le temps d'exécution a-t-il démontrablement baissé (chiffre contre chiffre), pas seulement en apparence ?
- ☐ Tous les tests existants sont-ils toujours au vert ?
- ☐ L'agent a-t-il supprimé ou affaibli du comportement pour paraître plus rapide ?
QUIZ RAPIDE
À quel piège devrais-tu particulièrement faire attention lors d'une optimisation de performance assistée par IA ?
SOURCES
- Claude Code Doku: Best Practices (Give Claude a way to verify its work) ↗ code.claude.com
- MDN: Web Performance ↗ developer.mozilla.org
- MDN: Web Performance Guides ↗ developer.mozilla.org