Separate q0/q19 CPU diagnostics¶
These observations are excluded from the primary matrix. Released async-profiler
4.5 records itimer CPU stacks for one warmup and one measured pair per query,
using the same two-million-event corpus, source/sink partitioning, RocksDB budget,
mini-batch-off configuration and exact release-library hashes as the main run.
All four profiled pairs pass their normal committed-output and native-boundary checks.
The per-cell report retains these profiled medians and ranges; the evidence index links the separate primary comparison.
| Query | Profiled stock, seconds | Profiled native, seconds | Primary median stock/native |
|---|---|---|---|
| q0 | 2.255 | 1.361 | 0.41× |
| q19 | 30.723 | 9.487 | 0.56× |
Neither primary regression reproduces in this smaller, fresh profiled cohort. These one-pair timings cannot replace the repeated unprofiled medians. They show why elapsed-time reversals need a longer-cohort wall/GC reproduction before assigning the primary regressions to the encoder. The existing state/checkpoint investigation retains earlier CPU/wall/kernel evidence; this diagnostic does not resolve that issue.
Raw CPU counts and matching frame patterns use inclusive stack matches, excluding stacks that contain a C1/C2 compilation entry. Compilation can annotate methods from the other engine, so it must be excluded before attributing runtime source/writer work. The q0 pair spends 40.1% stock / 38.2% native of all sampled CPU in compilation. Percentages below use the remaining execution samples, overlap, and are not elapsed-time percentages.
| q19 CPU boundary | Stock samples / 5,106 | Native samples / 2,350 |
|---|---|---|
| Source chain/fetch | 246 (4.8%) | 149 (6.3%) |
| Sink row/batch processing | 1,286 (25.2%) | 785 (33.4%) |
| Sink pre-checkpoint flush | 529 (10.4%) | 504 (21.4%) |
| Data encoding: Java DataWriter / Rust write+finish | 526 (10.3%) | 189 (8.0%) |
| Java position-delete finalization | 477 (9.3%) | 494 (21.0%) |
| Java delete-key bookkeeping | 468 (9.2%) | 394 (16.8%) |
| Stock rank processing / native rank push | 1,363 (26.7%) | 291 (12.4%) |
Source-chain matching may include chained calculation/routing work. The two data encoding boundaries use different implementations and are not an isolated encoder speed test. In this profile, Java position-delete finalization has similar absolute sample counts on both engines while its share grows as other native work falls. That retained Java work is part of the agreed design; data files remain Rust encoded. Main q19 committed-file summaries retain comparable physical row/delete volumes, so the primary slowdown is not explained by a large increase in output rows alone.
The profile environment, method,
all observations, sample summary,
compressed log and per-query archives retain every warmup/measured profile, graph
and final table metadata. They use docs-only commit 80d63ba7; production library
hashes match the primary matrix exactly.