Pythonで経過時間を計測する方法を完全解説!初心者でもわかる time.perf_counter() と time.sleep()
生徒
「Pythonでプログラムがどれくらい時間かかったかを調べる方法ってありますか?」
先生
「ありますよ。Pythonには時間を計測するための便利な仕組みが用意されています。」
生徒
「パソコンをほとんど触ったことがなくても使えますか?」
先生
「もちろんです。時計を見る感覚で考えれば大丈夫です。一緒にゆっくり見ていきましょう。」
1. Pythonで経過時間を計測するとは?
Pythonで経過時間を計測するとは、「処理の開始から終了までに、どれくらい時間がかかったか」を調べることです。 たとえば、料理で言うと、ストップウォッチで調理時間を測るイメージです。 プログラミングでは、処理が速いか遅いかを知るために、経過時間の計測がとても重要です。 Python 初心者の方でも、時間計測を知っておくと、プログラムの動きが目に見えるようになります。
2. timeモジュールとは?
Pythonには「モジュール」という便利な道具箱があります。
timeモジュールは、時間に関する機能がまとめられた道具箱です。
モジュールとは、よく使う機能をひとまとめにした部品のようなものです。
時間を計測したり、処理を一時的に止めたりするときに使います。
import time
この1行を書くことで、timeモジュールが使えるようになります。
3. time.perf_counter()で正確な経過時間を測ろう
time.perf_counter()は、Pythonで経過時間を測るときによく使われる方法です。
とても精度が高く、ストップウォッチのように正確な時間を測れます。
「perf」は「performance(性能)」の略で、細かい時間の差を測るための関数です。
import time
start = time.perf_counter()
end = time.perf_counter()
print(end - start)
これは、開始時間と終了時間を記録し、その差を表示するシンプルな例です。
4. 処理を入れて経過時間を測ってみよう
実際に何か処理を入れてみると、経過時間がわかりやすくなります。 ここでは、数字を数えるだけの簡単な処理を使います。
import time
start = time.perf_counter()
for i in range(1000000):
pass
end = time.perf_counter()
print("経過時間:", end - start)
経過時間: 0.05
このように、プログラムが動いていた時間を数字で確認できます。
5. time.sleep()で処理を止める方法
time.sleep()は、プログラムの動きを一時的に止めるための機能です。
電子レンジの「◯分待つ」ボタンのようなイメージです。
数字は「秒」を表していて、指定した秒数だけ処理が止まります。
import time
print("開始")
time.sleep(3)
print("終了")
開始
(3秒待つ)
終了
6. time.sleep()とperf_counter()を組み合わせる
time.sleep()で止めた時間も、経過時間として計測できます。 これにより、「本当に指定した秒数止まっているか」を確認できます。
import time
start = time.perf_counter()
time.sleep(2)
end = time.perf_counter()
print("経過時間:", end - start)
表示される数値は、おおよそ2秒になります。
7. 初心者がつまずきやすいポイント
初心者の方がよく混乱するのは、「秒」という単位です。 time.sleep(1)は1秒、time.sleep(0.5)は0.5秒です。 小数点を使えるので、細かい時間調整もできます。 また、time.perf_counter()は「現在時刻」ではなく「経過時間用」だと覚えておくと安心です。
8. Pythonで時間計測を学ぶメリット
Pythonで経過時間を計測できるようになると、プログラムの速さを比べたり、 待ち時間のある処理を作ったりできます。 ゲーム、業務自動化、データ処理など、さまざまな場面で役立ちます。 パソコン初心者の方でも、時計を見る感覚で理解できるのが大きな特徴です。
まとめ
Pythonで経過時間を計測する重要性と基本の振り返り
本記事では、Pythonで経過時間を計測する方法として、timeモジュールの基本からtime.perf_counterとtime.sleepの使い方までを初心者向けにわかりやすく解説してきました。Pythonの時間計測は、プログラムの処理速度を把握するために欠かせない重要な技術であり、実務でも頻繁に利用されます。特に、処理の最適化やパフォーマンス改善を行う際には、正確な経過時間の測定が必要になります。
Python初心者の方にとっては、時間計測という言葉は難しく感じるかもしれませんが、実際にはストップウォッチのように「開始」と「終了」の差を求めるだけのシンプルな考え方です。この基本を理解することで、プログラムの動きを数値として確認できるようになり、より深い理解につながります。
time.perf_counterとtime.sleepの使い分け
Pythonで経過時間を計測する際に重要なのが、time.perf_counterの存在です。この関数は高精度な時間を取得できるため、処理時間の測定に最適です。一方で、time.sleepは処理を一定時間停止させるために使用されます。これらを組み合わせることで、処理の待ち時間や実行時間を正確に確認できます。
time.perf_counterは「計測するための道具」、time.sleepは「待つための道具」として使い分けることで、Pythonの時間制御をより効率的に行うことができます。初心者の方は、この二つの役割をしっかり区別することが重要です。
サンプルプログラムで理解する時間計測の応用
次に、実務でも役立つ形として、複数の処理の時間を比較するサンプルコードを紹介します。これにより、どの処理が速いのかを判断できるようになります。
import time
def process_a():
for i in range(500000):
pass
def process_b():
for i in range(1000000):
pass
start_a = time.perf_counter()
process_a()
end_a = time.perf_counter()
start_b = time.perf_counter()
process_b()
end_b = time.perf_counter()
print("処理Aの時間:", end_a - start_a)
print("処理Bの時間:", end_b - start_b)
このように複数の処理を比較することで、どの部分が遅いのかを見つけることができます。Pythonの時間計測は、単なる確認だけでなく、プログラム改善のヒントにもなります。
初心者が理解しておくべき時間計測のポイント
Pythonの時間計測で大切なのは、秒という単位の理解と、処理の流れを意識することです。time.sleepでは秒単位で停止するため、数値の意味を正しく理解することが重要です。また、perf_counterは現在時刻ではなく、経過時間の計測に適した関数である点も押さえておく必要があります。
初心者の方は、まずは短いコードで実際に動かしてみることをおすすめします。体験しながら学ぶことで、時間の流れとプログラムの動きが結びつきやすくなります。
Python時間計測の活用シーンとメリット
Pythonで経過時間を計測できるようになると、さまざまな場面で役立ちます。例えば、データ処理の速度比較、アルゴリズムの性能検証、ゲームやアニメーションの待ち時間制御など、多くの分野で応用可能です。
また、処理時間を意識することで、無駄な処理を減らし、効率の良いプログラムを書く力が身につきます。これは実務開発において非常に重要なスキルであり、初心者のうちから意識しておくことで大きな差につながります。
Pythonのtimeモジュールはシンプルでありながら非常に強力な機能を持っています。今回学んだtime.perf_counterとtime.sleepを活用することで、プログラムの動きをコントロールし、より高度な処理へとステップアップすることができます。
生徒
「Pythonで時間を測るのって難しそうだと思っていましたが、意外とシンプルなんですね。」
先生
「はい。基本は開始と終了の差を見るだけなので、とても分かりやすい仕組みです。」
生徒
「time.sleepとperf_counterの違いも理解できました。」
先生
「それは良いですね。用途に応じて使い分けることが大切です。」
生徒
「これからは処理の速さも意識してプログラムを書いてみます。」
先生
「とても良い姿勢です。時間計測ができるようになると、プログラムの質が一段と上がりますよ。」