Performance

data class Performance(val lines: List<String>, val symptoms: List<Symptom>, val ranges: List<Performance.Range> = emptyList())(source)

What two runs that carry samples say about time and memory. A measurement differs only when the ranges do not overlap: the minimum of the larger side is above the maximum of the smaller side. Then the larger second run gets a SymptomKind.SLOWER (wall time) or SymptomKind.MEMORY (peak memory) symptom whose value is the ratio of the medians in tenths, as text such as 2.5 times slower. Overlapping ranges give a line that says so and no symptom, and a first run that is larger gives a line and no symptom. A side with fewer than MIN_SAMPLES samples has no spread and is not compared. lines also carry each limit that applies; none names a cause.

Constructors

Link copied to clipboard
constructor(lines: List<String>, symptoms: List<Symptom>, ranges: List<Performance.Range> = emptyList())

Types

Link copied to clipboard
object Companion
Link copied to clipboard
data class Range(val name: String, val unit: String, val first: Spread, val second: Spread)

The two spreads of one measurement, for a chart; name and unit label it.

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard

ranges is written only when there are some, so earlier output keeps its bytes.