Elapsed timeとLatencyって何が違うのさ

最近JMeterを使ってて気になった部分をメモ。
JMeterJava製のWeb向け負荷テストツール。この手のフリーなツールとしては代表的なもので、日本語での解説も多い。

JMeter(高機能/フリーなテストツール)第1回:JMeterの基本 JMeter(高機能/フリーなテストツール)第1回:JMeterの基本

-Java Apache/Jakarta Project- TECHSCORE -Java Apache/Jakarta Project- TECHSCORE

一方で、そのビミョーにクセのあるSwingベースのGUIにはいつもながら閉口するが、今回取り上げるのは、下に示したテスト結果のファイル保存オプションに出てくる設定項目の"Elapsed time"と"Latency"の違いについて。


テスト結果のファイル保存設定画面(jakarta.apache.orgより)


日本語にすると、"Elapsed time"は「経過時間」、"Latency"は「遅延」とあまり違いが分からない。この辺の解説を探してみたが、結局はjakartaサイトの用語集を確認した方が手っ取り早かった。

Elapsed time . JMeter measures the elapsed time from just before sending the request to just after the last response has been received. JMeter does not include the time needed to render the response, nor does JMeter process any client code, for example Javascript.

Latency . JMeter measures the latency from just before sending the request to just after the first response has been received. Thus the time includes all the processing needed to assemble the request as well as assembling the first part of the response, which in general will be longer than one byte.

http://jakarta.apache.org/jmeter/usermanual/glossary.html

以下、適当訳。

Elapsed time . JMeterは、リクエストの送信直前から最後のレスポンスが受信された直後までをelapsed timeとして測定する。JMeterはレスポンスの描画に必要な時間をelapsed timeには含めない。また、例えばJavascriptのようなあらゆるクライアントコードを処理することも無い。

Latency . JMeterは、リクエストの送信直前から最初のレスポンスが受信された直後までをLatencyとして測定する。ゆえに、Latencyは、リクエストを組み上げるために必要なすべての処理と、同様に、大抵の場合1byteより長いであろうレスポンスの先頭部分を組み上げるために必要な処理をすべて含む。

要は、"Elapsed time"は、リクエストを投げる直前からレスポンス全体が戻るまでの時間で、"Latency"の方はリクエストを投げる直前からレスポンスの先頭部分が戻るまでの時間ということらしい。