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.