Sommaire

Granularité descendante

1. Commençons par une parabole

Le lecteur a peut-être déjà entendu cette parabole de la vie consistant à la comparer au remplissage d’une jarre avec des rochers, des cailloux, du sable : si nous commençons par remplir une jarre avec du sable et des cailloux (le moins important dans la vie), nous n’aurons plus la possibilité de faire entrer ensuite les gros rochers (l’essentiel). Tandis que si nous remplissons la jarre avec des roches, nous pouvons toujours faire couler quelques cailloux entre les rochers. Et de la même manière, le sable pourra ensuite combler les interstices.

Il en va de même pour le profilage : si le développeur commence par améliorer les fonctions les moins utilisées, il se rendra compte qu’en améliorant les principaux points de contention du logiciel, il annihile le travail réalisé auparavant. À l’inverse, s’il optimise son code en partant des plus gros points de contention, bref des goulets d’étranglement, il fait apparaître au fur et à mesure de plus petits problèmes. Surtout lorsqu’il corrige ces petits problèmes, il n’impacte généralement pas les corrections plus importantes qu’il a réalisées en amont.

2. Un exemple

Prenons un exemple : la fenêtre de connexion d’une application met trop de temps à apparaître. Une analyse par un profileur montre qu’une ...