odd_1: 2 wallclock secs ( 1.70 usr + 0.00 sys = 1.70 CPU) @ 586854.46/s (n=1000000)
odd_2: 3 wallclock secs ( 1.67 usr + 0.00 sys = 1.67 CPU) @ 598086.12/s (n=1000000)
####
#!perl -w
use strict;
use Benchmark;
timethese( 1_000_000, {
odd_1 => sub { my $num = rand(2**31); return $num % 2 },
odd_2 => sub { my $num = rand(2**31); return $num & 2 },
})
__END__
Benchmark: timing 1000000 iterations of odd_1, odd_2...
odd_1: 3 wallclock secs ( 1.69 usr + 0.00 sys = 1.69 CPU) @ 592417.06/s
(n=1000000)
odd_2: 3 wallclock secs ( 1.69 usr + 0.00 sys = 1.69 CPU) @ 592417.06/s
(n=1000000)
####
>perl -MO=Deparse -we "$n=1231234;print $n % 2"
$n = 1231234;
print $n % 2;
-e syntax OK
>perl -MO=Deparse -we "$n=1231234;print $n & 1"
$n = 1231234;
print $n & 1;
-e syntax OK
>perl -MO=Deparse,-p -we "$n=1231234;print $n % 2"
($n = 1231234);
print(($n % 2));
-e syntax OK
>perl -MO=Deparse,-p -we "$n=1231234;print $n & 1"
($n = 1231234);
print(($n & 1));
-e syntax OK