RequestFinishedInfo.Metrics

public abstract class RequestFinishedInfo.Metrics


为单个请求收集的指标。这些指标大多是请求生命周期内事件的时间戳,可用于构建详细的时间轴以调查性能。

事件按以下顺序发生:

  1. request start
  2. DNS start
  3. DNS end
  4. connect start
  5. SSL start
  6. SSL end
  7. connect end
  8. sending start
  9. sending end
  10. response start
  11. request end
开始时间是指请求开始阻塞事件的时间,而不是事件实际发生的时间,推送开始和结束时间除外。如果某项指标没有意义或不可用(包括请求在达到相应阶段之前完成的情况),则开始时间和结束时间将为 null。如果没有时间用于阻塞事件,则开始时间和结束时间将相同。

如果在请求期间调整了系统时钟,则某些 java.util.Date 值可能与系统时钟不匹配。时间戳是使用保证不会向后运行的时钟记录的。所有时间戳相对于请求开始时的系统时钟都是正确的,并且计算两个时间戳之间的差值将得出事件之间的正确差值。为了保留此属性,除请求开始之外的事件的时间戳不保证与它们所代表的时间的系统时钟相匹配。

大多数时间指标都来自 LoadTimingInfo,其中包含 的信息。

摘要

公共构造函数

公共方法

abstract @Nullable Date

返回连接建立完成的时间。

abstract @Nullable Date

返回连接建立开始的时间。

abstract @Nullable Date

返回 DNS 查找完成的时间。

abstract @Nullable Date

返回 DNS 查找开始时间。

abstract @Nullable Date

返回 HTTP/2 服务器推送的最后一个字节的接收时间。

abstract @Nullable Date

返回 HTTP/2 服务器推送的第一个字节的接收时间。

abstract @Nullable Long

返回通过网络传输层接收的总字节数,如果未收集,则返回 null

abstract @Nullable Date

返回请求完成的时间。

abstract @Nullable Date

返回请求的开始时间。

abstract @Nullable Date

返回收到响应标头结束的时间。

abstract @Nullable Date

返回发送请求完成的时间。

abstract @Nullable Date

返回发送请求的开始时间。

abstract @Nullable Long

返回通过网络传输层发送的总字节数,如果未收集,则返回 null

abstract boolean

返回套接字是否是从之前的请求中重复使用的。

abstract @Nullable Date

返回 SSL 握手完成的时间。

abstract @Nullable Date

返回 SSL 握手开始的时间。

abstract @Nullable Long

返回从请求发起到完成(包括失败或取消)之间的毫秒数,如果未收集,则返回 null

abstract @Nullable Long

返回请求发起与响应标头的第一个字节之间的毫秒数,如果未收集,则返回 null

公共构造函数

指标

public Metrics()

公共方法

getConnectEnd

public abstract @Nullable Date getConnectEnd()

返回连接建立完成的时间。

返回
@Nullable Date

java.util.Date 表示连接建立完成的时间,即在 TCP 连接建立后(如果使用 HTTPS,则在 SSL 握手完成后)的时间。对于 QUIC 0-RTT,这表示握手确认的时间,可能晚于 getSendingStart。如果套接字被重用,则为 null(请参阅 getSocketReused)。

getConnectStart

public abstract @Nullable Date getConnectStart()

返回连接建立开始的时间。

返回
@Nullable Date

java.util.Date 表示连接建立开始的时间,通常是 DNS 解析完成的时间。如果套接字被重用,则为 null(请参阅 getSocketReused)。

getDnsEnd

public abstract @Nullable Date getDnsEnd()

返回 DNS 查找完成的时间。无论结果来自 DNS 服务器还是本地缓存,此方法和 getDnsStart 都会返回非 null 值。

返回
@Nullable Date

表示 DNS 查找完成的时间的 java.util.Date。如果套接字被重用,则为 null(请参阅 getSocketReused)。

