Qué significa inlinear una función y cómo afecta a un programa?

Respuesta

Una función inline es aquella para la que el compilador copia el código de la definición de la función directamente en el código de la función de llamada en lugar de crear un conjunto separado de instrucciones en la memoria. Esto elimina la sobrecarga de la llamada y puede exponer importantes oportunidades de optimización. El uso del especificador «inline» es sólo una sugerencia al compilador de que se puede realizar una expansión inline; el compilador es libre de ignorar la sugerencia.
Algunos de los efectos de inlining son:

  1. En la mayoría de los casos, inlining aumenta el tamaño del programa. Pero en algunos casos, cuando el tamaño de la función es menor que el tamaño del código de la llamada a la función, inlining podría reducir el tamaño del programa.
  2. En la mayoría de los casos, inlining podría mejorar el tiempo de ejecución al evitar la sobrecarga de la llamada, y posible see-through por el optimizador (haciendo que sea una función no opaca) para más oportunidades de optimización. Sin embargo, si la función no se llama con frecuencia, no tendrá una mejora visible en el tiempo de ejecución.
  3. El inlineado aumenta el acoplamiento práctico al hacer que el llamador dependa potencialmente de los detalles de implementación interna del código inlineado. El problema con el acoplamiento práctico es que cuando el inlined callee cambia, tienes que recompilar el caller. Esto es un coste para la construcción y el tiempo de desarrollo.

El mejor enfoque sería mantener la alineación hasta que termine de perfilar su programa. Esto ayudará a determinar si usted obtiene algún beneficio adicional de inlining.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.