@dan rathbun said:
ADD: For some reason, for .. in loops are faster than each block methods.
They may be faster - because they don't create a local variable scope - the scope is shared with it's parent scope. Creating variables in Ruby is an expensive operation, so if you create variables within an each loop it's created every time, within a for loop it's reused.