2010-03-05 9 views
8

He utilizado dos herramientas de creación de perfiles (VTune en Windows y dbx (dentro de sunstudio) en Solaris) que pueden perfilar el programa sin reconstruirlas, y durante la creación de perfiles, el programa simplemente se ejecuta a la misma velocidad que lo normal. Ambas 2 características me ahorraron mucho tiempo.Cómo perfilar el programa en la plataforma Linux sin reconstruir?

Ahora quiero saber si hay algunas herramientas gratuitas disponibles en la plataforma Linux que pueden hacer lo mismo. Creo que necesito herramientas de creación de perfiles basadas en el muestreo. VTune es bueno pero caro ... He oído hablar de gprof y valgrind. Pero parece que gprof necesita instrumentar el programa (por lo que tenemos que reconstruir el programa) y valgrind ralentizará bastante la ejecución del programa. (desde la introducción de valgrind, Cachegrind ejecuta programas entre 20 y 100 veces más lento que lo normal, y Callgrind, que necesito crear perfiles, está basado en Cachegrind)

Para realizar perfiles, solo necesito averiguar el tiempo de ejecución de las llamadas a funciones, así que puede descubrir dónde ocurre la degradación del rendimiento. En realidad, no necesito mucha información de perfil de bajo nivel como Cachegrind siempre ...

Respuesta

5

oprofile es bastante bueno, pero puede ser difícil de configurar. Tampoco requiere que reconstruya su programa.

+0

Sí ... Parece lo que necesito ... Pero creo que necesita una cuenta de root para configurar, ¿verdad? – superb

+0

Sí, requiere la instalación de root. O sudo, dependiendo de cómo esté configurado su archivo sudoers. Sugiero usar una máquina virtual, pero hacer perfiles en una VM parece una mala idea: los cuellos de botella cuando se ejecuta bajo una máquina virtual pueden no ser los mismos que cuando se ejecuta en una máquina física. Espero que tengas una raíz en tu sistema. – George

+0

Lo tengo. Después de leer algún documento sobre oprofiler entiendo que necesita kernel para recopilar algún contador de hardware para que pueda perfilar el programa rápidamente, por lo que se necesita un privilegio de root para configurarlo. Puede que no sea fácil obtener acceso a la raíz porque estaba usando una máquina pública y los perfiles afectarán el rendimiento de esa máquina. Creo que Valgrind es la mejor opción ... – superb

0

Una opción más agradable que oprofile es Zoom. Es similar al Shark en Mac OS X, si alguna vez lo ha usado. Es comercial ($ 199) pero puede obtener una versión de prueba gratuita en www.rotateright.com.

1

Estoy de acuerdo con Paul, creo que Zoom es probablemente el mejor perfilador de Linux que puede pagar.

Sin embargo, para real results, confío en this simple method, que he estado usando desde antes de que se inventaran los perfiladores.

1

Performance Counters for Linux es una nueva herramienta utilizable en los kernels 2.6.31 y posteriores; es menos intrusivo (tanto para el programa como para el sistema en general) que valgrind o OProfile.

Cuestiones relacionadas