Pythonでリクエスト時の応答時間を測定するのイメージ画像

Pythonでリクエスト時の応答時間を測定する

  • 公開日:2019/01/25
  • 更新日:2019/01/25
  • 投稿者:n bit

PythonでURLから『requests』を使ってResponseオブジェクトを取得するときの応答時間の計測方法を解説します。requests.get()で要求を送信してから応答が到着するまでに経過した時間を計測します。

  • Python

この記事は約 分で読めます。(文字)

Pythonでリクエスト時の応答時間を測定

インターネット接続時、遅延やウェブサイトの読み込み速度を改善するのに、Webサイトの読み込み時間を計測することから始まります。

またその他にも、Pythonコードのパフォーマンス改善やスクレイピングプログラムでのボトルネック発見など様々な場面でリクエストの応答時間の計測が必要になるでしょう。

Pythonでも色々と読み込み時間に関して計測できますが、今回は『requests.get()』時の応答時間の計測です。

『elapsed』を使った応答時間の測定

『requests』にはリクエストしてResponseまでの応答時間を測定してくれる属性『elapsed』が用意されています。

『elapsed』は、要求を送信してから応答が到着するまでに経過した時間を計測して『timedelta』で返す属性です。この値は、リクエストの最初のバイトを送信してからヘッダー解析が終了するまでにかかる時間を具体的に測定したものです。

そのため応答コンテンツや応答コンテンツのダウンロード時間による消費には影響されません。

利用方法は他の属性と同じで『requests.get()』で返されたレスポンスの後に属性情報つけて取得しましょう。

import requests


url = 'https://dot-blog.jp/'
res = requests.get(url)

time_elapsed = res.elapsed.total_seconds()
print('time_elapsed:', time_elapsed)

出力結果

time_elapsed: 1.528708

取得結果は『timedelta』のままでは確認しにくいので秒単位で出力できるようにtimedeltaの『total_seconds()』メソッドを利用しています。『total_seconds()』はtimedeltaの期間に含まれるトータルの秒数を出力するメソッドです。

改めて測って思ったことですが私のサイトの応答遅いですね。改善の余地ありです。

今日のdot

Pythonでリクエスト時の応答時間を測定するには、リクエストしてResponseまでの応答時間を測定してくれる『requests』の属性『elapsed』を利用します。

res.elapsed.total_seconds()