メモ置き場

curlでHTTPリクエストの処理時間を計測

  • -w <format> または --write-out <format> オプションでリクエストに関する情報を表示できる。
  • 表示する情報は<format>%{variable_name}のように指定する。

時間計測系の項目は次の通り。単位は秒。

variable説明
json(他の情報も含めて)全てをjson形式で表示
time_namelookup名前解決が完了するまでの時間
time_connectTCP接続が完了するまでの時間
time_appconnectTLSハンドシェイクが完了するまでの時間
time_pretransferリクエストの転送が始まるまでの時間
time_redirect全てのリダイレクトが完了するまでの時間(最後のリクエストが始まるまでの時間)
time_starttransferレスポンスの受信が始まるまでの時間
time_total全ての実行が完了するまでの時間

実行例

# `/notes` → `/notes/` へのリダイレクトが発生するパターン
$ curl -s -L -o /dev/null -w '%{json}' "https://dev.shirokurostone.com/notes" | jq .
()
  "time_appconnect": 0.055436,
  "time_connect": 0.021455,
  "time_namelookup": 0.007137,
  "time_pretransfer": 0.056014,
  "time_redirect": 0.098491,
  "time_starttransfer": 0.12935,
  "time_total": 0.129955,
()

参考