in reply to Re^2: Benchmarks for module compilation time
in thread Benchmarks for module compilation time
Hm, it wouldn't be very hard to do this with Perl. I can think of two approaches: either invoke perl via system(), or use string-based eval.
The following can be used like:
# this_script.pl [--eval] [--perl /my/perl/interpreter] module module2 module3
use strict; use warnings; use Time::HiRes; use Benchmark ':hireswallclock',':all'; use Getopt::Long; my $PERL = 'C:\\Perl\bin\perl.exe'; my $use_eval = 0; GetOptions ( 'perl=s' => \$PERL, 'eval' => \$use_eval ); my %testhash = map { $_ => ( $use_eval ? "eval 'use $_'" : "system('$PERL', '-M$_ ', '-e +1')" ) } @ARGV; timethese( ($use_eval ? 10000 : 1000), \%testhash );
This one was created to work with ActiveState Perl on Windows. Pass the --perl parameter to use it on other platforms.
Update:itub confirms my suspicions that eval isn't as accurate a test as the system route. Thanks for the explanation of why, itub! It's worth noting that the system call is the default approach in the code above.
Updates:
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Perl port?
by itub (Priest) on Jul 25, 2005 at 20:09 UTC |