Benchmark: timing 5000 iterations of alt_1, alt_2, orig... alt_1: 3 wallclock secs ( 3.08 usr + 0.00 sys = 3.08 CPU) @ 1623.38/s (n=5000) alt_2: 2 wallclock secs ( 1.29 usr + 0.00 sys = 1.29 CPU) @ 3875.97/s (n=5000) orig: 1 wallclock secs ( 1.25 usr + 0.00 sys = 1.25 CPU) @ 4000.00/s (n=5000) Rate alt_1 alt_2 orig alt_1 1623/s -- -58% -59% alt_2 3876/s 139% -- -3% orig 4000/s 146% 3% --