Tecnología

Inicio

Cómo Perfil programas en Perl

De perfiles de programas es un primer paso importante en la optimización. Si desea que su programa se ejecute más rápido, primero hay que identificar qué funciones están tomando la mayor parte del tiempo y centrar su atención allí. Para ello, un programa Perl tiene que recoger y el detalle de sus llamadas a subrutinas y salidas, la creación de un archivo que tiene toda la información de perfil. El perfil de su programa de Perl le dirá dónde se gasta la mayor cantidad de tiempo.

Instrucciones

1 Ensamblar los datos de prueba, el uso de grandes archivos de datos cuando sea posible. Si el programa está procesando una gran cantidad de datos, recopilar algunos datos de escenario del peor caso. No hay ningún punto en la optimización de su programa en Perl para el mejor de los casos o la cantidad más pequeña de datos.

2 Ejecutar el generador de perfiles mediante la ejecución de su programa desde la línea de comandos Perl con la -d: DProf opción. Esto perfil de su programa y la salida de un tmon.out archivo. Este archivo tmon.out será grande e incomprensible, pero es fácilmente procesado en un estado legible:
"perl -d:DProf test.pl"

3 Ejecutar el procesador de perfiles, utilizando el dprofpp (DProf pre-procesador) de comandos. El comando producirá una salida legible desde el archivo tmon.out. Las columnas más interesantes son el porcentaje de tiempo pasado, el número de veces llamado y el nombre de la función. Aquí hay alguna salida de ejemplo:
"C:\projects\Perl>dprofpp
Total Elapsed Time = 0.377622 Seconds
User+System Time = 0.345622 Seconds
Exclusive Times
%Time ExclSec CumulS #Calls sec/call Csec/c Name
79.5 0.275 0.269 1 0.2752 0.2694 File::Find::_find_dir
13.6 0.047 0.063 2 0.0235 0.0313 main::BEGIN
4.63 0.016 0.016 3 0.0053 0.0053 DynaLoader::dl_load_file
4.63 0.016 0.016 3 0.0053 0.0053 ActivePerl::Config::BEGIN
4.34 0.015 0.015 3 0.0050 0.0050 DynaLoader::BEGIN
0.00 0.000 0.000 1 0.0000 0.0000 Config::launcher
0.00 0.000 0.000 1 0.0000 0.0000 Config::fetch_string"

4 Perfil de sus programas en Perl mediante la identificación de los puntos de optimización. Las funciones que requieren mucho tiempo o son llamados a un gran número de veces que son candidatos para la optimización.

5 Optimizar su programa. Si una función se llama una excesiva cantidad de veces (cientos, miles o superior), teniendo en cuenta el cuerpo de la función y ponerlo directamente en el código de llamada. Incluso si las funciones no se necesita mucho tiempo para ejecutar, función llama a sí mismos toman tiempo.

Consejos y advertencias

  • Si la mayor parte de su tiempo se gasta en unas pocas funciones, mira a los primeros. Trate de minimizar las operaciones costosas como las búsquedas de hash para hacerlo más rápido.