No entiendo la documentación de gprof con respecto a cómo compilar su programa para crear perfiles con gprof. En g ++, es necesario compilar con la opción -g
(información de depuración) además de la opción -pg
o no. En cada caso obtengo resultados diferentes, y me gustaría ver dónde están los cuellos de botella en mi aplicación en modo de lanzamiento, no en modo de depuración, donde el compilador omite muchas optimizaciones (por ejemplo, en línea)Compilación en g ++ para gprof
Respuesta
muestra documentation que puede hacer cualquiera de los dos, teniendo en cuenta que necesita -g para line by line profiling. Por lo tanto, si desea crear un perfil en condiciones de publicación y puede aceptar no hacer línea por línea, debería poder compilar sin -g.
Solo me interesan las llamadas a funciones, no los perfiles línea a línea. Sin la opción -g, muchas funciones que se están llamando no aparecen. No creo que esto se deba a la inclusión, porque muchos de esos métodos son grandes (más de 50 líneas de código). – myahya
@myahya, creo que muy bien puede estar en línea. Por defecto, GCC puede alinear funciones de hasta 400 instrucciones internas de GCC (sé que estas no se asignan directamente a líneas de código); ver http://bazaar.launchpad.net/~vcs-imports/gcc/trunk/annotate/99780/gcc/params.def#L58. Además, ¿qué banderas de compilación estás usando? –
- 1. error de compilación en g ++ 4.3.4 compilador
- 2. Perfilando la aplicación g ++ en MacOSX?
- 3. Compilación de biblioteca dinámica compartida con g ++
- 4. g ++ 4.7.1 error de compilación: tipos conflictivos para 'strsignal'
- 5. compilación archivo de cabecera error fatal g ++
- 6. boost :: date_time, g ++ - 4.7.0, error de compilación
- 7. ¿Qué es la función __tcf_0? (Visto al usar gprof y g ++)
- 8. gprof una biblioteca - pregunta
- 9. gprof informa que no hay tiempo acumulado
- 10. gcc: referencia indefinida a _mcount (instrumentación gprof)
- 11. Uso de gprof con conectores
- 12. El comando gprof no está creando out.txt
- 13. C++: fuerza compilación de plantilla completa (MSVC/G ++)
- 14. gcc y g ++ símbolo del sistema compilación y vinculación
- 15. g ++/clang análisis ultrarrápido pero no modo de compilación?
- 16. `gprof` tiempo pasado en líneas particulares de código
- 17. gprof y los argumentos a ejecutable
- 18. g: incluir vs g: render
- 19. ¿Cómo se puede incorporar el soporte de gprof a un programa creado con SCons?
- 20. Crear OpenSSL en Linux con -g para depurar
- 21. #define f (g, g2) g ## g2
- 22. ¿Por qué \ G en SELECT * FROM table_name \ G?
- 23. Compilación de programas openCV 2.3.1 con MinGW gcc/g ++ en Windows 7 64bit
- 24. Paréntesis desequilibrado con __attribute__ en g ++
- 25. Compilación libgdiplus-2.10.9 en CentOS5 para Mono
- 26. Flujo de control inesperado (¿error de compilación?) Utilizando errno como argumento para la excepción en C++ (g ++)
- 27. Extracción g advertencia ++ para parámetro de plantilla
- 28. Configurar Eclipse CDT para usar g ++
- 29. Dump include paths from g ++
- 30. g ++: Cómo destrabar símbolos exportados
http://stackoverflow.com/questions/1777556/alternatives-to-gprof/1779343#1779343 –
'-g' no significa que las optimizaciones estén desactivadas. '-O' controla la opimización. Puede compilar tanto '-g' como' -O2' por ejemplo. –