@dzhariy:Benchmark: timing 10000000 iterations of Binary, Regex1, Regex2...
Binary: 5 wallclock secs ( 3.73 usr + 0.00 sys = 3.73 CPU) @ 2678093.20/s
(n=10000000)
Regex1: 10 wallclock secs ( 9.17 usr + 0.00 sys = 9.17 CPU) @ 1090274.75/s
(n=10000000)
Regex2: 9 wallclock secs ( 8.12 usr + 0.00 sys = 8.12 CPU) @ 1230920.73/s
(n=10000000)
code:
use Benchmark qw(:all);
$num = 2;
$count = 10000000;
timethese($count, {
'Binary' => sub { $pow = "some secret ;)"; },
'Regex1' => sub { $pow = ((sprintf ("%#b", $num) =~ '^0b10*$') or ($num == 0)); },
'Regex2' => sub { $pow = sprintf ("%b", $num) =~ ^1?0*$; },
});
#260797/14
from E545D6FE, 29 months ago