¿Por qué se recomienda en línea una función antes de su llamada a la función?

No siempre es recomendable. Hay ciertos casos en los que no se utilizan funciones en línea. Por ejemplo, si una función es recursiva o contiene un bucle grande o un bucle pequeño con numerosas iteraciones o si la definición de la función tiene un bloque de código largo … en tales casos, una función no debe hacerse en línea.

Una función se hace en línea. Esto hace que el bloque de código de definición de función reemplace la instrucción de llamada cada vez que se realiza una llamada a función. Este reemplazo ocurre durante el tiempo de compilación y no durante el tiempo de ejecución.

Esto reduce los gastos generales (tiempo adicional de ejecución) debido a la transferencia del control de ejecución de la función de llamada a la función de llamada y luego de vuelta a la función de llamada … durante el tiempo de ejecución. Se consume un poco de memoria debajo del bloque de llamada de código mientras la ejecución efectiva se vuelve más rápida.
Sin embargo, en los casos mencionados anteriormente donde no se recomienda utilizar funciones en línea, el tiempo de ejecución no se reduce necesariamente. Los bloques largos de código o los bloques iterativos de código o las llamadas a funciones recursivas tardan en ejecutarse. Además, durante el tiempo de compilación, el El reemplazo del código hace que el programa consuma más espacio de memoria. Además, el compilador predeterminado está diseñado de modo que, en caso de que el consumo de memoria supere la reducción en el tiempo de ejecución, la ejecución de la función en línea es opcional y no necesita compilarse como se desee, y el programa se ejecuta sin funciones en línea debido a esta propiedad del compilador. La característica en línea sigue siendo ineficaz.

Si describimos la función, todo el código debe copiarse en la llamada a la función, lo que aumenta el tiempo de ejecución, pero para una función en línea, el código está presente en la función solo para que no haya demora en la llamada a la función

More Interesting

¿Qué es un buen algoritmo para convertir un número decimal de coma flotante con muchos, muchos decimales en el equivalente binario?

¿Por qué Matlab no le permite llamar a las funciones dos veces o indexarlas como en f (x) (y)?

¿Qué es la variable de referencia en C ++ y por qué se usa? ¿Cómo se relaciona con la variable de valor y la variable de puntero?

Mi matemática es pobre. ¿Puedo seguir siendo un buen programador de Java?

Mi profesor de informática me dice que debería hacer solo una cosa por función. ¿Cuál es la práctica aceptada con respecto a cuánto deben hacer las funciones de trabajo?

¿Por qué los maestros programadores insisten en usar las matemáticas para enseñar a sus estudiantes los conceptos básicos de la programación dado que no se usa tanto a diario?

¿Cuáles son las diferencias en las consecuencias entre el principio tautológico de elección demostrable en la teoría de tipos y el axioma completo de elección?

¿Qué temas de informática utilizan el cálculo? ¿Cuáles son algunos otros subcampos utilizados en informática?

¿Cuál es el problema más interesante que ha encontrado y que utiliza la recursividad?

¿Es posible tomar la construcción del producto para DFA con diferentes idiomas?

Cómo aprender la optimización matemática para el aprendizaje automático y el aprendizaje profundo

¿Por qué es más fácil verificar una respuesta que producirla?

¿Cuál es un ejemplo de un montón que requiere exactamente n * log (n) pasos? Sé que el límite superior de un montón es O (n log n), pero ¿cómo hago para mostrar un ejemplo donde requiera exactamente n * log (n) pasos?

¿Existe algún conjunto de videos o una lista de reproducción de videos de programación competitiva que incluya todos los algoritmos, estructuras de datos, matemáticas y todo lo necesario?

¿Las matemáticas son importantes para la piratería informática?