2010-03-12 11 views
5

Necesito gprof una biblioteca en nuestro sistema para examinar las llamadas a funciones y ver si podemos optimizarlo más. Básicamente, lo que tengo esgprof una biblioteca - pregunta

Ejecutable A, que utiliza una biblioteca compartida myLib.so

Quiero gprof la myLib.so. Cuando compilo myLib.so source using -pg option, produce un archivo .so muy bien.

Pero recompilar el ejecutable A en contra de esa biblioteca no está produciendo el archivo * .gmon por alguna razón. ¿Lo que hay que hacer? ¿Debo vincular el myLib estáticamente? Si es así, por favor dígame cómo. Soy un novato, perdón por mi ignorancia. Estoy aprendiendo todos los días

gracias de antemano.

Respuesta

0

Tengo el mismo problema, pero creo que lo mejor que se puede hacer es crear un pequeño programa C/C++ que use la biblioteca con algunas llamadas de prueba, compilarlo con la biblioteca utilizando -pg y perfilar eso. De esta forma, también puede aislar los problemas de creación de perfiles de la biblioteca de otras cosas.

Como http://sourceware.org/binutils/docs/gprof/Implementation.html y https://stackoverflow.com/a/7290284/885650 punto de salida, se necesita -pg al vincular, ya que añade código adicional en todas partes.

Cuestiones relacionadas