概要
Python で実行速度比較を必要とする場合は結構あるが、その場合は「Benchmarker」を使うと便利。
ライセンスが「Public Domain」、Python 3 に対応で機能が多いのに使い易い。
インストール
easy_install を使う。
easy_install Benchmarker
使い方
使い方は結構簡単で最低限必要なのは以下だけ。
- Benchmarkerのインスタンスを生成
- withブロック内に測定対象コード記述
サンプル
「Benchmarker」にサンプルが結構書いてあるが、すこし変えた物を転載しておく。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from benchmarker import Benchmarker
def main():
s1, s2, s3, s4, s5 = '文字列', '結合', '速度の', '確認を', 'してみる'
loop = 1000 * 1000
with Benchmarker(width=20) as bm:
with bm('join'):
for _ in xrange(loop):
_ = ''.join((s1, s2, s3, s4, s5))
with bm('concat'):
for _ in xrange(loop):
_ = s1 + s2 + s3 + s4 + s5
with bm('format'):
for _ in xrange(loop):
_ = '%s%s%s%s%s' % (s1, s2, s3, s4, s5)
with bm('newformat'):
for _ in xrange(loop):
_ = '{}{}{}{}{}'.format(s1, s2, s3, s4, s5)
if __name__ == '__main__':
main()
まとめ
速度がどうしても必要な時、普段なにげなく利用しているライブラリ等を測定してみると、速度向上に有益な場合がある。
ただ、本当に速度が必要な場合、小手先の変更はあまり意味がない場合もあるので、ベンチマークの結果は参考程度にするのが良いだろう。