前回の続き。
前回色々試した結果、curlの-wオプションではPOSTリクエストのボディとレスポンスのBodyが両方とも大きい場合、アップロード・ダウンロード速度を上手く計れないことが分かりました。仕方ないのでcurlを改造することにしました。
今回追加したのは-wオプションで使える以下の変数です。
変数名 | 意味 |
---|---|
time_startupload | リクエスト送信開始時間 |
time_finishupload | リクエスト送信終了時間 |
time_startdownload | レスポンス受信開始時間 |
time_finishdownload | レスポンス受信終了時間 |
前回のtest3.cgiで試すと以下のような感じになります.
$ curl -s -o /dev/null --data-binary @big.txt -w @format.txt http://localhost/~wagavulin/test3.cgi http_code 200 size_upload 61931520 speed_upload 26589078.000 size_download 104857600 speed_download 45018544.000 time_pretransfer 0.001 time_starttransfer 0.002 time_startupload 0.002 time_finishupload 0.152 time_startdownload 2.173 time_finishdownload 2.329 time_total 2.329
概ね期待通りの値が出ています。ソースはgithubに置きました。ビルド方法はGIT-INFOに書いてありますが、
$ ./buildconf $ ./configure $ make
ビルドできます(Ubuntu-14.04で確認)。また、autoconf, automake, libtoolが必要です。