2018/02/01
2020/04/14
Python3でプログラムの処理速度を計測する方法
Python3でプログラムの処理時間を計測する方法をご紹介いたします。
実行環境
パソコン:MacBook Pro 13-inch,2 GHz Intel Core i5,メモリ8 GB 1867 MHz LPDDR3
Rのバージョン:R 3.3.2
Pythonのバージョン:Python 3.6.2
終了時刻から開始時刻を引く
プログラムが動いてる時間なので、単純なアルゴリズムですが、
処理時間 = 終了時刻-開始時刻
とします。これはtimeモジュールを用いて以下のように書きます。
import time #timeモジュールのインポート stratTime = time.time() #プログラムの開始時刻 #処理 j = 0 for i in range(10000000): j += i endTime = time.time() #プログラムの終了時刻 runTime = endTime - stratTime #処理時間 print(runTime) #処理時間を表示
結果は、1.553696870803833秒でした。
プログラム内のtime.time()ですが、これはエポック秒を返す処理を行います。
全く同じ処理をR言語でやってみる
蛇足にはなりますが、R言語でも全く同じ処理をして時間を計測してみました。以下がそのプログラムになります。
startTime = Sys.time() #開始時刻 #処理 j = 0 for(i in 1:10000000) { j = j + i } endTime = Sys.time() #終了時刻 print(endTime - startTime) #処理時間
結果は、2.787826秒。Pythonの約2倍の時間がかかります。
また、R言語では、system.time()という実行速度を計測する関数があります。
system.time({ j = 0 for(i in 1:10000000){ j = j + i } }) #結果 # ユーザ システム 経過 # 2.792 0.008 2.795
こちらも単位は秒。2.795秒という結果になりました。私のPCでは、Python3の方が早いという結果になりました。
(totalcount 14,159 回, dailycount 10回 , overallcount 16,630,877 回)
Recommended