Parfois, les compilateurs appellent des fonctions en ligne. Cela signifie qu'ils déplacent le code de la fonction appelée dans la fonction appelante. Cela rend les choses un peu plus rapides car il n'est pas nécessaire de pousser et de faire apparaître des éléments dans et hors de la pile d'appels.
Donc ma question est, pourquoi les compilateurs n'incluent-ils pas tout? Je suppose que cela rendrait l'exécutable beaucoup plus rapide.
La seule raison pour laquelle je peux penser est un exécutable beaucoup plus grand, mais est-ce vraiment important de nos jours avec des centaines de Go de mémoire? L'amélioration des performances n'en vaut-elle pas la peine?
Y a-t-il une autre raison pour laquelle les compilateurs n'incluent pas seulement tous les appels de fonction?
Isn't the improved performance worth it?
Pour une méthode qui exécutera une boucle 100 fois et calculera quelques chiffres sérieux, la surcharge de déplacement de 2 ou 3 arguments vers les registres CPU n'est rien.