Alors qu'il serait très pratique de pouvoir utiliser les fonctions inline à certaines situations,
Existe-il des inconvénients avec les fonctions inline?
Conclusion:
Apparemment, Il n'y a rien de mal à utiliser les fonctions inline.
Mais il est intéressant de noter les points suivants!
La surutilisation de l'in-lining peut effectivement rendre les programmes plus lent. Selon une fonction de la taille), d'inlining il peut causer de la taille du code d'augmenter ou de diminuer. Inline un très petit accesseur de la fonction sera généralement une réduction de la taille du code, tandis que l'in-lining, une très grande fonction peut augmenter considérablement la taille du code. Sur les processeurs modernes plus petit code s'exécute plus rapidement grâce à une meilleure utilisation du cache d'instructions. - Les Directives De Google
Les avantages de rapidité de fonctions en ligne ont tendance à diminuer à mesure que la fonction prend de l'ampleur. À un certain point, la surcharge de l'appel de la fonction devient faible par rapport à l'exécution de la fonction du corps, et l'avantage est perdu - Source
-
Il y a peu de situations où une fonction en ligne peut ne pas fonctionner:
- Pour une fonction retournant des valeurs; si une instruction de retour existe.
- Pour une fonction ne retourne pas de valeurs; si une boucle, d'un commutateur ou d'instruction goto existe.
- Si une fonction est récursive. -Source
L'
__inline
mot-clé provoque une fonction inline uniquement si vous spécifiez l'option optimiser. Si optimiser est spécifié, si oui ou non__inline
est à l'honneur dépend du paramétrage de la ligne de l'optimiseur option. Par défaut, la ligne de l'option est en effet à chaque fois que l'optimiseur de requête est exécutée. Si vous spécifiez l'optimiser , vous devez également spécifier le noinline option si vous souhaitez que l'__inline
mot-clé pour être ignoré. -Source