PdfRasterProbe class
Measures one rasterize call: its wall duration AND how many rasters were in flight alongside it.
ms= on a raster line is queue-inclusive and always has been: toImage
awaits the raster thread, and the render scheduler deliberately starts page
renders without awaiting them (see render_scheduler.dart), so several
pages rasterize concurrently and each one's measured duration absorbs the
others' queue time. Read without that context the number lies outright. In
the 2026-07-29 trace three 0.1MP rasters that started together reported
4692ms, 3461ms and 2731ms - a 0.1MP readback is not 4.7 seconds of work,
they were serializing behind each other - and one page at one ratio measured
138.8ms uncontended against 2299.4ms contended, a 16x spread over identical
pixels. conc= is what separates "this raster is expensive" from "this
raster waited": at conc=1 the duration is the work, above it the duration
is mostly queue.
The count is peak-over-lifetime rather than depth-at-start, because a raster that begins alone and is then joined by three others waits just as long as one that started fourth.
Properties
- elapsedMs → double
-
Duration of the rasterize so far, in milliseconds.
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
- peakConcurrency → int
-
Peak rasters in flight during this one's lifetime (1 = uncontended).
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Properties
- debugInFlight → int
-
Rasters in flight right now - test/diagnostic hook. A leak here would
inflate every later
conc=, so it is asserted against directly.no setter