Assemblare i dati di test , utilizzando i file di dati di grandi dimensioni , quando possibile. Se il programma sta elaborando un sacco di dati , assemblare alcuni dati scenario peggiore . Non ha senso per ottimizzare il vostro programma Perl per il migliore dei casi o più piccola quantità di dati
2
Eseguire il profiler eseguendo il programma da riga di comando con il Perl - d : . Opzione DProf . In questo modo il profilo del programma e l'output di un file tmon.out . 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 comando ( DProf pre - processore) . Il comando produrrà output 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 un output di esempio : "C : \\ progetti \\ Perl > dprofppTotal tempo trascorso = 0.377622 secondi utenti + System Time = 0,345622 SecondsExclusive Volte % Tempo ExclSec CumulS # chiamate sec /call CSEC /c Nome 79,5 0,275 0,269 1 0,2752 0,2694 File :: Trova :: _find_dir 13,6 0,047 0,063 2 0,0235 0,0313 principale :: 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 0,0050 0,0050 3 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 prendono un sacco di tempo o sono chiamati un gran numero di volte sono candidati per l'ottimizzazione.
5
Ottimizzate il vostro programma . Se una funzione viene chiamata una quantità eccessiva di volte ( centinaia, migliaia o superiore) , in considerazione di prendere il corpo della funzione e metterlo direttamente nel codice chiamante . Anche se le funzioni non hanno preso molto tempo per eseguire, chiamate di funzione si prendono tempo .
Programmazione © www.354353.com