Benchmark: timing 1000 iterations of Way1A, Way2A, Way2B, Way3A, Way4A, Way4B, Way5A, Way5B, Way6A... Way1A: 52 wallclock secs ( 1.46 usr + 0.28 sys = 1.74 CPU) @ 574.05/s (n=1000) Way2A: 30 wallclock secs ( 1.17 usr + 0.17 sys = 1.34 CPU) @ 745.16/s (n=1000) Way2B: 30 wallclock secs ( 1.31 usr + 0.18 sys = 1.49 CPU) @ 669.79/s (n=1000) Way3A: 47 wallclock secs ( 1.02 usr + 0.22 sys = 1.24 CPU) @ 805.80/s (n=1000) Way4A: 30 wallclock secs ( 1.31 usr + 0.18 sys = 1.49 CPU) @ 670.24/s (n=1000) Way4B: 29 wallclock secs ( 1.14 usr + 0.20 sys = 1.34 CPU) @ 744.60/s (n=1000) Way5A: 29 wallclock secs ( 1.16 usr + 0.12 sys = 1.28 CPU) @ 780.03/s (n=1000) Way5B: 25 wallclock secs ( 0.92 usr + 0.18 sys = 1.10 CPU) @ 908.27/s (n=1000) Way6A: 53 wallclock secs ( 1.30 usr + 0.27 sys = 1.57 CPU) @ 636.13/s (n=1000) Rate Way1A Way6A Way2B Way4A Way4B Way2A Way5A Way3A Way5B Way1A 574/s -- -10% -14% -14% -23% -23% -26% -29% -37% Way6A 636/s 11% -- -5% -5% -15% -15% -18% -21% -30% Way2B 670/s 17% 5% -- -0% -10% -10% -14% -17% -26% Way4A 670/s 17% 5% 0% -- -10% -10% -14% -17% -26% Way4B 745/s 30% 17% 11% 11% -- -0% -5% -8% -18% Way2A 745/s 30% 17% 11% 11% 0% -- -4% -8% -18% Way5A 780/s 36% 23% 16% 16% 5% 5% -- -3% -14% Way3A 806/s 40% 27% 20% 20% 8% 8% 3% -- -11% Way5B 908/s 58% 43% 36% 36% 22% 22% 16% 13% --