プログラム内の処理にかかる時間を計測してみよう
プログラミングをやっていると、
「この処理ってどのくらい時間かかってるの?」
と思ったことがあるかと思います。
また処理の実行時間を測って、Aの処理とBの処理、どっちのほうが早いのか?
など確認したい時もあるかと思います。
そんな時に実行時間を計測する方法をピックアップして
まとめたいと思います。
まずはtime.time() を使ってみよう
例: 空のリスト(y)を準備して、100万個のデータをappendしてみよう
- time.time()の使い方
import time()
time.time()
これで今の時間を取得することができます。
- 実際やってみよう
import time #スタート時のシステム時間を入手 before = time.time() y = [] for i in range(1000000): y.append(i) #for文終了時のシステム時間を入手 after = time.time() t = after - before
結果:0.11580109596252441 s
time.perf_counter()を使ってみよう
先ほどと同じ例を使ってやってみよう。
- time.perf_counter()
import time()
time.perf_counter()
これで今の時間を取得することができます。
import time #スタート時のシステム時間を入手 before = time.perf_counter() y = [] for i in range(1000000): y.append(i) #for文終了時のシステム時間を入手 after = time.perf_counter() t = after - before
結果:0.11933905400007916 s
どちらを使った方がいいの?
より正確な時間を計測したいのであれば、
time.perf_counter()を使ったほうがいいそうです
(time.perf_counter()のほうがより正確なシステム時間を計測できるため)
ですが、大まかな処理の時間を知りたいだけであれば、
どちらを使っても大丈夫ではないかな。と思います。
(それより、複数回実行し平均値を取って比較したほうがいいかな?と思います)
<最終更新日:2021/09/01>
2021/09/01 投稿
if-else文での内包表記
昨日に引き続き、内包表記をまとめていきたいと思います。
↓昨日の記事(リストの内包表記)はこちら。
if-else文でも内包表記ができる?
if-else文の内包表記をやってみよう!
例:
以下のような条件のyの値を求めたいとする
y = x + 1 (x≧0)
y = -x + 1 (x<0)
- if-else文を使って書いてみよう。
例をif-else文で書くと以下のようになります。
if x >= 0: y = x + 1 else: y = -x + 1
- 内包表記を使って書いてみよう。
さきほどの例を内包表記を使って書いてみよう。
y = x + 1 if x >= 0 else -x + 1
どちらの方法でも結果は以下のようになります。
x = 1のとき y = 2
x = -2のとき y = 3
となります。
- 説明:
# [Trueの時の式 if 条件 else Falseの時の式] # Trueの時の式:x + 1 # 条件:x >= 0 # Falseの時の式:-x + 1 y = x + 1 if x >= 0 else -x + 1
<最終更新日:2021/08/31>
2021/08/31 投稿