Skip to content
This repository was archived by the owner on Sep 25, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

- [Schema (SDL)](schema.md)
- [Query language](query-language.md)
- [Wildcard queries and expansion limits](wildcard-query.md)
- [Tokenization and phrase queries](dynamic-tokenizer-and-phrase.md)
- [Chunked text](chunked-text-fields.md) and [chunked BM25](chunked-bm25.md)
- [Formula ranking, backfill, and diagnostics](candidate-rescoring.md)
Expand Down Expand Up @@ -63,6 +64,10 @@ status and fixture before treating a result as current behavior or performance.

- [Full-text comparison](search-benchmark-current.md)
- [Search review ledger](search-performance-review.md)
- [Yonik Searchbench comparison](searchbench-comparison.md)
- [Collector selection benchmark](collector-benchmark.md)
- [IResearch optimization and Linux I/O audit](iresearch-optimization-audit.md)
- [Topic-aware placement and redistribution proposal](topic-aware-placement.md)
- [Range bitset word materialization](range-word-materialization.md): source comparison and measured filter-construction gains.
- [Range block scan experiments](range-block-scans.md): header-based pruning and sequential decoding.
- [Merge review](search-merge-review.md), [reorder review](reordering-performance-review.md), and [Rust hot paths](rust-hot-path-review.md)
Expand Down
127 changes: 127 additions & 0 deletions docs/benchmark-results/collectors-2026-09-20.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
mode,fixture,k,algorithm,run,median_ns,lower_95_ns,upper_95_ns
replay,bm25,10,heap,forward,39515.642489711936,39386.431547619046,39850.228600823044
replay,bm25,10,heap,reverse,39306.20792642141,39187.473804240624,39355.03465662018
replay,bm25,10,partition,forward,40378.012581168834,40300.745064102564,40576.22765837104
replay,bm25,10,partition,reverse,40331.20761363636,40277.65635746606,40464.931249999994
replay,bm25,10,loser_tree,forward,40703.54526994744,40585.32921245421,40983.482905982906
replay,bm25,10,loser_tree,reverse,40940.42692307692,40841.43751204935,41313.692994505494
replay,bm25,100,heap,forward,65890.77871817129,65455.179832559676,67814.83575148809
replay,bm25,100,heap,reverse,73137.55103550295,72838.84615384616,73398.02243589744
replay,bm25,100,partition,forward,51478.42261904762,50907.08275,52054.03965909091
replay,bm25,100,partition,reverse,52493.31084120557,52388.82492690058,52724.83552631579
replay,bm25,100,loser_tree,forward,71847.89354395604,71308.28422619047,72837.54910714286
replay,bm25,100,loser_tree,reverse,71050.59659090909,70921.64841269841,71287.15622710623
replay,bm25,1000,heap,forward,302907.0710180624,302253.9269480519,303911.0107142857
replay,bm25,1000,heap,reverse,338297.9431818182,336406.8881752306,349206.5833333334
replay,bm25,1000,partition,forward,115516.30475040257,114809.23093681916,116280.61388888888
replay,bm25,1000,partition,reverse,134044.2004989496,130155.15188834154,140203.87074829932
replay,bm25,1000,loser_tree,forward,347346.9734848485,346772.2428571428,347797.4257634828
replay,bm25,1000,loser_tree,reverse,384665.1350877193,382161.15,387181.7318181818
replay,improving,10,heap,forward,1927354.4204545454,1925226.4694444444,1931940.954347826
replay,improving,10,heap,reverse,2257520.1166666667,2204796.0488505745,2260931.083333333
replay,improving,10,partition,forward,1147094.9194078948,1137289.736111111,1155067.625
replay,improving,10,partition,reverse,1276879.6283422462,1261305.4947916665,1313522.1833333333
replay,improving,10,loser_tree,forward,2427187.7095238096,2423307.4541666666,2434081.9985714285
replay,improving,10,loser_tree,reverse,2687434.2772727273,2592754.1799999997,2693464.3
replay,improving,100,heap,forward,2884412.4356060605,2873111.25,2896138.517142857
replay,improving,100,heap,reverse,3324969.6549707605,3256319.1136363633,3472792.344919786
replay,improving,100,partition,forward,817892.4791666666,816569.5427489178,821563.5543478262
replay,improving,100,partition,reverse,948630.7857142857,945023.0138888889,956221.3891941392
replay,improving,100,loser_tree,forward,4276072.9375,4260562.5,4308059.875
replay,improving,100,loser_tree,reverse,4923659.75,4731743.083333334,4995576.416666666
replay,improving,1000,heap,forward,3803547.7333333334,3801858.535805627,3810335.3743589744
replay,improving,1000,heap,reverse,4003068.5,3869324.4285714286,4206651.785714285
replay,improving,1000,partition,forward,691638.7152777778,679697.4126984127,717763.4138257576
replay,improving,1000,partition,reverse,770404.4895833333,744337.4624542124,773959.3537037037
replay,improving,1000,loser_tree,forward,5932711.833333333,5922052.0,5946868.083333333
replay,improving,1000,loser_tree,reverse,6543270.8,6533537.5,6699829.1
replay,deteriorating,10,heap,forward,36859.167346938775,36645.45231331169,37078.5514520202
replay,deteriorating,10,heap,reverse,56538.759114583336,52196.032799030174,61322.244999999995
replay,deteriorating,10,partition,forward,38296.12146226416,38204.080338085885,38399.32884097035
replay,deteriorating,10,partition,reverse,77053.9877277328,74788.38868561779,83035.52506265664
replay,deteriorating,10,loser_tree,forward,38962.854853479854,38864.10203430031,39311.01037725031
replay,deteriorating,10,loser_tree,reverse,49070.965248226945,48268.739614994935,60442.78219484883
replay,deteriorating,100,heap,forward,38933.93972746331,38859.209014675056,38995.104309388036
replay,deteriorating,100,heap,reverse,47526.9371968122,45327.53227365296,50262.38738738739
replay,deteriorating,100,partition,forward,39995.56186868687,39642.04875,40210.557499999995
replay,deteriorating,100,partition,reverse,45314.43052884615,44184.3925,45989.0103125
replay,deteriorating,100,loser_tree,forward,40238.35784313726,40082.97507529658,40620.34749455338
replay,deteriorating,100,loser_tree,reverse,48767.92530270656,46928.00545634921,49712.56018518518
replay,deteriorating,1000,heap,forward,61527.09955495356,61063.70121703854,62191.833529411764
replay,deteriorating,1000,heap,reverse,75952.72767857142,73572.73980331264,79128.69584980237
replay,deteriorating,1000,partition,forward,55830.20755735492,55730.21655701754,55918.411864791284
replay,deteriorating,1000,partition,reverse,72003.16311813187,68075.72231483686,72476.92564102565
replay,deteriorating,1000,loser_tree,forward,56045.67907461214,55782.84766584767,56156.48568211068
replay,deteriorating,1000,loser_tree,reverse,70712.8887394958,65167.42923809524,73313.83266666665
replay,ties,10,heap,forward,145273.3596059113,144822.63775510204,145696.58214285714
replay,ties,10,heap,reverse,194557.1458333333,189111.68306878308,203763.88535353536
replay,ties,10,partition,forward,112782.69444444444,112081.40162037036,114679.54424242425
replay,ties,10,partition,reverse,161494.20138888888,154579.4690625,166415.79861111112
replay,ties,10,loser_tree,forward,148274.62797619047,148007.94047619047,149134.09989258862
replay,ties,10,loser_tree,reverse,199826.83181818182,186615.3736614263,206855.11363636365
replay,ties,100,heap,forward,158424.27756410255,157536.05726495726,159022.89476495725
replay,ties,100,heap,reverse,191269.19675925927,182331.42402283708,193672.94973544974
replay,ties,100,partition,forward,125054.31923076924,123380.84815415822,126176.36887254902
replay,ties,100,partition,reverse,168717.9088235294,157976.24855072465,174601.15674603175
replay,ties,100,loser_tree,forward,168467.0848765432,167588.2,169061.127228164
replay,ties,100,loser_tree,reverse,259754.85625,255489.5625,266773.8894607843
replay,ties,1000,heap,forward,354454.73148148146,351741.7691197691,356490.9666666667
replay,ties,1000,heap,reverse,387409.4937254902,385767.35833333334,403647.4244444445
replay,ties,1000,partition,forward,191395.3623737374,187124.04545454547,192862.95881006867
replay,ties,1000,partition,reverse,215587.74655881937,212982.91910331382,217529.74170437406
replay,ties,1000,loser_tree,forward,410887.5764705882,409895.35583333333,412327.92500000005
replay,ties,1000,loser_tree,reverse,455186.65454545454,452074.6059523809,457247.2
replay,clustered,10,heap,forward,41516.34364478115,40904.0352230235,42663.50347222222
replay,clustered,10,heap,reverse,49155.541253306874,48181.134722222225,49336.78956228956
replay,clustered,10,partition,forward,41969.29300471345,41864.54096466737,42128.091755319154
replay,clustered,10,partition,reverse,50191.41722408027,48766.014274691355,50951.81481481482
replay,clustered,10,loser_tree,forward,44631.651679841896,44552.57381748686,44744.87675831202
replay,clustered,10,loser_tree,reverse,52227.587516087515,51934.32528957529,53784.001528677996
replay,clustered,100,heap,forward,69373.88187229437,69240.1684833024,69566.18477304715
replay,clustered,100,heap,reverse,77327.47649456523,77185.00047348485,80602.65104166666
replay,clustered,100,partition,forward,50563.091124661245,50414.85756097561,50654.047933604335
replay,clustered,100,partition,reverse,55985.227020202015,55817.6909141583,58091.93560606061
replay,clustered,100,loser_tree,forward,81052.5882936508,80834.8822167756,81442.49939123377
replay,clustered,100,loser_tree,reverse,90453.48472222223,89826.46169871796,92947.58699712643
replay,clustered,1000,heap,forward,292577.28792517004,291810.27639751555,295090.6038961039
replay,clustered,1000,heap,reverse,332390.87026143796,322121.26473063976,338677.16282051284
replay,clustered,1000,partition,forward,109030.39692982455,108632.1906604747,109262.0817669173
replay,clustered,1000,partition,reverse,130703.92098214285,126192.74553571429,133076.75531135531
replay,clustered,1000,loser_tree,forward,358643.7870370371,357415.9517045454,360053.56327160494
replay,clustered,1000,loser_tree,reverse,394679.6875,387402.1363478261,396441.1
replay,short,10,heap,forward,382.88037522095453,376.96589020122485,398.6473491800367
replay,short,10,heap,reverse,461.67594103757204,458.83830465569645,469.03517764543835
replay,short,10,partition,forward,535.9522305013758,531.5048394476499,541.7262655040433
replay,short,10,partition,reverse,638.7539588062211,615.5377545951317,683.917256830601
replay,short,10,loser_tree,forward,637.7437525926975,631.9158046424202,647.4423122694276
replay,short,10,loser_tree,reverse,683.300741355974,651.0807981563358,700.0568547362568
replay,short,100,heap,forward,2080.6235712304842,2061.7285637727764,2102.022463379779
replay,short,100,heap,reverse,2582.8162076271187,2440.259299423863,2611.7127275580665
replay,short,100,partition,forward,1962.1091320816863,1955.9287845849803,1970.3574193017128
replay,short,100,partition,reverse,2271.05851010101,2256.1186613386612,2284.3007954545456
replay,short,100,loser_tree,forward,2709.0677053451905,2702.9229189485213,2722.5034251589695
replay,short,100,loser_tree,reverse,2766.574433656958,2759.66109955309,2873.3630470796734
replay,short,1000,heap,forward,2086.184443062505,2075.8592242019304,2106.0416244853886
replay,short,1000,heap,reverse,2121.795488277956,2037.0621037836622,2157.832349468713
replay,short,1000,partition,forward,1905.5393196856908,1792.02712744245,2033.9370159410482
replay,short,1000,partition,reverse,1725.679718700533,1692.6827746818599,1728.7563046454197
replay,short,1000,loser_tree,forward,2169.763476195736,2138.6431374038075,2212.0702713649252
replay,short,1000,loser_tree,reverse,2241.539607097592,2160.275683002394,2250.8144681680806
pruned,clustered,10,heap,forward,4625.274340068438,4488.440443213296,4715.8748592128095
pruned,clustered,10,heap,reverse,4716.2780739161335,4691.9218905472635,4815.652112998227
pruned,clustered,10,partition,forward,5368.813873626374,5252.453526979843,5384.057969294081
pruned,clustered,10,partition,reverse,5375.838482142857,5365.1167133520075,5394.435288220551
pruned,clustered,10,loser_tree,forward,7849.256310386474,7660.434135610766,7904.996630434783
pruned,clustered,10,loser_tree,reverse,7894.331967663606,7874.323550817708,8093.476280269949
pruned,clustered,100,heap,forward,34851.15984848485,33096.322878787876,35667.83867243867
pruned,clustered,100,heap,reverse,39224.45735217164,38227.775025394774,39623.827142857146
pruned,clustered,100,partition,forward,14393.420708955224,14010.33862153762,14882.715298507463
pruned,clustered,100,partition,reverse,14860.283072299924,14807.179406474821,14899.513322675193
pruned,clustered,100,loser_tree,forward,47827.40104166667,46402.03234126984,48661.06542397661
pruned,clustered,100,loser_tree,reverse,47363.41858552632,46024.7932330827,47781.94028340081
pruned,clustered,1000,heap,forward,267523.6328125,253148.75982142857,275183.8229166666
pruned,clustered,1000,heap,reverse,288762.71081349207,282846.34621848736,291171.27976190473
pruned,clustered,1000,partition,forward,78951.92307692308,77441.42439082656,79295.60576923078
pruned,clustered,1000,partition,reverse,85734.74166666667,82977.26416666666,86183.44990079364
pruned,clustered,1000,loser_tree,forward,435214.23333333334,421009.7,453387.6751304348
pruned,clustered,1000,loser_tree,reverse,350604.01375000004,344713.76969696966,352747.63666666666
71 changes: 71 additions & 0 deletions docs/benchmark-results/collectors-2026-09-20.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
{
"date": "2026-09-20",
"production_revision": "15b8a3683fd563f03f1b4f8b14310c761303734e",
"benchmark_working_diff_sha256": "97b260e00f71b7957e46b65131105aab6ddd4d61d2753eeb369b9b8fb16deedc",
"source_sha256": {
"hermes-core/benches/collector_selection/main.rs": "76c0f776af06a3ba2347cbac19dbce4c3feae7c3487ce90cc1366fd6afdff507",
"hermes-core/benches/collector_selection/collectors.rs": "97627ab76081419a679d2787fbf5b8c56b12a5186b2d4bc6503798de56d4e38c"
},
"environment": {
"host": "macOS-15.6.1-arm64-arm-64bit-Mach-O",
"machine": "arm64",
"processor": "arm",
"cpu_model": "Apple M4",
"logical_cpus": 10,
"rustc": "rustc 1.98.1 (48a229cea 2026-09-01)\nbinary: rustc\ncommit-hash: 48a229ceaefd4985c50990b14116b6d856af0985\ncommit-date: 2026-09-01\nhost: aarch64-apple-darwin\nrelease: 1.98.1\nLLVM version: 22.1.8",
"cargo": "cargo 1.98.1 (797e8a9bc 2026-08-05)",
"flags": {
"RUSTFLAGS": "",
"CARGO_ENCODED_RUSTFLAGS": "",
"CARGO_BUILD_TARGET": "",
"CARGO_TARGET_DIR": "",
"CARGO_BUILD_JOBS": "",
"CRITERION_HOME": "",
"RAYON_NUM_THREADS": "",
"HERMES_PIN_MODE": "",
"HERMES_PIN_METADATA_BUDGET_MB": ""
}
},
"runs": {
"forward": {
"command": [
"cargo",
"bench",
"--locked",
"-p",
"hermes-core",
"--bench",
"collector_selection",
"--",
"--save-baseline",
"collectors-forward"
],
"elapsed_seconds": 101.84161683311686,
"collector_reverse": false
},
"reverse": {
"command": [
"cargo",
"bench",
"--locked",
"-p",
"hermes-core",
"--bench",
"collector_selection",
"--",
"--save-baseline",
"collectors-reverse"
],
"elapsed_seconds": 100.68795216735452,
"collector_reverse": true
}
},
"samples_per_case": 30,
"warmup_seconds": 0.3,
"target_measurement_seconds": 1,
"case_count_per_run": 63,
"metric": "Criterion median point estimate and its within-run 95% bootstrap confidence interval, in nanoseconds",
"scope": "Synthetic score replay and exact-block-bound feedback; includes collector allocation, screening, admission, sorting and destruction. Excludes scoring, decode, I/O, positions, exact-count collection, seeded/shared thresholds and end-to-end query execution.",
"noise": "Active desktop background processes; repeat slowed several cases. Small differences inconclusive. No agent compilation/tests overlapped timed runs.",
"memory": "Backing capacities: heap 12*k bytes, partition 24*k, loser tree 28*k. Object sizes 48/48/72 bytes. Excludes input fixtures, allocator overhead, output and oracle; not RSS."
}
Loading
Loading