¿Medir el tiempo empleado en enlazar dinámicamente al inicio del progtwig?

¿Cómo puedo medir el tiempo empleado en vincular dinámicamente al inicio del progtwig?

Soluciones que me vienen a la mente y por eso tengo dudas:

1) Imprima algo a la hora correcta antes de ejecutar el progtwig y al inicio de main.

Esto no tiene en cuenta el posible código que se ejecuta antes de main – inicialización de globales y cualquier llamada de función resultante. No está automatizado fuera de la caja y, bueno, me parece crudo y dudoso con precisión.

2) comando de tiempo en un progtwig vacío que tiene todos los mismos encabezados que el progtwig que se va a probar y está vinculado dinámicamente a las mismas librerías.

No estoy seguro de esto. No sé si el comstackdor y el enlazador pueden asociarse para abreviar el enlace dynamic basado en el contenido del código del cliente, pero parece posible.

Edición: 6 minutos después de preguntar esto, volví a revisar los términos de búsqueda obvios en Google, “mida el tiempo empleado en vincular dinámicamente” y terminé de nuevo aquí como el primer éxito.

Utilice LD_DEBUG .

prueba esto:

 LD_DEBUG=statistics ./myprog 

Se mostrará una lista corta de varias estadísticas. Un ejemplo:

 xenon-lornix:~> LD_DEBUG=statistics ls 22833: 22833: runtime linker statistics: 22833: total startup time in dynamic loader: 2500702 clock cycles 22833: time needed for relocation: 757822 clock cycles (30.3%) 22833: number of relocations: 155 22833: number of relocations from cache: 8 22833: number of relative relocations: 1253 22833: time needed to load objects: 1325154 clock cycles (52.9%) 

Muestra información sobre la carga / ejecución del comando ls .

El uso de LD_DEBUG=help ./myprog mostrará nombres de otras opciones disponibles para usar con LD_DEBUG .

Puede encontrar más información en las ld.so ld-linux.so ld.so , ld-linux.so (en realidad son idénticas). Una búsqueda en Google puede ayudar con más detalles.