Algunas veces los compiladores llaman a funciones en línea. Eso significa que mueven el código de la función llamada a la función de llamada. Esto hace las cosas un poco más rápidas porque no hay necesidad de empujar y hacer estallar cosas dentro y fuera de la pila de llamadas.
Entonces mi pregunta es, ¿por qué los compiladores no integran todo? Supongo que haría que el ejecutable sea notablemente más rápido.
La única razón por la que puedo pensar es un ejecutable significativamente más grande, pero ¿realmente importa en estos días con cientos de GB de memoria? ¿No vale la pena el rendimiento mejorado?
¿Hay alguna otra razón por la cual los compiladores no solo incorporan todas las llamadas a funciones?
Isn't the improved performance worth it?Para un método que ejecutará un bucle 100 veces y reducirá algunos números serios, la sobrecarga de mover 2 o 3 argumentos a los registros de la CPU no es nada.