Estudio del Perfil de Rendimiento

Se conoce con el nombre de perfilado o profiling de un programa al estudio de su rendimiento mediante un programa (conocido como profiler) que monitoriza la ejecución del mismo mediante una técnica que interrumpe cada cierto tiempo el programa para comprobar en que punto de la ejecución se encuentra. Las estadísticas acumuladas se vuelcan al final de la ejecución en un fichero que puede ser visualizado mediante la aplicación apropiada.

En Perl hay varios módulos que permiten realizar profiling. El mas antiguo es Devel::DProf . La aplicación para visualizar los resultados se llama dprofpp . Sigue un ejemplo de uso:

lhp@nereida:~/Lperl/src/threads/knapsack/Algorithm-Knap01DP/t$ time perl -MDevel::Profiler usealknap.pl knap25.dat
14,5,11
14,5,3,8
14,2,11,3

real    0m0.065s
user    0m0.060s
sys     0m0.000s
La ejecución crea un fichero tmon.out:
lhp@nereida:~/Lperl/src/threads/knapsack/Algorithm-Knap01DP/t$ ls -ltr | tail -1
-rw-r--r--  1 lhp lhp  9876 2007-05-16 16:10 tmon.out
Al ejecutar dprofpp se muestran las subrutinas ordenadas según su consumo de CPU:
lhp@nereida:~/Lperl/src/threads/knapsack/Algorithm-Knap01DP/t$ dprofpp tmon.out
Total Elapsed Time = 0.002055 Seconds
  User+System Time =  5.5e-05 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c  Name
 0.00   0.000  0.000     52   0.0000 0.0000  Algorithm::Knapsack::_knapsack
 0.00   0.000  0.000      1   0.0000 0.0001  Algorithm::Knapsack::compute
 0.00   0.000  0.000      1   0.0000 0.0000  Algorithm::Knapsack::solutions
 0.00   0.000  0.000      1   0.0000 0.0000  Algorithm::Knapsack::new

Casiano Rodríguez León
Licencia de Creative Commons
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19