$ time ruby19 -e 's="";50000.times{s+="foobar"};' 4.58s user 9.03s system 99% cpu 13.650 total $ time ruby19 -e 's="";50000.times{s<<"foobar"};' 0.03s user 0.01s system 79% cpu 0.042 totalえーっと、連結スピードが325倍違います。 注意が必要なのは+=は単純な連結ではないことです。 a="foo" b=a となっているときに b<<"bar" とやるのと b+="bar" とやるのでは結果が違います。<<はaもbも文字列が追加されます。 +=は参照先が変更されてしまいますので、bしか追加されません。 結論 <<を使え cgi.rbでは使っているんだよなぁ。直すぞ。 追記 なんだかはてぶで理由も説明してやれ