48% du temps de calcul gaspillé dans une allocation mémoire.
Ce que tu as sous les yeux, c'est un programme de purge de données d'un de mes clients. Il évite l'asphyxie à des tables de plus d'1 milliard de lignes. S'il déborde de son créneau nocturne, c'est le feu.
Demande à n'importe quel·le dev de l'équipe où il passe son temps. La réponse fuse : "dans le lien avec la base de données, évidemment."
Évidemment. J'aurais dit la même chose. Mais je préfèrerais des preuves.
Je génère un flamegraph (merci Brendan Gregg pour cette invention fabuleuse). Chaque rectangle empilé représente le temps cumulé dans une méthode, plus il est large, plus ton appli y vit.
Le diagnostic est cruel.
48% du temps par une allocation mémoire et une copie de tableau. Pas la base. Pas le réseau. De la plomberie invisible que personne n'avait vraiment envisagée.
Sans cette radio, n'importe quelle équipe aurait investi des semaines à gratter du SQL pour arracher 2 à 5% de gain. Du travail propre, méthodique, et presque inutile.
Pendant ce temps, le vrai gouffre continuerait de siphonner la moitié du temps de traitement, planqué dans l'angle mort des certitudes collectives.
Le cerveau humain est une formidable machine à raccourcis. Mécanique souvent hyper efficace. Mais une session de monitoring peut te donner tort en deux minutes.
Publié à l'origine sur LinkedIn.
Voir le post sur LinkedIn →