Duplicar posible:
Is recursion ever faster than looping?Sobrecarga de recursión: ¿qué tan serio es?
que se formó primero en programar en C serio, hace unos 15 años. Mi empleador quería un código altamente optimizado para tareas computacionalmente difíciles. Recuerdo que en más de una ocasión me aconsejaron que reescribiera las repeticiones como bucles, incluso al costo de la legibilidad, para evitar la "sobrecarga por recursión". Según entendí entonces, la sobrecarga de recursión fue el esfuerzo extra requerido para insertar datos en una pila y luego sobresalirlos.
Ahora código en C, Python, Perl, y a veces Java, y me pregunto algunas veces sobre las recurrencias. ¿Todavía hay algo que ganar reescribiéndolos? ¿Qué pasa si son repeticiones de cola? ¿Los compiladores modernos han hecho que todos estos problemas sean discutibles? ¿Son estas preocupaciones irrelevantes para los idiomas interpretados?
La sobrecarga de llamada de función puede variar enormemente entre sistemas, por lo que esta pregunta solo tiene sentido en un contexto particular. Dicho esto, creo que la tendencia general en las últimas dos décadas ha sido hacia menos gastos generales. – dmckee