Pythonの文字列連結の実行速度


表題の文字列連結の実行速度についてですが、以下の2つの処理ではかなり実行速度が違います。

(1) 低速

data = [0x40 for i in range(100000)]
s = reduce(lambda a, b: a + b, map(lambda c: chr(c), data))

(2) 高速

data = [0x40 for i in range(100000)]
s = ''.join(map(lambda c: chr(c), data))

今まではreduceは結構高速に処理できる。。。と思っていたんですが、
そうでもないという結果にすこし戸惑いぎみです。
reduce()の使いどころを判断する基準をどうしたものか。。

文字列を連結するときには、reduce()ではなくてjoin()を使うということでいいものか。。
悩みます。

ちなみに、Googleで検索したところ、処理速度の差を調べた以下のようなサイトがありました。

Efficient String Concatenation in Python
http://www.skymind.com/~ocrow/python_string/