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の方が早いという結果になりました。

カテゴリ: Python

データサイエンティストを募集しています AVILEN採用サイトへ

関連サービス

講座一覧ページ

記事一覧はこちら

無料で統計学を学ぶ

AVILEN 採用情報

データサイエンティストを募集しています AVILEN採用サイトへ