[Python] 文字連結のスピードテスト~Part2~
文字連結の速度計測@Python Part2
前回はただの文字列を連結する際に、+とjoinどちらが速いかを計測した。今回は、連結されている文字列が既にリスト化されていた場合、+とjoinどちらが早いかを調査する
実験環境
- Ubuntu 10.04.4
- Python 2.6.5
Code (combiningCharacters2.py)
+による文字連結と、既にリスト化された状態のjoinによる文字連結の実行速度を調査する#!/usr/local/bin/python # -*- coding: utf-8 -*- import timeit # ----------------------- # 文字結合の実行速度調査2 # ----------------------- # 計測用初期化ステートメント setup = """ egg = "。・゚・(ノД`)・゚・。" L = [egg,egg,egg,egg,egg,egg,egg,egg,egg,egg] """ # 各々の計測用ステートメント stmt_plus = "egg+egg+egg+egg+egg+egg+egg+egg+egg+egg" stmt_join = '"".join((L))' # 計測+結果 print "# --- +で文字連結 ---" print timeit.Timer(stmt_plus, setup).repeat(3, 1000000) print "\n# --- joinで文字連結 ---" print timeit.Timer(stmt_join, setup).repeat(3, 1000000)
結果
$ python combiningCharacters2.py# --- +で文字連結 ---
[0.66058087348937988, 0.65228986740112305, 0.6519010066986084]
# --- joinで文字連結 ---
[0.31189298629760742, 0.31206011772155762, 0.3119499683380127]
考察
リスト化された状態のjoinの方が速い!つまり、1回目の実験の時はリスト化するのにオーバーヘッドがかかってたってこと?!
単純につなぐなら+、リストか既にサれてたらjoinで今後は連結していこうと思います。
15:24:00
Python
[Python] 文字連結のスピードテスト
文字連結の速度計測@Python
実験環境
- Ubuntu 10.04.4
- Python 2.6.5
Code (combiningCharacters.py)
+による文字連結と、joinによる文字連結の実行速度を調査する#!/usr/local/bin/python # -*- coding: utf-8 -*- import timeit # ----------------------- # 文字結合の実行速度調査 # ----------------------- # 実行結果表示用初期化 egg = "。・゚・(ノД`)・゚・。" L = [] # 計測用初期化ステートメント setup = """ egg = "。・゚・(ノД`)・゚・。" L = [] """ # 各々の計測用ステートメント stmt_plus = "egg + egg" stmt_join = '"".join((egg,egg))' # 計測+結果 print "# --- +で文字連結 ---" print "実行結果:"+egg+egg print timeit.Timer(stmt_plus, setup).repeat(3, 1000000) print "\n# --- 毎回joinで文字連結 ---" print "実行結果:"+"".join((egg,egg)) print timeit.Timer(stmt_join, setup).repeat(3, 1000000)
結果
# --- +で文字連結 ---実行結果:。・゚・(ノД`)・゚・。。・゚・(ノД`)・゚・。
[0.065505027770996094, 0.063555002212524414, 0.063560962677001953]
# --- 毎回joinで文字連結 ---
実行結果:。・゚・(ノД`)・゚・。。・゚・(ノД`)・゚・。
[0.16806387901306152, 0.1678011417388916, 0.16774296760559082]
考察
+連結のほうが速いぽいですな(。・ω・。)
14:50:00
Python
登録:
投稿
(
Atom
)