3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Python の時間計測便利ツール

Last updated at Posted at 2019-06-27

Motivation

python であるメソッドとか処理の一部分とかを計測するのに、毎回

start = time.time()
some_process()
end = time.time()
print('process time = {} [sec]'.format(end - start))

とかってしてたんだけど、いい加減面倒になってきたのでデコレータ作って

@stop_watch
def some_process(...):
    ...

ってしたり、__enter____exit__ を実装したクラス作って withステートメントで

with TimeMeasure():
    ...

ってしたいなぁーって思ってた。
まぁそれ自体はすぐできて、せっかくだから公開しようかなーって思ったところで、lauda というツールを見つけた。github にソースがあったので、覗いてみたら自分で実装したものとほとんど同じだったので、そちらのツールを使うことにした。

Installation

$ pip install lauda

How to Use

使い方は大きくわけて decorator でメソッドをラップするか、withステートメントで囲うかの 2通り。

Decorator

stopwatch をインポートして、デコレーションするだけ。

from lauda import stopwatch

@stopwatch
def some_process():
    ...

ちなみに callback を引数に取るので、次のように表示を変更したりできる。

import time
from lauda import stopwatch


def print_fn(watch, function):
    print ('{0}秒もかかっちゃった'.format(watch.elapsed_time))


@stopwatch(callback=print_fn)
def some_process():
    time.sleep(1)


some_process()
# => 1.0046770572662354秒もかかっちゃった

With statement

こちらは with で対象部分を囲うだけ。

from lauda import stopwatchcm

with stopwatchcm():
    some_process()

Conclusion

世の中には便利ツールがたくさん埋もれている。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?