2010-02-16 10 views
7

Mi forma estándar de Linux de perfiles de aplicación es:Perfilando la aplicación g ++ en MacOSX?

1) compile with g++ -pg 
2) run prog 
3) gprof 

Al parecer gprof es Broek en MacOSX 10.5, y se supone que debo utilizar tiburón. Todos los tutoriales que he encontrado aby Shark implican XCode (mientras que mi compilación está hecha con Makefiels yg ++).

¿Alguien puede publicar instrucciones paso a paso para usar shark en una aplicación creada con g ++? Diga algo como:

int main() { while(1); } 

g++ blah.cpp -o blah; do I need to give it more command line arguments? 

how do I use shark here? 
+0

¿Consideró usar dtrace (con el programa GUI llamado instrumentos)? –

Respuesta

3

perfiles instrumentado como gprof no es particularmente útil a menos que realmente sólo quiere saber acerca de las gráficas de llamada y el número de veces que se denominan funciones. Mucho más útil para el análisis de rendimiento es un generador de perfiles de muestreo, y para esta herramienta Shark de Apple (parte de CHUD) es uno de los mejores.

Realmente no necesita usar Xcode para crear una aplicación para perfilar en Shark: tengo herramientas de línea de comandos creadas con Makefiles que perfilo con Shark todo el tiempo. Puede activar Shark automáticamente desde su código (hay un par de API diferentes para esto) o puede usar la herramienta de línea de comandos "chudRemoteCtrl" (man chudRemoteCtrl) o simplemente puede configurar las opciones de Lanzamiento en Shark para configurar la ruta ejecutable , directorio de trabajo, argumentos de líneas de comando, etc., y listo. Asegúrese de compilar su aplicación con -g para que Shark pueda mostrar el código fuente en lugar de código de objeto desensamblado.

Shark configuration for command line tool http://www.freeimagehosting.net/uploads/386737a1fa.jpg

1

Aquí hay una relevant thread

Por desgracia, no sé cómo hacer esto en la línea de comandos en Mac OS X, y yo estoy corriendo 10.6 ... i suelo dejar la Xcode magic se hace cargo: -S

Cuestiones relacionadas