I don't know if this actually performs a valid comparison, but:
use warnings;
use strict;
use Benchmark qw(timethese);
use Module::Load;
BEGIN {
timethese(
1000000000,
{
my_use => sub {
use Data::Dumper;
},
my_check => sub {
load Data::Dumper if ! $Data::Dumper::VERSION;
}
}
);
}
Output:
perl bench_use.pl
Benchmark: timing 1000000000 iterations of my_check, my_use...
my_check: 24 wallclock secs (27.21 usr + -0.09 sys = 27.12 CPU) @ 36
+873156.34/s (n=1000000000)
my_use: -3 wallclock secs ( 0.92 usr + 0.33 sys = 1.25 CPU) @ 800
+000000.00/s (n=1000000000)
|