FramePerfRecord class
An immutable per-frame performance record captured by FramePerfWatcher.
Carries the fields FrameTiming actually exposes (buildMicros,
rasterMicros, vsyncOverheadMicros, totalSpanMicros, vsyncStartUs)
plus the per-frame attribution join, blocks: a map from block name (a
widget build span, a layout span, ...) to how much time it consumed
inclusive of its nested children (micros), exclusive of them
(selfMicros), and how many times it ran during that frame (count).
blocks serializes to a plain JSON object of nested objects:
{"Widget.build": {"micros": 600, "selfMicros": 400, "count": 5}}
Constructors
-
FramePerfRecord({required int frameNumber, required int buildMicros, required int rasterMicros, required int vsyncOverheadMicros, required int totalSpanMicros, required DateTime time, required Map<
String, ({int count, int micros, int selfMicros})> blocks, int? vsyncStartUs, int? atUs, String? interactionId, String? linkedBy})
Properties
- atUs → int
-
Monotonic microsecond timestamp from
FlutterTimeline.now, captured at construction unless the caller supplies one explicitly. Comparable across every telescope record type regardless of wall-clock skew; time stays the wall-clock field for display.final -
blocks
→ Map<
String, ({int count, int micros, int selfMicros})> -
Per-block attribution for this frame: block name to its inclusive
duration (
micros), its duration exclusive of directly nested children (selfMicros), and how many times it ran.final - buildMicros → int
-
final
- frameNumber → int
-
The engine's frame number, as reported by
FrameTiming.frameNumber.final - hashCode → int
-
The hash code for this object.
no setterinherited
- interactionId → String?
-
Correlates this record to others captured during the same logical
interaction (a tap, a navigation), when the capturing site knows one.
final
- linkedBy → String?
-
How interactionId was derived:
zone|frame|window.windowmeans no interaction was open at capture: interactionId is null and analysis joins the record by atUs. Null when the capturing site does not link at all.final - rasterMicros → int
-
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- time → DateTime
-
final
- totalSpanMicros → int
-
final
- vsyncOverheadMicros → int
-
final
- vsyncStartUs → int?
-
The vsync signal timestamp for this frame, from
FrameTiming.timestampInMicroseconds(FramePhase.vsyncStart).final
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toJson(
) → Map< String, dynamic> -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited