or download this
Benchmark: timing 1000000 iterations of p1, p2, p3, p4, p5, p6, p7...
p1: 61 wallclock secs (45.42 usr + 0.16 sys = 45.58 CPU)
p2: 45 wallclock secs (35.92 usr + 0.11 sys = 36.03 CPU)
...
p5: 58 wallclock secs (46.11 usr + 0.14 sys = 46.25 CPU)
p6: 55 wallclock secs (43.51 usr + 0.15 sys = 43.66 CPU)
p7: 85 wallclock secs (68.11 usr + 0.22 sys = 68.33 CPU)