皆さんはcurlというコマンドはご存じでしょうか?
curlは、URLで指定されたデータを転送するためのコマンドラインツールです。APIをコマンドで確認するときによく見るコマンドだと思います。
curl-7_70_0からサポートされた-wオプションの”%{json}”を使って時間計測をしてみたいと思います。
writeout: support to generate JSON output · curl/curl@04c0341 · GitHub
目的
curlを用いた時間計測を実際に実行してみて確認する。
実行環境
- Ubuntu 22.04.1 LTS
- curl 7.81.0
- Python 3.10.6
順番
- Pyhon3で簡易サーバーをlocalhostに作成
- curlで時間計測
1. Pyhon3で簡易サーバーをlocalhostに作成
$ python3 -m http.server 8080
実行結果
Serving HTTP on 0.0.0.0 port 8080 (http://0.0.0.0:8080/) …
今回はPort番号8080を指定して作成した。
2. curlで時間計測
簡易サーバーである,localhost:8080への時間を計測してみる。
実行コマンド
$ curl -s -o /dev/null -w '%{json}' localhost:8080 | jq | grep time
実行結果
"time_appconnect": 0,
"time_connect": 6.8e-05,
"time_namelookup": 1.3e-05,
"time_pretransfer": 8.4e-05,
"time_redirect": 0,
"time_starttransfer": 0.000866,
"time_total": 0.000913,
time_appconnect | コマンドを実行してからリモートホストへの接続が完了するまでの時間 |
time_connect | コマンドを実行してからリモートホストへのTCP接続が完了するまでの時間 |
time_namelookup | コマンドを実行してから名前解決をするまでにかかった時間 |
time_pretransfer | ファイル転送の開始から開始するまでにかかった時間 |
time_redirect | リダイレクトの手順にかかった時間 |
time_starttransfer | コマンドを実行してから最初のbyteが転送される直前までの時間(time_pretransferを含む) |
time_total | コマンドを実行してから終了するまでの時間 |
time_appconnectとtime_redirectが0秒になっているのはlocalhostにリダイレクトなしでアクセスしているからですね。