He estado trabajando en un proyecto C donde he usado funciones en línea para aumentar la eficiencia de mi código. Pero me encontré con un escenario en el que el tamaño de mi código generado es significativamente más grande de lo planeado, lo que genera problemas de memoria.
Insertar CODE, HTML o PHP:
inline int add(int x, int y) {
return x + y;
}
Este método se llama varias veces a lo largo de mi código y su código se copia en la función de llamada cada vez. Esto puede dar como resultado un código redundante y un tamaño de código compilado más grande.
Para examinar el problema, encontré este
artículo, que utilizaba el comando
objdump para inspeccionar el código ensamblador de la misma manera que lo hizo mi aplicación creada. El método en línea se copió numerosas veces a lo largo del código, lo que resultó en un tamaño de programa sustancialmente mayor que el planeado.
Entonces, ¿qué debo hacer a continuación?