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

Static Methods

measure(String kind, {required int page, required Future<Image> rasterize(), double? ratio, ({double height, double width})? region}) → Future<Image>
Runs rasterize, logs the resulting image through PdfPerfLog.raster with its duration and peak concurrency, and returns it.