On Wed, 10 Jan 2007, Gavin Kistner wrote: > From: Vincent Fourmond >> user system total real >> 0.010000 0.000000 0.010000 ( 0.009087) >> 0.010000 0.000000 0.010000 ( 0.008774) >> 0.000000 0.000000 0.000000 ( 0.004621) > > Perhaps your machine is more deterministic than mine, but successive > runs of that benchmark (and using #bmbm to be safer about the > measurement) sometimes show 'a' faster than "a", sometimes slower. > > Even with benchmarking, I wouldn't trust that answers that are within a > few percent of each other. And I certainly wouldn't rush off to refactor > code because of it. Increase n from 5000 to 500000 or 5000000. To understand the difference, just think about how many strings are being created with each. 'a' creates a new string, as does 'b'. The + operation creates a new string, as well. So, there's a lot of new string creation happening with either of the + examples. Change the +'s to << and you will see a difference. 'a' << x << 'b' << just changes the old String. The "a#{x}b" example does the least work. Kirk Haines