http://www.perlmonks.org?node_id=1029638


in reply to Re: Compile Phase Time
in thread Compile Phase Time

Will this approach underestimate load times for modules later in the list when they share dependencies with modules earlier in the list?

Replies are listed 'Best First'.
Re^3: Compile Phase Time
by Anonymous Monk on Apr 20, 2013 at 14:05 UTC

    Yes, but it doesn't really matter , whole exercise is silly. This version won't, but it will fail at loading Moose twice (or after moo)

    #!/usr/bin/perl -- use strict; use warnings; use Module::Load ; use Time::HiRes qw/ time /; @ARGV or @ARGV = qw/ CGI B::Deparse DBI DBD::SQLite Moose Moo /; for my $mod( @ARGV ){ my $tb = time; { local $SIG{__WARN__} = sub{}; undef %INC; load( $mod ); } my $ta = time; printf "%.5f - %.5f = %.5f %s\n", $ta, $tb, $ta - $tb, $mod; } __END__ $ perl fudge Moose Moo CGI CGI CGI CGI 1366466283.45313 - 1366466282.70313 = 0.75000 Moose 1366466283.52620 - 1366466283.45344 = 0.07276 Moo 1366466283.63069 - 1366466283.52631 = 0.10438 CGI 1366466283.73354 - 1366466283.63081 = 0.10273 CGI 1366466283.83594 - 1366466283.73366 = 0.10228 CGI 1366466283.93854 - 1366466283.83606 = 0.10247 CGI
      Thank you folks for the valuable info. I really appreciate it.
      With every run this code returns a different result with the difference being between .1 - .2 s Any ideas why ?

        With every run this code returns a different result with the difference being between .1 - .2 s Any ideas why ?

        That is how stuff works, there is variability in everything -- the harddisk spins, sometimes it takes more time to read a file, sometimes less, sometimes its retrieved completely from cache ... think of timing a run/sprint/race with a finger-clicked-stopwatch -- sometimes you run faster, sometimes timer/coach fingers/thumbs slower -- its why runs are averaged, its like statistics or something :)