Come profilo programmi Perl

April 12

Profiling programmi è un importante primo passo per l'ottimizzazione. Se si desidera che il programma di funzionare più velocemente, è necessario prima identificare quali funzioni sta prendendo più tempo e concentrare la vostra attenzione lì. Per fare questo, un programma Perl deve raccogliere e dettaglio le sue chiamate subroutine e le uscite, la creazione di un file che ha tutte le informazioni del profilo. Profiling del programma Perl vi dirà dove viene speso la maggior quantità di tempo.

istruzione

1 Raccogliere i dati di test, utilizzando grandi quantità di dati, quando possibile. Se il programma sta elaborando un sacco di dati, raccogliere alcuni dati scenario peggiore. Non ha senso per ottimizzare il vostro programma Perl per la migliore delle ipotesi o più piccola quantità di dati.

2 Eseguire il profiler eseguendo il programma dalla riga di comando Perl con il -d: opzione di DProf. Questo profilo del programma e l'uscita di un tmon.out file. Questo file tmon.out sarà grande e incomprensibile, ma è facilmente trasformato in uno stato leggibile:
"perl -d:DProf test.pl"

3 Eseguire il processore profiler, utilizzando il dprofpp (DProf pre-processore) di comando. Il comando produrrà in uscita leggibile dal file tmon.out. Le colonne più interessanti sono la percentuale di tempo trascorso, il numero di volte chiamato e il nome della funzione. Ecco alcuni esempi di output:
"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 Profilo vostri programmi Perl, individuando i punti di ottimizzazione. Le funzioni che richiedono molto tempo o sono chiamati un gran numero di volte sono candidati per l'ottimizzazione.

5 Ottimizza il tuo programma. Se una funzione viene chiamata una quantità eccessiva di volte (centinaia, migliaia o superiore), prendere in considerazione il corpo della funzione e metterlo direttamente nel codice chiamante. Anche se le funzioni non ha preso molto tempo per l'esecuzione, chiamate di funzione si richiedono tempo.

Consigli e avvertenze

  • Se la maggior parte del vostro tempo è stato speso in alcune funzioni, guardare a quelle prima. Cercare di ridurre al minimo le operazioni costose come le ricerche di hash per renderlo più veloce.