Class RequestTimers

Class Documentation

class RequestTimers

Records timestamps for different stages of request handling.

Public Types

enum Kind

Timestamp kinds.

Values:

REQUEST_START

The start of request handling.

REQUEST_END

The end of request handling.

SEND_START

The start of sending request bytes to the server (i.e.

first byte).

SEND_END

The end of sending request bytes to the server (i.e.

last byte).

RECV_START

The start of receiving response bytes from the server (i.e.

first byte).

RECV_END

The end of receiving response bytes from the server (i.e.

last byte).

COUNT__

Public Functions

RequestTimers()

Construct a timer with zero-ed timestamps.

void Reset()

Reset all timestamp values to zero.

Must be called before re-using the timer.

uint64_t Timestamp(Kind kind) const

Get the timestamp, in nanoseconds, for a kind.

Return

The timestamp in nanoseconds.

Parameters
  • kind: The timestamp kind.

uint64_t CaptureTimestamp(Kind kind)

Set a timestamp to the current time, in nanoseconds.

Return

The timestamp in nanoseconds.

Parameters
  • kind: The timestamp kind.

uint64_t Duration(Kind start, Kind end) const

Return the duration between start time point and end timepoint in nanosecond.

Return

Duration in nanosecond, or std::numeric_limits<uint64_t>::max to indicate that duration could not be calculated.

Parameters
  • start: The start time point.

  • end: The end time point.