TimeCapture


@ExperimentalBenchmarkConfigApi
public final class TimeCapture extends MetricCapture


Time metric, which reports time in nanos, based on the time passed to captureStop.

Reports elapsed time with the label from name, which defaults to timeNs.

Summary

Public constructors

Public methods

void

Pause data collection.

void

Resume data collection

void
captureStart(long timeNs)

Starts collecting data for a run.

void
captureStop(long timeNs, @NonNull long[] output, int offset)

Mark the end of a run, and store offset metrics in the output array, per sub metric.

Inherited methods

From androidx.benchmark.MetricCapture
boolean
equals(Object other)
final @NonNull List<@NonNull String>

List of names of metrics produced by this MetricCapture.

int

Public constructors

TimeCapture

Added in 1.3.0
public TimeCapture(@NonNull String name)
Parameters
@NonNull String name

Metric name of the measured time, defaults to timeNs.

Public methods

capturePaused

Added in 1.4.0-alpha05
public void capturePaused()

Pause data collection.

captureResumed

Added in 1.4.0-alpha05
public void captureResumed()

Resume data collection

captureStart

Added in 1.4.0-alpha05
public void captureStart(long timeNs)

Starts collecting data for a run.

Called at the start of each run.

Parameters
long timeNs

Current time, just before starting metrics. Can be used directly to drive a timing metric produced.

captureStop

Added in 1.4.0-alpha05
public void captureStop(long timeNs, @NonNull long[] output, int offset)

Mark the end of a run, and store offset metrics in the output array, per sub metric.

To output values, store them in the output array offset by both the parameter offset, and their submetric index, for example:

class MyMetricCapture("firstSubMetricName", "secondSubMetricName") {
//...
override fun captureStop(timeNs: Long, output: LongArray, offset: Int) {
output[offset + 0] = firstSubMetricValue
output[offset + 1] = secondSubMetricValue
}
}
Parameters
long timeNs

Time of metric capture start, in monotonic time (java.lang.System.nanoTime)

@NonNull long[] output

LongArray sized to hold all simultaneous sub metric outputs, use offset as the initial position in output to start writing submetrics.

int offset

Offset into the output array to start writing sub metrics.