First, I think I made a mistake with my benchmark code; for loops are faster than while loops in Ruby most of the time. Oops.
Second, I've never really bothered with using a profiler until recently and it's probably not a good thing. I say that because now I sit and try and optimize the largest relative bottleneck, no matter what the absolute time is.
So here I sit, saying stuff like, ".34 seconds? Too slow! I *know* I can drop it under .30 seconds if I work at it!".
I need help.