Desktop BYOB transport and garbage collection
This report describes one desktop capture on 8 September 2026, local time. The renderer used Chrome 148.0.7778.180.
The host used an Apple M2, 24 GiB of memory, and Darwin 23.6.0. All five power samples reported AC power. The capture did not observe power continuously.
The source sent opaque 1920 × 1080 RGBA frames. The receiver used HTTP with a BYOB reader and one receive credit. BYOB means “bring your own buffer.” The application supplied one packet buffer and recovered the buffer that each read returned.
The native camera publisher remained active while B received direct RGBA packets. No external camera consumer participated in this measurement. This path does not provide external-camera acceptance.
The measurement selected 8,323 unique input and final frame pairs in 180.015 seconds. The rate was 46.235 unique pairs per second. Of 180 complete seconds, 116 contained fewer than 50 unique pairs. The minimum was 19 pairs in one second.
Tracing, heap sampling, and frame observation were active during this capture. These measurements do not establish ordinary throughput or long-run performance.
Role A is the source. Role B is the receiver. The trace contains 124 merged main-thread garbage collection pause intervals for A, with 124.853 ms of total duration. It contains 42 such intervals for B, with 199.433 ms of total duration. These counts describe merged pause intervals, not every garbage collection operation.
The analysis selected gaps of at least 25 ms within each role's first and last trace anchors. B had 1,360 packet-arrival gaps in that interval. Of these gaps, 21 overlapped a mapped garbage collection pause. The other 1,339 had no mapped pause overlap.
B had no selected render-entry gap, upload API call, or render API call of at least 25 ms. B had one final-readback interval of 28.200 ms. That interval had no mapped pause overlap. A had one render-entry gap and one render API interval above the threshold. Neither overlapped a mapped pause.
These stage counts must not be added. A packet-arrival gap measures time between complete packet arrivals. An upload API interval measures the synchronous upload call. A render API interval does not measure GPU completion or source export completion.
The receiver's sampled backing storage ranged from 13.224 to 21.171 MiB. This metric includes ArrayBuffers and external strings. It is a sampled stock, not an allocation rate, packet-buffer count, RSS measurement, or GPU memory measurement. One application buffer allocation does not prove that the browser reused one physical backing allocation throughout Fetch.
The graph uses separate clocks. Garbage collection and frame gaps use each role's page clock. Memory samples use the controller's request and response clock. The analysis does not interpolate memory samples onto garbage collection intervals or align A and B page clocks.
The accepted clock alignment bound was 100 microseconds. The observed offset spread was 1.000 microseconds for A and 0.002 microseconds for B. The pause totals cover the first-to-last-anchor interval. That interval can extend beyond the frame measurement.
B telemetry ended 18.800 ms before its final trace anchor. Thirteen B intervals lay outside the anchors and do not appear in the selected table. No interval crossed an anchor. The analysis retains this coverage limit. It does not treat the unobserved tail as proof that no gap occurred.
Purple graph marks show mapped pauses. Orange marks show gaps with a mapped pause overlap. Blue marks show gaps without that overlap. Short interval marks have a minimum width of 0.35 pixels, about 63 ms on a 180-second axis. Their drawn width does not show their exact duration. The JSON file contains exact interval values.
A separate ordinary desktop BYOB run measured 59.665 unique pairs per second over 180.005 seconds. Its minimum complete second contained 42 pairs, and three seconds contained fewer than 50 pairs. That run did not use this garbage collection capture. The two runs used distinct workloads and were not a controlled comparison. Their difference does not isolate tracing overhead or a transport effect.
The diagnostic passed its capture, source, native ownership, clock, trace-loss, and cleanup checks. The analysis used the retained capture sources. It includes only source-mapped MinorGC and MajorGC pauses on the identified renderer main thread. It does not add nested phases to their enclosing pause.
Most selected packet gaps had no mapped main-thread pause overlap. This observation does not exclude background collection, scheduling, native processing, driver work, or missed frame deadlines. It does not establish the cause of the packet gaps. The capture does not certify camera delivery or output on a physical screen. It does not establish a memory leak or 60 FPS acceptance.
Capture result SHA-256: c8edce3f825ab4465030ed011ce43760b57878d8247eb6ee99b3b8aca3b3e978