Hvordan profil Perl programmer

Profilering programmer er et viktig første skritt i optimalisering. Hvis du vil at programmet skal kjøre raskere, må du først identifisere hvilke funksjoner tar mest tid og holde fokus der. For å gjøre dette, har et Perl program for å samle inn og detalj sine subroutine samtaler og utganger, og skaper en fil som har all profilinformasjon. Profilering din Perl programmet vil fortelle deg hvor den største mengden av tid blir brukt.

Bruksanvisning

1 Monter testdata, bruk av store datafiler når det er mulig. Hvis programmet behandler en masse data, montere noen worst-case scenario data. Det er ingen vits i å optimalisere Perl program for best-case scenario eller minste mengden av data.

2 Kjør profiler ved å kjøre programmet fra Perl kommando-linjen med -d: DProf alternativet. Dette vil profilere programmet og utgang en tmon.out fil. Dette tmon.out filen vil være stor og uforståelig, men det er lett behandlet i en lesbar tilstand:
"perl -d:DProf test.pl"

3 Kjør profiler prosessor, ved hjelp av dprofpp (dprof pre-prosessor) kommando. Kommandoen vil produsere lesbar utgangssignal fra tmon.out fil. De mest interessante kolonnene er prosentandelen av tid brukt, antall ganger kalt og navnet på funksjonen. Her er noen eksempel utgang:
"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 Profilen din Perl programmer ved å identifisere optimalisering flekker. Funksjoner som tar mye tid eller er kalt et stort antall ganger er kandidater for optimalisering.

5 Optimaliser programmet. Hvis en funksjon som kalles en overdreven mengde ganger (hundrevis, tusenvis eller høyere), bør du vurdere å ta funksjonen kroppen og la ballen direkte i ringer koden. Selv om funksjonene ikke ta mye tid til å utføre, kaller funksjonen selv ta tid.

Hint

  • Hvis mesteparten av tiden blir brukt i noen få funksjoner, se til dem først. Prøv å minimere kostbare operasjoner som hash-oppslag for å gjøre det raskere.