getDnsStart

public abstract @Nullable Date getDnsStart()

返回 DNS 查找开始时间。无论结果来自 DNS 服务器还是本地缓存,此方法和 getDnsEnd 都会返回非 null 值。

返回
@Nullable Date

java.util.Date 表示 DNS 查找开始的时间。如果套接字被重用,则为 null(请参阅 getSocketReused)。

getPushEnd

public abstract @Nullable Date getPushEnd()

返回 HTTP/2 服务器推送的最后一个字节的接收时间。

返回
@Nullable Date

java.util.Date,表示收到 HTTP/2 服务器推送的最后一个字节的时间。如果未使用服务器推送,则为 null

getPushStart

public abstract @Nullable Date getPushStart()

返回 HTTP/2 服务器推送的第一个字节的接收时间。

返回
@Nullable Date

java.util.Date,表示收到 HTTP/2 服务器推送的第一个字节的时间。如果未使用服务器推送,则为 null

getReceivedByteCount

public abstract @Nullable Long getReceivedByteCount()

返回通过网络传输层接收的总字节数,如果未收集,则返回 null。字节数不包含任何之前的重定向。

getRequestEnd

public abstract @Nullable Date getRequestEnd()

返回请求完成的时间。

返回
@Nullable Date

java.util.Date,表示请求完成的时间。

getRequestStart

public abstract @Nullable Date getRequestStart()

返回请求的开始时间。

返回
@Nullable Date

java.util.Date,表示原生请求的实际开始时间。此时间戳将与它所代表的时间的系统时钟相匹配。

getResponseStart

public abstract @Nullable Date getResponseStart()

返回收到响应标头结束的时间。

返回
@Nullable Date

java.util.Date 表示收到响应标头结束的时间。

getSendingEnd

public abstract @Nullable Date getSendingEnd()

返回发送请求完成的时间。

返回
@Nullable Date

java.util.Date 表示 HTTP 请求正文发送完成的时间。(发送请求正文发生在发送请求标头之后。)

getSendingStart

public abstract @Nullable Date getSendingStart()

返回发送请求的开始时间。

返回
@Nullable Date

java.util.Date 表示发送 HTTP 请求标头开始的时间。

getSentByteCount

public abstract @Nullable Long getSentByteCount()

返回通过网络传输层发送的总字节数,如果未收集,则返回 null

getSocketReused

public abstract boolean getSocketReused()

返回套接字是否是从之前的请求中重复使用的。在 HTTP/2 或 QUIC 中,如果流在单个连接中进行多路复用,则在第一个流之后的所有流都会返回 true

返回
boolean

相应请求是否重用了之前请求中的套接字。当值为 true 时,DNS、连接和 SSL 时间将为 null

getSslEnd

public abstract @Nullable Date getSslEnd()

返回 SSL 握手完成的时间。对于 QUIC,此时间将与 getConnectEnd 相同。

返回
@Nullable Date

java.util.Date,表示 SSL 握手完成的时间。如果未使用 SSL 或套接字被重用(请参阅 getSocketReused),则为 null

getSslStart

public abstract @Nullable Date getSslStart()

返回 SSL 握手开始的时间。对于 QUIC,此时间与 getConnectStart 相同。

返回
@Nullable Date

java.util.Date 表示 SSL 握手开始的时间。如果未使用 SSL 或套接字被重用(请参阅 getSocketReused),则为 null

getTotalTimeMs

public abstract @Nullable Long getTotalTimeMs()

返回从请求发起到完成(包括失败或取消)之间的毫秒数,如果未收集,则返回 null。TODO(mgersh):新 API 正常运行后移除 http://crbug.com/629194

getTtfbMs

public abstract @Nullable Long getTtfbMs()

返回请求发起与响应标头的第一个字节之间的毫秒数,如果未收集,则返回 null。TODO(mgersh):新 API 正常运行后移除 http://crbug.com/629194