[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で今後は連結していこうと思います。
登録:
コメントの投稿
(
Atom
)
0 件のコメント :
コメントを投稿