Votre application fonctionne correctement en développement, passe tous les tests, puis, soudainement, les utilisateurs commencent à se plaindre de sa lenteur en production.
Vous vérifiez les journaux et parcourez les métriques dont vous disposez, mais vous ne parvenez pas à identifier précisément où se situe le goulot d’étranglement.
S’agit-il de la requête de base de données, non optimisée pour le volume de données en production ? Du traitement des fichiers ? D’un appel API tiers que vous avez ajouté le mois dernier pour une nouvelle fonctionnalité ?
Voici une façon d’identifier le code responsable des lenteurs.
Mesurer le temps passé à exécuter du code
C’est exactement là qu’un TimeCostLogger devient indispensable. Au lieu de deviner ou de mettre en place des outils de profilage élaborés, vous pouvez encapsuler les blocs de code suspects et laisser les chiffres parler d’eux-mêmes.
Placez-le autour de vos opérations de base de données, de vos boucles de calcul lourdes ou de ces appels de services externes. Par exemple :
|
|
Lorsque les traces seront écrites, vous verrez exactement quelles parties du code consomment ces précieuses secondes.
Comment le mettre en œuvre
Comme je l’ai dit, vous n’avez pas besoin d’installer de logiciel de profilage, d’apprendre à utiliser de nouveaux outils ou de modifier votre processus de déploiement.
Il s’agit simplement d’une instruction using que vous pouvez ajouter pendant l’investigation d’un bug et laisser en place pour la surveillance en production. Lorsque les performances ne semblent pas optimales, vous disposerez de données historiques sur les temps d’exécution qui vous indiqueront exactement quand et où les choses ralentissent.
Cela est particulièrement utile lorsque vous avez affaire à des processus complexes comportant plusieurs étapes. Peut-être que l’ensemble de votre processus prend cinq secondes, mais vous ne savez pas si cela est dû à la lenteur de la première étape ou à la cinquième étape.
Vous pouvez encapsuler chaque étape individuellement. Cette série d’appels à différents services que vous pensiez être le problème ? Elle a pris quelques centaines de millisecondes. Le client de messagerie qui envoie des e-mails ? C’est là que se trouve votre goulot d’étranglement de vingt secondes.
Cela m’est arrivé il y a quelques mois.
Bien sûr, il existe des outils de profilage plus sophistiqués, mais parfois, vous avez juste besoin de réponses rapides sans frais supplémentaires ou intégration complexe à mettre en œuvre.
Le code
Le TimeCostLogger ci-dessous vous offre cette visibilité ciblée là où vous en avez besoin, avec l’infrastructure de journalisation que vous avez déjà en place sur votre projet.
|
|