À retenir
- Gain de performance en supprimant le détour de l'appel de fonction.
- Risque d'augmentation de la taille du programme si utilisé abusivement.
- Idéal pour les fonctions très courtes et fréquemment appelées.
Inliner consiste à remplacer l'appel d'une petite fonction par le contenu même de son code, directement à l'endroit où elle est utilisée. C'est un peu comme si, dans une recette de cuisine, au lieu de lire « voir technique de la pâte brisée en page 10 », on écrivait directement les étapes de la pâte au milieu de la recette pour éviter de perdre du temps à tourner les pages.
Étymologie
Le terme vient de l'anglais inline (littéralement « en ligne »). Il fait référence au fait de placer les instructions d'une fonction directement dans le flux (la ligne) d'exécution principale du programme.
Exemples d'usage
- En C++, utiliser le mot-clé
inlinedevant une fonction pour suggérer au compilateur de l'intégrer directement. - Dans le développement Web, on parle aussi d'inliner du code CSS ou JavaScript en le plaçant directement dans le fichier HTML plutôt que dans un fichier externe pour réduire le nombre de requêtes réseau.
Cas d'usage
On utilise l'inlining principalement pour optimiser les performances. Cela évite le « coût » de l'appel de fonction (sauvegarde de l'état actuel, saut vers une autre zone mémoire, puis retour), ce qui est crucial dans les boucles qui s'exécutent des millions de fois.
Bonnes pratiques
Il ne faut pas inliner de grosses fonctions, car cela fait gonfler la taille du fichier final (exécutable), ce qui peut paradoxalement ralentir l'ordinateur. La règle d'or moderne est de laisser le compilateur décider : il est souvent bien plus efficace que l'humain pour savoir ce qui mérite d'être inliné.
Synonymes
Antonymes
Conseil
Si vous débutez, ne vous souciez pas trop d'inliner manuellement votre code. Concentrez-vous sur la clarté. Les compilateurs modernes (comme ceux pour Java, C++ ou Swift) font ce travail d'optimisation automatiquement et très intelligemment pour vous.
Questions fréquentes
Est-ce que le mot-clé 'inline' force toujours le compilateur à obéir ?
Non, c'est généralement considéré comme une suggestion. Le compilateur peut ignorer la demande s'il estime que cela nuirait aux performances.
Est-ce utile pour toutes les fonctions ?
Non, l'inlining est contre-productif pour les fonctions complexes ou longues, car cela sature le cache du processeur.