Je pense que cela dépend vraiment de la langue et de la fonction. Alors que les compilateurs c et c ++ peuvent incorporer de nombreuses fonctions, ce n'est pas le cas pour Python ou Java.
Bien que je ne connaisse pas les détails spécifiques à Java (sauf que chaque méthode est virtuelle mais je vous suggère de mieux vérifier la documentation), en Python, je suis sûr qu'il n'y a pas d'inline, aucune optimisation de récursivité de queue et les appels de fonction sont assez chers.
Les fonctions Python sont essentiellement des objets exécutables (et en fait, vous pouvez également définir la méthode call () pour faire d'une instance d'objet une fonction). Cela signifie qu'il y a beaucoup de frais généraux pour les appeler ...
MAIS
lorsque vous définissez des variables à l'intérieur des fonctions, l'interpréteur utilise LOADFAST au lieu de l'instruction LOAD normale dans le bytecode, ce qui rend votre code plus rapide ...
Une autre chose est que lorsque vous définissez un objet appelable, des modèles comme la mémorisation sont possibles et ils peuvent effectivement accélérer considérablement votre calcul (au prix d'utiliser plus de mémoire). Fondamentalement, c'est toujours un compromis. Le coût des appels de fonction dépend également des paramètres, car ils déterminent la quantité de choses que vous devez réellement copier sur la pile (donc en c / c ++, il est courant de passer de gros paramètres comme des structures par des pointeurs / référence plutôt que par valeur).
Je pense que votre question est en pratique trop large pour recevoir une réponse complète sur stackexchange.
Ce que je vous suggère de faire est de commencer avec une langue et d'étudier la documentation avancée pour comprendre comment les appels de fonction sont implémentés par cette langue spécifique.
Vous serez surpris par le nombre de choses que vous apprendrez dans ce processus.
Si vous avez un problème spécifique, faites des mesures / profilage et décidez de la météo, il est préférable de créer une fonction ou de copier / coller le code équivalent.
si vous posez une question plus précise, il serait plus facile d'obtenir une réponse plus précise, je pense.