Я использовал код Оливера Кроу (ссылка дана Эндрю Хэром) и немного его адаптировал для адаптации к Python 2.7.3. (используя пакет timeit). Я запускал на своем персональном компьютере Lenovo T61, 6 ГБ ОЗУ, Debian GNU / Linux 6.0.6 (squeeze).
Вот результат для 10 000 итераций:
method1: 0.0538418292999 secs
process size 4800 kb
method2: 0.22602891922 secs
process size 4960 kb
method3: 0.0605459213257 secs
process size 4980 kb
method4: 0.0544030666351 secs
process size 5536 kb
method5: 0.0551080703735 secs
process size 5272 kb
method6: 0.0542731285095 secs
process size 5512 kb
и для 5 000 000 итераций (метод 2 был проигнорирован, потому что он работал слишком медленно, как всегда):
method1: 5.88603997231 secs
process size 37976 kb
method3: 8.40748500824 secs
process size 38024 kb
method4: 7.96380496025 secs
process size 321968 kb
method5: 8.03666186333 secs
process size 71720 kb
method6: 6.68192911148 secs
process size 38240 kb
Совершенно очевидно, что ребята из Python проделали довольно большую работу по оптимизации объединения строк, и, как сказал Хоар: «преждевременная оптимизация - корень всего зла»: -)