Benchmark: timing 1000 iterations of Way1A, Way2A, Way2B, Way3A, Way4A, Way4B, Way5A, Way5B, Way6A... Way1A: 32 wallclock secs ( 0.93 usr + 0.18 sys = 1.11 CPU) @ 899.28/s (n=1000) Way2A: 12 wallclock secs ( 1.27 usr + 0.19 sys = 1.46 CPU) @ 684.46/s (n=1000) Way2B: 13 wallclock secs ( 1.18 usr + 0.12 sys = 1.30 CPU) @ 768.05/s (n=1000) Way3A: 26 wallclock secs ( 1.00 usr + 0.23 sys = 1.23 CPU) @ 811.03/s (n=1000) Way4A: 16 wallclock secs ( 1.36 usr + 0.16 sys = 1.52 CPU) @ 657.03/s (n=1000) Way4B: 13 wallclock secs ( 1.30 usr + 0.14 sys = 1.44 CPU) @ 693.48/s (n=1000) Way5A: 13 wallclock secs ( 0.92 usr + 0.14 sys = 1.06 CPU) @ 942.51/s (n=1000) Way5B: 7 wallclock secs ( 0.90 usr + 0.17 sys = 1.07 CPU) @ 932.84/s (n=1000) Way6A: 8 wallclock secs ( 1.09 usr + 0.23 sys = 1.32 CPU) @ 756.43/s (n=1000) Rate Way4A Way2A Way4B Way6A Way2B Way3A Way1A Way5B Way5A Way4A 657/s -- -4% -5% -13% -14% -19% -27% -30% -30% Way2A 684/s 4% -- -1% -10% -11% -16% -24% -27% -27% Way4B 693/s 6% 1% -- -8% -10% -14% -23% -26% -26% Way6A 756/s 15% 11% 9% -- -2% -7% -16% -19% -20% Way2B 768/s 17% 12% 11% 2% -- -5% -15% -18% -19% Way3A 811/s 23% 18% 17% 7% 6% -- -10% -13% -14% Way1A 899/s 37% 31% 30% 19% 17% 11% -- -4% -5% Way5B 933/s 42% 36% 35% 23% 21% 15% 4% -- -1% Way5A 943/s 43% 38% 36% 25% 23% 16% 5% 1% --