Thread RDW 2007/8 -- Aprilscherz (29 answers)
Opened by Ishka at 2007-04-01 15:41

betterworld
 2007-04-03 16:45
#75612 #75612
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Ich habe mal den Test abs($n)&1 gebenchmarkt.  Er ist von der Geschwindigkeit zwischen den anderen beiden Tests ($n&1 und $n%2).  Ausserdem sollte er auch auf Einserkomplementärmaschinen funktionieren.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
sub and_test    { $_[0] & 1      }
sub and_test2   { abs($_[0]) & 1 }
sub modulo_test { $_[0] % 2      }

cmpthese(
   20000000,
   {
       and_test    => sub { &and_test( $n ) },
       modulo_test => sub { &modulo_test( $n ) },
       and_test2   => sub { &and_test2( $n ) }
   }
);

                Rate modulo_test   and_test2    and_test
modulo_test 1242236/s          --         -9%        -20%
and_test2   1364256/s         10%          --        -12%
and_test    1546790/s         25%         13%          --

View full thread RDW 2007/8 -- Aprilscherz