カテゴリ: Python 更新日: 2026/02/03

Pythonで経過時間を測る方法をやさしく解説!初心者向けtime.perf_counterとtime.sleepの使い方

Pythonで経過時間を計測する方法(time.perf_counter() / time.sleep())
Pythonで経過時間を計測する方法(time.perf_counter() / time.sleep())

先生と生徒の会話形式で理解しよう

生徒

「Pythonで処理にどのくらい時間がかかったかを調べたいんですけど、どうすればいいですか?」

先生

「Pythonではtime.perf_counter()という方法を使えば、正確に経過時間を測ることができますよ。」

生徒

perf_counterってなんだか難しそうな名前ですね…。初心者でも使えますか?」

先生

「大丈夫!基本の使い方を一緒に見ていきましょう。time.sleep()と組み合わせて覚えると分かりやすいですよ。」

-

1. 経過時間とは?なぜ測るの?

1. 経過時間とは?なぜ測るの?
1. 経過時間とは?なぜ測るの?

プログラミングにおける「経過時間」とは、特定の処理が始まってから完了するまでに費やした「正味の時間」を指します。料理に例えるなら、レシピの最初から最後までにかかった「調理時間」を測るようなものです。

なぜこの時間を測る必要があるのでしょうか?主な理由は3つあります。

  • プログラムの健康診断: 動作が重い原因(ボトルネック)を見つけ出し、スムーズに動くよう改善するため。
  • 効率の比較: Aの書き方とBの書き方、どちらが速く計算できるかを客観的に判断するため。
  • ユーザー体験の向上: 待ち時間が長すぎないかを確認し、快適なアプリを作るため。

初心者の方でもイメージしやすいよう、身近な「カップラーメンの待ち時間」をシミュレーションしたサンプルコードを見てみましょう。


import time

print("お湯を入れました。3分(3秒)待ちます...")

# 3秒間、プログラムを一時停止させて「待ち時間」を作ります
time.sleep(3)

print("3分(3秒)経ちました!完成です。")

このように、Pythonでは「ストップウォッチ」のボタンを押すように、プログラムの開始と終了のタイミングを記録することで、誰でも簡単に処理時間を計測できるようになります。

2. time.perf_counter()の基本的な使い方

2. time.perf_counter()の基本的な使い方
2. time.perf_counter()の基本的な使い方

time.perf_counter()は、Pythonで最も正確に時間を測るための関数です。「パフォーマンス・カウンター」とも呼ばれ、マイクロ秒単位(100万分の1秒)で測定できます。

たとえば、次のように使います。


import time

start = time.perf_counter()

# 測定したい処理
time.sleep(2)

end = time.perf_counter()

print("処理にかかった時間:", end - start, "秒")

処理にかかった時間: 2.000123456 秒

この例では、time.sleep(2)で2秒だけ待機している間の経過時間を測っています。

3. time.sleep()とは?待機の仕組みを知ろう

3. time.sleep()とは?待機の仕組みを知ろう
3. time.sleep()とは?待機の仕組みを知ろう

time.sleep()は、指定した時間だけプログラムの実行を一時停止する関数です。「スリープ」と読むとおり、パソコンが寝ているような状態になります。

たとえば、time.sleep(3)と書くと、3秒間だけ何もしない状態になります。


import time

print("処理を開始します")
time.sleep(3)
print("3秒経ちました")

処理を開始します
(3秒間なにも表示されない)
3秒経ちました

time.sleep()は、経過時間の確認テストや、ゆっくり表示したいときなどに便利です。

4. 実用的な経過時間の計測例

4. 実用的な経過時間の計測例
4. 実用的な経過時間の計測例

ここでは、for文でループ処理を行い、その全体の時間を計測する例を紹介します。


import time

start = time.perf_counter()

for i in range(5):
    print(f"{i + 1}回目の処理中...")
    time.sleep(1)

end = time.perf_counter()

print("合計の処理時間:", end - start, "秒")

1回目の処理中...
2回目の処理中...
3回目の処理中...
4回目の処理中...
5回目の処理中...
合計の処理時間: 5.001234 秒

このように、ループや長めの処理にかかる全体の時間も簡単に測定できます。

-

5. time.perf_counter()と他の時間関数の違い

5. time.perf_counter()と他の時間関数の違い
5. time.perf_counter()と他の時間関数の違い

Pythonには他にも時間を測る関数がいくつかあります。たとえばtime.time()time.process_time()などです。

  • time.time():現在の時刻(UNIX時間)を返す
  • time.process_time():CPUが処理に使った時間だけを測る(待機時間を含まない)
  • time.perf_counter():最も正確な経過時間を測る(オススメ

この中では、経過時間を測る用途にはtime.perf_counter()が最適です。

6. 実際の用途と注意点

6. 実際の用途と注意点
6. 実際の用途と注意点

経過時間の測定は、次のような場面でよく使われます:

  • プログラムの処理速度を調べたいとき
  • 処理が重い場所を見つけたいとき
  • 複数の方法で速度を比較したいとき

注意点として、パソコンの性能や実行環境によって多少の誤差が出ることがあります。繰り返し測定して平均をとると、より正確になります。

7. プログラミング未経験でもわかる応用例

7. プログラミング未経験でもわかる応用例
7. プログラミング未経験でもわかる応用例

最後に、簡単なミニゲームのような例を紹介します。自分が「Enter」キーを押すまでの反応速度を測るゲームです。


import time

input("Enterキーを押す準備ができたらEnterを押してください:")

start = time.perf_counter()
input("今すぐEnterキーを押してください!")
end = time.perf_counter()

print("反応時間は", round(end - start, 3), "秒でした!")

このように、time.perf_counter()は遊び感覚でも使えて、Pythonの面白さを感じられる便利な機能です。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
New1
PHP
PHPの多次元配列(ネスト配列)の使い方をやさしく解説!初心者向けガイド
New2
PHP
PHPの三項演算子とnull合体演算子の使い方をやさしく解説!初心者向け条件分岐テクニック
New3
PHP
PHPのmatch文をやさしく解説!初心者でもわかるPHP8の新機能
New4
Python
Pythonのデータ型完全ガイド!数値・文字列・リスト・辞書の違いを解説
-
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.2
Java&Spring記事人気No2
PHP
PHPでREST APIを作る方法を完全ガイド!初心者でもわかるAPI開発入門
No.3
Java&Spring記事人気No3
PHP
PHP のインストール方法(Windows・Mac・Linux)と開発環境
No.4
Java&Spring記事人気No4
Python
Pythonのコンストラクタ(__init__)の使い方を解説!初心者でもわかるオブジェクトの初期化
No.5
Java&Spring記事人気No5
Python
Pythonでファイルの更新日やサイズを取得する方法!初心者でもわかるos.stat()の使い方
No.6
Java&Spring記事人気No6
PHP
初心者向けにPHP でファイルを開く・読み込む・書き込む方法(fopen, fwrite, fread)を解説する記事
No.7
Java&Spring記事人気No7
PHP
PHP の可変変数と変数の参照渡しを完全解説!初心者でも理解できる動的変数の使い方
No.8
Java&Spring記事人気No8
Python
Pythonのクラスとは?初心者向けにわかるオブジェクト指向とインスタンス作成の基本
-
-