Llamadas a funciones: ¿Cuánto cuestan y cómo optimizarlas?

Fuentes: The cost of a function call

En programación, es común encadenar funciones, donde una función llama a otra. Aunque esto es una práctica habitual, cada llamada de función tiene un costo en términos de rendimiento. Este artículo explora ese costo y cómo los compiladores pueden optimizarlo a través de una técnica llamada 'inlining'.

¿Qué es el Inlining? El inlining es una optimización del compilador que reemplaza una llamada a una función con el código de la propia función directamente en el lugar donde se llama. Imagina que tienes una función add3 que llama a add. El compilador puede 'desenrollar' la llamada, reemplazando add(add(x, y), z) con x + y + z. Esto elimina la sobrecarga de la llamada a la función.

El Costo de una Llamada de Función: Una llamada de función no es gratuita. Implica guardar y restaurar valores en la pila, saltar a la función y luego regresar. Esto consume ciclos de CPU. Para funciones simples como la función add (suma de dos números), el costo es relativamente bajo, per