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.000sLa 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.outAl 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