Next Making Programs Faster 94

Getting the Wrong Answer as Quickly as Possible

     >> Would this improve performance?
     > 
     > Write a benchmark and see.
     Well alright :-)
     #!/usr/bin/perl -w
     #test.pl
     use strict;
     use Benchmark;
     undef $/;
     my $code;
     timethese(8000, {
          'Slow Eval' => sub {open(INPUT, 'code.pl');$code = 
     <INPUT>;close(INPUT);eval $code;},
          'Fast Eval' => sub {open(INPUT, 'code.pl');$code = 
     <INPUT>;close(INPUT);eval {$code;};}
     });
     Results:
     Benchmark: timing 8000 iterations of Fast Eval, Slow Eval...
       Fast Eval:  0 wallclock secs 
                ( 0.30 usr +  0.13 sys =  0.43 CPU)
       Slow Eval:  6 wallclock secs
                ( 4.98 usr +  0.42 sys =  5.40 CPU)
     So apparently an eval block is significantly faster than
     calling eval() on a scalar.

Next Copyright © 2003 M. J. Dominus