Benchmark: timing 5000 iterations of Way1A, Way2A, Way2B, Way3A, Way4A, Way4B, Way5A, Way5B, Way6A... Way1A: 43 wallclock secs ( 5.12 usr + 1.03 sys = 6.15 CPU) @ 813.14/s (n=5000) Way2A: 34 wallclock secs ( 6.04 usr + 0.84 sys = 6.88 CPU) @ 726.85/s (n=5000) Way2B: 38 wallclock secs ( 6.22 usr + 0.66 sys = 6.88 CPU) @ 726.74/s (n=5000) Way3A: 46 wallclock secs ( 5.35 usr + 1.20 sys = 6.55 CPU) @ 763.36/s (n=5000) Way4A: 34 wallclock secs ( 6.29 usr + 0.59 sys = 6.88 CPU) @ 726.74/s (n=5000) Way4B: 35 wallclock secs ( 6.15 usr + 0.71 sys = 6.86 CPU) @ 728.86/s (n=5000) Way5A: 33 wallclock secs ( 4.88 usr + 0.62 sys = 5.50 CPU) @ 909.42/s (n=5000) Way5B: 31 wallclock secs ( 4.76 usr + 0.72 sys = 5.48 CPU) @ 912.74/s (n=5000) Way6A: 46 wallclock secs ( 5.52 usr + 1.17 sys = 6.69 CPU) @ 747.38/s (n=5000) Rate Way2B Way4A Way2A Way4B Way6A Way3A Way1A Way5A Way5B Way2B 727/s -- -0% -0% -0% -3% -5% -11% -20% -20% Way4A 727/s 0% -- -0% -0% -3% -5% -11% -20% -20% Way2A 727/s 0% 0% -- -0% -3% -5% -11% -20% -20% Way4B 729/s 0% 0% 0% -- -2% -5% -10% -20% -20% Way6A 747/s 3% 3% 3% 3% -- -2% -8% -18% -18% Way3A 763/s 5% 5% 5% 5% 2% -- -6% -16% -16% Way1A 813/s 12% 12% 12% 12% 9% 7% -- -11% -11% Way5A 909/s 25% 25% 25% 25% 22% 19% 12% -- -0% Way5B 913/s 26% 26% 26% 25% 22% 20% 12% 0% --