-+  Associazione
-+  Documenti
 |-  Modern Perl
 |-  Bibliografia
 |-  Articoli
 |-  Talk
 |-  Perlfunc
 |-  F.A.Q.
 |-  F.A.Q. iclp
-+  Eventi
-+  Community
-+  Blog
-+  Link
Corso di Perl



 


indietro

[6] Come effettuo il profiling dei miei programmi Perl?

Dovreste procurarvi il modulo Devel::DProf (disponibile nella distribuzione standard, o separatamente su CPAN) e usare Benchmark.pm della distribuzione standard. Il modulo Benchmark consente di misurare la velocità di porzioni specifiche del vostro codice, mentre Devel::DProf fornisce una classifica dettagliata dei punti in cui il codice spende il suo tempo.

Ecco un esempio d'uso di Benchmark:

  use Benchmark;
  @robaccia   = `cat /etc/motd`;
  $iterazioni = 10_000;
  timethese($iterazioni, {
            'map' => sub { my @a = @robaccia;
               map { s/a/b/ } @a;
               return @a
             },
            'for' => sub { my @a = @robaccia;
               local $_;
               for (@a) { s/a/b/ };
               return @a },
           });

Ed ecco quello che stampa (su un certo calcolatore -- i risultati dipenderanno dal vostro hardware, dal sistema operativo, e dal carico di lavoro del vostro computer):

  Benchmark: timing 10000 iterations of for, map...
         for:  4 secs ( 3.97 usr  0.01 sys =  3.98 cpu)
         map:  6 secs ( 4.97 usr  0.00 sys =  4.97 cpu)

Siate consapevoli del fatto che un buon benchmark è molto difficile da scrivere. Esso si limita a controllare i dati che gli passate e dimostra poco della differente complessità degli algoritmi a confronto.

vedi in inglese

AUTORE E COPYRIGHT

Copyright (c) 1997, 1998, 1999, 2000, 2001 Tom Christiansen e Nathan Torkington. Tutti i diritti riservati.

Questa documentazione è libera; puoi ridistribuirla e/o modificarla secondo gli stessi termini applicati al Perl.

Indipendentemente dalle modalitè di distribuzione, tutti gli esempi di codice in questo file sono rilasciati al pubblico dominio. Potete, e siete incoraggiati a farlo, utilizzare il presente codice o qualunque forma derivata da esso nei vostri programmi per divertimento o per profitto. Un semplice commento nel codice che dia riconoscimento alle FAQ sarebbe cortese ma non è obbligatorio.

D:
Progetti e documenti in rilievo
Corso di Perl Progetto pod2it
D:
La ML di Perl.it
mongers@perl.it è la lista ufficiale di Perl Mongers Italia per porre quesiti di tipo tecnico, per rimanere aggiornato su meeting, incontri, manifestazioni e novità su Perl.it.
Iscriviti!
D:
Annunci Google