Skip to main content

Module analysis

Module analysis 

Source
Expand description

What a timeline says, read the same way by every reader (ADR 0058, decisions 9 and 10): a frame’s phases, the path from an input to the screen, a verdict on why it lagged, the runs of frames with no input, and the recording grouped by span, by origin and by what its gaps held.

Structs§

Burn
A run of frames with no input: indices into the timeline’s frames.
Gaps
What the gaps between frames held, summed over the timeline, µs.
InputPath
The path from the first input frame i answers to the driver’s present record, in timeline µs. This does not measure physical display.
Phases
A frame’s time by phase, µs.
PlacementStat
A component kind’s placements over the timeline: how many, how many replayed, and the rest by answer and reason, the most first.
SpanStat
A span name’s spread over frames: calls, total, self, worst, and CPU where read.

Enums§

Verdict
Why a frame lagged, the first that holds (ADR 0058, decision 9).

Constants§

BUILD
The core’s own spans (origin Origin::Kui) and the drivers’.
BURN_FRAMES
A burn: at least this many frames…
BURN_GAP_US
…each within this of the one before (µs), with no input among them.
DEVTOOLS
EMIT
FILL
An extension’s fill is fill <namespace>.
HANDLER
A driver’s call into the app’s event handler (origin Origin::Host).
INPUT_CAUSES
The frame-cause kinds that are input: a run of frames with none of them is a burn.
LAYOUT
REPLAYED
A placement’s answer when its last fill was pushed again.

Traits§

NameOf
Something that turns a name id into its string: a crate::Trace or a writer’s crate::Names.

Functions§

burns
Every burn: BURN_FRAMES frames or more, each beginning within BURN_GAP_US of the one before, none answering input.
by_origin
Self time by origin — the host, each extension, kui — the most first.
by_span
Every span of the timeline, grouped by name and origin, the most total first.
counters
Each counter’s average a frame and its most, by name. A frame that recorded no value for a counter counts as 0 — the core writes a counter only where it moved — so a glyph rasterized once in a hundred frames averages 0.01, not 1.
gaps
gaps_in
Gaps preceding selected original frame indices. A sliced population keeps the original preceding gap, rather than treating its first frame as frame 0.
gauges
Each gauge’s last, least and most, by name.
input_path
Frame i’s input path, when an input arrived in its gap.
phases
Frame i’s phases: the core’s spans inside it, the handlers in its gap, the driver’s present.
placements
Every placement of the timeline, grouped by component kind, the most drawn fresh first.
spread
(avg, p95, max) of v; zeros for none.
verdict
Frame i’s verdict against budget µs; burns from burns.