Python のタイマー関数
-
Python での
time.time()
関数の使用 -
Python での
time.Process_time()
関数の使用 -
Python での
time.Perf_counter
関数の使用 -
Python での
time.monotonic()
関数の使用
Python は非常に広大なプログラミング言語であり、世界中で非常に多く使用されています。プログラマーは、かなりの量の Python コード行を必要とする多数のプログラムを作成します。実行時間に基づいてこれらのコードを監視および分析するために、Python タイマー関数を使用できます。
time
モジュールは、時間をチェックして分析するのに役立つすべての機能が含まれているため、ここで最も重要です。
このチュートリアルでは、time モジュールを使用してさまざまな Python タイマー関数について説明します。
Python での time.time()
関数の使用
この関数は時間を秒単位で返します。これは、エポックから経過した秒数です。1970 年 1 月 1 日 00:00:00(UTC)です。この関数は、コンピュータシステムの時間セットを使用して、出力、つまり秒数を返します。
例:
import time
start = time.time()
for r in range(1, 20000):
pass
end = time.time()
print(format(end - start))
start
と end
の間に、コードの本体があります。ここでは、for
ループを例として取り上げます。
出力:
3.252345085144043
出力、つまり秒は浮動小数点値であることに注意してください。
Python での time.Process_time()
関数の使用
この関数は、時間を小数秒で返します。プロセス全体の時間参照も、プロセス中に経過した時間だけでなく、関数に記録されます。
例:
from time import process_time, sleep
start = process_time()
for r in range(20):
print(r, end=" ")
end = process_time()
print(end, start)
print(end - start)
出力:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 10.756645 10.75523
0.0014150000000014984
time.sleep()
でかかった時間はこの関数では測定されません。つまり、2つの連続する時間参照の時間差のみを測定します。
Python での time.Perf_counter
関数の使用
パフォーマンスカウンターとも呼ばれるこの関数は、2つの参照間の時間カウントをより正確に取得するのに役立ちます。この関数は非常に正確であるため、小さなプロセスにのみ適用する必要があります。
この関数の間に time.sleep()
を使用することもできます。この機能により、コードの実行を数秒間中断することができます。sleep()
関数は引数として float 値を取ります。
例:
from time import perf_counter, sleep
n = 10
start = perf_counter()
for r in range(n):
sleep(2)
end = perf_counter()
print(end - start)
出力:
20.03540569800043
戻り値は、経過した合計時間を示します。sleep
関数が 2 に設定されているため、入力値が 10 のプロセス全体を完了するのに 20.035 秒かかりました。
Python での time.monotonic()
関数の使用
ユーザーが Python コードの実行中に時間を変更すると、Python でタイマー関数を実装するときに大きな違いが生じる可能性があります。この状況では、単調タイマー機能により、ユーザーが外部から行った変更に応じて時間参照が適応するようになります。
例:
from time import monotonic, sleep
n = 10
start = monotonic()
for r in range(n):
sleep(2)
end = monotonic()
print(end - start)
出力:
20.029595676999634
開始参照と終了参照により、プログラムはユーザーが行った変更に確実に適応します。
Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.
LinkedIn