in reply to Benchmarking modules

I don't know how accurate this is or exactly what it's measuring but the results suggest something useful is happening.
#!perl use Benchmark; $count = shift || die "Need a count!\n"; sub one { eval("use CGI;")} sub two { eval("use CGI ':cgi';")} sub three { eval("use CGI ':all';")} timethese ( $count,{ 'Method 1' => '&one', 'Method 2' => '&two', 'Method 3' => '&three', } ); exit;
Results:

Benchmark: timing 500 iterations of Method 0, Method 1, Method 2, Method 3...

Method 1: 0 wallclock secs (0.33 usr + 0.00 sys = 0.33 CPU) @ 1515.15/s (n=500)
Method 2: 2 wallclock secs (1.87 usr + 0.00 sys = 1.87 CPU) @ 267.38/s (n=500)
Method 3: 6 wallclock secs (5.55 usr + 0.00 sys = 5.55 CPU) @ 90.09/s (n=500)

Reference: Benchmarking Your Code.

Replies are listed 'Best First'.
Re (tilly) 2: Benchmarking modules
by tilly (Archbishop) on Mar 27, 2001 at 06:02 UTC
    use first does a require and then import at compile time. Through an eval you are making that a run-time affair to benchmark. Once the file has been loaded then require is essentially free. Therefore you are actually benchmarking how fast import is.

    That timing is more important for mod_perl using Apache::Registry than it is for CGI.