カテゴリ: Python 更新日: 2026/04/27

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()の基本的な使い方

Pythonでプログラムの実行速度を精密に計測したいとき、最も推奨されるのがtime.perf_counter()です。この関数は「高精度なタイマー」として設計されており、システムの動作状況に左右されにくい、非常に安定した数値を返してくれます。

特にプログラミング初心者の方にとって、「自分の書いたコードが何秒で動いているのか」を可視化することは、効率的なコードを書くための第一歩になります。まずは、以下のシンプルなサンプルコードで、時間の測り方の基本形を覚えてしまいましょう。


import time

# 1. 計測開始時の時間を記録する
start_time = time.perf_counter()

# --- ここに計測したい処理を書く ---
print("ただいま計測中です...")
time.sleep(2) # 2秒間だけ処理を一時停止させます
# ------------------------------

# 2. 処理が終わった時の時間を記録する
end_time = time.perf_counter()

# 3. 「終わりの時間」から「始まりの時間」を引いて、かかった時間を計算
elapsed_time = end_time - start_time

print(f"処理にかかった時間: {elapsed_time}秒")

ただいま計測中です...
処理にかかった時間: 2.000123456秒

使い方はとても簡単で、「測りたい処理を startend で挟むだけ」です。time.perf_counter()が返す値は、特定の時点からの経過時間(秒)ですので、その差分を出すことで正確な実行時間がわかります。

この関数はマイクロ秒単位(100万分の1秒)という非常に細かい精度で計測できるため、一瞬で終わるような計算処理のスピードを比較する際にも非常に役立ちます。まずはこの「挟んで引く」という形をテンプレートとして活用してみてください。

3. time.sleep()とは?プログラムを一時停止させる仕組み

3. time.sleep()とは?プログラムを一時停止させる仕組み
3. time.sleep()とは?プログラムを一時停止させる仕組み

Pythonで「処理を少しだけ待ちたい」「一定の間隔を空けて実行したい」という時に欠かせないのがtime.sleep()関数です。この関数を使うと、指定した秒数だけプログラムの動きをピタッと止めることができます。

イメージとしては、目覚まし時計をセットするようなものです。例えばtime.sleep(3)と記述すれば、コンピューターはその行で「3秒間お休み」し、時間が経過した瞬間に次の行の命令を再開します。この「待機」の処理は、プログラミングの世界では「ウェイトを入れる」とも呼ばれます。

まずは、一番シンプルな書き方を見てみましょう。プログラミングが初めての方でも、以下のコードをコピーして実行するだけで動きを確認できます。


import time

print("カウントダウンを開始します。")
time.sleep(1)
print("3...")
time.sleep(1)
print("2...")
time.sleep(1)
print("1...")
time.sleep(1)
print("スタート!")

カウントダウンを開始します。
(1秒ごとに数字が表示される)
スタート!

この仕組みは、Webサイトから情報を集める(スクレイピング)際に相手のサーバーに負荷をかけないように配慮したり、ゲームの演出でメッセージをゆっくり表示させたりと、実務でも非常に多くの場面で活用されています。

使い方のポイントは、冒頭でimport timeと書いて、「時間を扱うための道具箱」を読み込んでおくことだけです。これを忘れるとエラーになってしまうので注意しましょう。

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 の文字列の基本操作(連結・切り出し・長さ)の使い方
New3
PHP
PHPのメール送信でSPF・DKIM認証設定を完全解説!初心者でもわかるメール認証の基本
New4
Python
PythonでAPIのパフォーマンスを向上させる方法!キャッシュ活用を初心者向けに完全解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.2
Java&Spring記事人気No2
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
No.3
Java&Spring記事人気No3
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.4
Java&Spring記事人気No4
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.5
Java&Spring記事人気No5
PHP
PHPのHTMLメールの作成方法を完全ガイド!初心者でもわかるメール送信の基本
No.6
Java&Spring記事人気No6
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.7
Java&Spring記事人気No7
Python
Pythonで2次元リストを作成・操作する方法(リストのリスト)
No.8
Java&Spring記事人気No8
Python
Pythonの例外を発生させる方法を完全解説!raise文の使い方を初心者向けにやさしく説明