Table Of Contents#

Run Metadata#

Field Value
Run completed 2026-07-20 05:42:13 UTC
Run duration 9m 21s
Benchmark project version 0.1.0-SNAPSHOT
Benchmark source revision 68f4ea5
Benchmark Java release 25
JMH version 1.37
JDK OpenJDK 64-Bit Server VM 25 25+36-b176.4
ModDevGradle 2.0.141
NeoForm 26.2-2
Adaptive run summary 95% CI; target <= 10% of mean; 60/60 adaptive cases met target; 5 non-adaptive cases run once

Implementations Tested#

Benchmark ID Name Authors Version Source
generalized-suffix-tree Suffix tree Abahgat, mezz 1.3.0 pkg:maven/net.mezzdev:suffixtree@1.3.0
abahgat-suffix-tree Suffix tree Abahgat 2.0.0 pkg:maven/com.abahgat:suffixtree@2.0.0
baked-substring-index Baked substring index mezz 0.1.0 pkg:maven/net.mezzdev:baked-substring-index@0.1.0
baked-suffix-array-index Baked suffix array index mezz 0.1.0 pkg:maven/net.mezzdev:baked-suffix-array-index@0.1.0
minecraft-suffix-array Suffix array Minecraft 1.12-pre6 to 26.2 Minecraft 1.12-pre6 to 26.2 SuffixArray via NeoForm 26.2-2

How To Read This#

  • Lower values are better for every chart.
  • Typed-search time plots one line per implementation as the query gets longer.
  • Typed line charts use a log y-axis.
  • Build and allocation charts can switch between total and per-item views.
  • CI +/- is the half-width of the two-sided 95% confidence interval around the mean, not a standard deviation.
  • Displayed values are rounded for readability so minor decimal noise is omitted.

Adaptive Runner Caveats#

  • Adaptive runs start with shorter JMH passes, then rerun only noisy benchmark cases with more measurement work until they meet the configured CI target or reach the maximum budget.
  • Because cases can receive different fork and iteration counts, compare the score and confidence interval together. Cases that reached the maximum budget are still useful signals, but less settled than cases that met the target.
  • Retained-memory benchmarks are approximate and intentionally non-adaptive; they focus on the retained bytes after building an index, not on benchmark timing.

Build Time Rankings#

Metric: total index build time (ms/build) or normalized build time per benchmark item; lower is better.

Measures how long it takes to prepare the search index after a large item list is available. Lower values mean a recipe viewer can become searchable sooner after game startup, resource reloads, or data reloads.

Build Time: All Defaults#

Prepares the full default search index: item names, tooltip text, mod names, and tags. This is the closest benchmark to the total search setup cost players feel after loading or reloading a large modpack.

100,000 items

Show data table
Rank Implementation/version Value CI +/- Vs best
1 Baked substring index - mezz (0.1.0) 375 ms per build 17 ms per build 1.00x
2 Suffix tree - Abahgat, mezz (1.3.0) 696 ms per build 30 ms per build 1.86x
3 Suffix tree - Abahgat (2.0.0) 995 ms per build 50 ms per build 2.65x
4 Baked suffix array index - mezz (0.1.0) 2440 ms per build 240 ms per build 6.50x
5 Suffix array - Minecraft (1.12-pre6 to 26.2) 3695 ms per build 100 ms per build 9.85x
Rank Implementation/version Value CI +/- Vs best
1 Baked substring index - mezz (0.1.0) 3.75 µs per item 0.17 µs per item 1.00x
2 Suffix tree - Abahgat, mezz (1.3.0) 7.0 µs per item 0.3 µs per item 1.86x
3 Suffix tree - Abahgat (2.0.0) 10.0 µs per item 0.5 µs per item 2.65x
4 Baked suffix array index - mezz (0.1.0) 24.4 µs per item 2.4 µs per item 6.50x
5 Suffix array - Minecraft (1.12-pre6 to 26.2) 36.9 µs per item 1.0 µs per item 9.85x

Typed Search Time#

Metric: time to process one search-box update (ms/query); lower is better.

Measures the cost of one search-box update as a player types more characters. Lower values mean less input lag while filtering a very large item list.

Typed Search Time: Default Corpus Prefix#

Simulates a player typing in the search box after the index is ready. Each step searches prefixes from many item-like words, so lower values mean the filtered item list updates with less typing lag.

100,000 items

Show data table
Characters Query Rank Implementation/version Mean CI +/- Vs best
1 16 cycled prefixes: r, p, t, g, c, s, A, B, ... 1 Baked substring index - mezz (0.1.0) 0.66 ms per query 0.06 ms per query 1.00x
1 16 cycled prefixes: r, p, t, g, c, s, A, B, ... 2 Suffix tree - Abahgat, mezz (1.3.0) 5.6 ms per query 0.4 ms per query 8.58x
1 16 cycled prefixes: r, p, t, g, c, s, A, B, ... 3 Suffix array - Minecraft (1.12-pre6 to 26.2) 26.2 ms per query 1.4 ms per query 39.94x
1 16 cycled prefixes: r, p, t, g, c, s, A, B, ... 4 Baked suffix array index - mezz (0.1.0) 34.9 ms per query 2.2 ms per query 53.11x
1 16 cycled prefixes: r, p, t, g, c, s, A, B, ... 5 Suffix tree - Abahgat (2.0.0) 54 ms per query 4 ms per query 81.65x
2 16 cycled prefixes: re, po, te, gi, ra, cu, sm, si, ... 1 Baked substring index - mezz (0.1.0) 0.113 ms per query 0.0016 ms per query 1.00x
2 16 cycled prefixes: re, po, te, gi, ra, cu, sm, si, ... 2 Suffix tree - Abahgat, mezz (1.3.0) 0.72 ms per query 0.05 ms per query 6.36x
2 16 cycled prefixes: re, po, te, gi, ra, cu, sm, si, ... 3 Baked suffix array index - mezz (0.1.0) 3.02 ms per query 0.25 ms per query 26.72x
2 16 cycled prefixes: re, po, te, gi, ra, cu, sm, si, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 3.05 ms per query 0.18 ms per query 27.00x
2 16 cycled prefixes: re, po, te, gi, ra, cu, sm, si, ... 5 Suffix tree - Abahgat (2.0.0) 4.94 ms per query 0.18 ms per query 43.68x
3 16 cycled prefixes: rei, pol, tem, gil, raw, cut, smo, sil, ... 1 Baked substring index - mezz (0.1.0) 0.024 ms per query 0.0013 ms per query 1.00x
3 16 cycled prefixes: rei, pol, tem, gil, raw, cut, smo, sil, ... 2 Suffix tree - Abahgat, mezz (1.3.0) 0.283 ms per query 0.024 ms per query 11.71x
3 16 cycled prefixes: rei, pol, tem, gil, raw, cut, smo, sil, ... 3 Baked suffix array index - mezz (0.1.0) 0.90 ms per query 0.04 ms per query 37.22x
3 16 cycled prefixes: rei, pol, tem, gil, raw, cut, smo, sil, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 0.974 ms per query 0.017 ms per query 40.23x
3 16 cycled prefixes: rei, pol, tem, gil, raw, cut, smo, sil, ... 5 Suffix tree - Abahgat (2.0.0) 2.12 ms per query 0.09 ms per query 87.62x
4 16 cycled prefixes: rein, poli, temp, gild, raw , cut , smoo, sile, ... 1 Baked substring index - mezz (0.1.0) 0.090 ms per query 0.008 ms per query 1.00x
4 16 cycled prefixes: rein, poli, temp, gild, raw , cut , smoo, sile, ... 2 Suffix tree - Abahgat, mezz (1.3.0) 0.174 ms per query 0.007 ms per query 1.92x
4 16 cycled prefixes: rein, poli, temp, gild, raw , cut , smoo, sile, ... 3 Baked suffix array index - mezz (0.1.0) 0.356 ms per query 0.013 ms per query 3.94x
4 16 cycled prefixes: rein, poli, temp, gild, raw , cut , smoo, sile, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 0.59 ms per query 0.05 ms per query 6.49x
4 16 cycled prefixes: rein, poli, temp, gild, raw , cut , smoo, sile, ... 5 Suffix tree - Abahgat (2.0.0) 1.71 ms per query 0.11 ms per query 18.90x
5 16 cycled prefixes: reinf, polis, tempe, gilde, raw s, cut g, smoot, silen, ... 1 Baked substring index - mezz (0.1.0) 0.090 ms per query 0.004 ms per query 1.00x
5 16 cycled prefixes: reinf, polis, tempe, gilde, raw s, cut g, smoot, silen, ... 2 Suffix tree - Abahgat, mezz (1.3.0) 0.136 ms per query 0.013 ms per query 1.51x
5 16 cycled prefixes: reinf, polis, tempe, gilde, raw s, cut g, smoot, silen, ... 3 Baked suffix array index - mezz (0.1.0) 0.297 ms per query 0.020 ms per query 3.31x
5 16 cycled prefixes: reinf, polis, tempe, gilde, raw s, cut g, smoot, silen, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 0.483 ms per query 0.023 ms per query 5.37x
5 16 cycled prefixes: reinf, polis, tempe, gilde, raw s, cut g, smoot, silen, ... 5 Suffix tree - Abahgat (2.0.0) 1.35 ms per query 0.06 ms per query 15.02x
6 16 cycled prefixes: reinfo, polish, temper, gilded, raw st, cut gl, smooth, silent, ... 1 Baked substring index - mezz (0.1.0) 0.106 ms per query 0.005 ms per query 1.00x
6 16 cycled prefixes: reinfo, polish, temper, gilded, raw st, cut gl, smooth, silent, ... 2 Suffix tree - Abahgat, mezz (1.3.0) 0.137 ms per query 0.003 ms per query 1.30x
6 16 cycled prefixes: reinfo, polish, temper, gilded, raw st, cut gl, smooth, silent, ... 3 Baked suffix array index - mezz (0.1.0) 0.310 ms per query 0.024 ms per query 2.94x
6 16 cycled prefixes: reinfo, polish, temper, gilded, raw st, cut gl, smooth, silent, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 0.46 ms per query 0.03 ms per query 4.38x
6 16 cycled prefixes: reinfo, polish, temper, gilded, raw st, cut gl, smooth, silent, ... 5 Suffix tree - Abahgat (2.0.0) 1.34 ms per query 0.04 ms per query 12.69x
7 16 cycled prefixes: reinfor, polishe, tempere, gilded , raw ste, cut gla, smooth , silent , ... 1 Suffix tree - Abahgat, mezz (1.3.0) 0.075 ms per query 0.006 ms per query 1.00x
7 16 cycled prefixes: reinfor, polishe, tempere, gilded , raw ste, cut gla, smooth , silent , ... 2 Baked substring index - mezz (0.1.0) 0.095 ms per query 0.005 ms per query 1.27x
7 16 cycled prefixes: reinfor, polishe, tempere, gilded , raw ste, cut gla, smooth , silent , ... 3 Baked suffix array index - mezz (0.1.0) 0.227 ms per query 0.013 ms per query 3.04x
7 16 cycled prefixes: reinfor, polishe, tempere, gilded , raw ste, cut gla, smooth , silent , ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 0.313 ms per query 0.020 ms per query 4.19x
7 16 cycled prefixes: reinfor, polishe, tempere, gilded , raw ste, cut gla, smooth , silent , ... 5 Suffix tree - Abahgat (2.0.0) 1.00 ms per query 0.06 ms per query 13.43x
8 16 cycled prefixes: reinforc, polished, tempered, gilded t, raw stee, cut glas, smooth q, silent s, ... 1 Suffix tree - Abahgat, mezz (1.3.0) 0.039 ms per query 0.003 ms per query 1.00x
8 16 cycled prefixes: reinforc, polished, tempered, gilded t, raw stee, cut glas, smooth q, silent s, ... 2 Baked substring index - mezz (0.1.0) 0.074 ms per query 0.005 ms per query 1.89x
8 16 cycled prefixes: reinforc, polished, tempered, gilded t, raw stee, cut glas, smooth q, silent s, ... 3 Baked suffix array index - mezz (0.1.0) 0.086 ms per query 0.008 ms per query 2.21x
8 16 cycled prefixes: reinforc, polished, tempered, gilded t, raw stee, cut glas, smooth q, silent s, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 0.173 ms per query 0.010 ms per query 4.43x
8 16 cycled prefixes: reinforc, polished, tempered, gilded t, raw stee, cut glas, smooth q, silent s, ... 5 Suffix tree - Abahgat (2.0.0) 0.562 ms per query 0.025 ms per query 14.39x
9 16 cycled prefixes: reinforce, polished , tempered , gilded to, raw steel, cut glass, smooth qu, silent sl, ... 1 Suffix tree - Abahgat, mezz (1.3.0) 0.038 ms per query 0.003 ms per query 1.00x
9 16 cycled prefixes: reinforce, polished , tempered , gilded to, raw steel, cut glass, smooth qu, silent sl, ... 2 Baked suffix array index - mezz (0.1.0) 0.083 ms per query 0.004 ms per query 2.20x
9 16 cycled prefixes: reinforce, polished , tempered , gilded to, raw steel, cut glass, smooth qu, silent sl, ... 3 Baked substring index - mezz (0.1.0) 0.089 ms per query 0.005 ms per query 2.36x
9 16 cycled prefixes: reinforce, polished , tempered , gilded to, raw steel, cut glass, smooth qu, silent sl, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 0.183 ms per query 0.014 ms per query 4.87x
9 16 cycled prefixes: reinforce, polished , tempered , gilded to, raw steel, cut glass, smooth qu, silent sl, ... 5 Suffix tree - Abahgat (2.0.0) 0.517 ms per query 0.022 ms per query 13.74x
10 16 cycled prefixes: reinforced, polished r, tempered s, gilded top, raw steel , cut glass , smooth qua, silent sla, ... 1 Suffix tree - Abahgat, mezz (1.3.0) 0.017 ms per query 0.0004 ms per query 1.00x
10 16 cycled prefixes: reinforced, polished r, tempered s, gilded top, raw steel , cut glass , smooth qua, silent sla, ... 2 Baked suffix array index - mezz (0.1.0) 0.034 ms per query 0.0015 ms per query 1.95x
10 16 cycled prefixes: reinforced, polished r, tempered s, gilded top, raw steel , cut glass , smooth qua, silent sla, ... 3 Baked substring index - mezz (0.1.0) 0.070 ms per query 0.004 ms per query 3.98x
10 16 cycled prefixes: reinforced, polished r, tempered s, gilded top, raw steel , cut glass , smooth qua, silent sla, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 0.076 ms per query 0.004 ms per query 4.37x
10 16 cycled prefixes: reinforced, polished r, tempered s, gilded top, raw steel , cut glass , smooth qua, silent sla, ... 5 Suffix tree - Abahgat (2.0.0) 0.198 ms per query 0.007 ms per query 11.31x
11 16 cycled prefixes: reinforced , polished re, tempered sa, gilded topa, raw steel i, cut glass n, smooth quar, silent slat, ... 1 Suffix tree - Abahgat, mezz (1.3.0) 0.016 ms per query 0.0008 ms per query 1.00x
11 16 cycled prefixes: reinforced , polished re, tempered sa, gilded topa, raw steel i, cut glass n, smooth quar, silent slat, ... 2 Baked suffix array index - mezz (0.1.0) 0.030 ms per query 0.0020 ms per query 1.89x
11 16 cycled prefixes: reinforced , polished re, tempered sa, gilded topa, raw steel i, cut glass n, smooth quar, silent slat, ... 3 Suffix array - Minecraft (1.12-pre6 to 26.2) 0.068 ms per query 0.004 ms per query 4.25x
11 16 cycled prefixes: reinforced , polished re, tempered sa, gilded topa, raw steel i, cut glass n, smooth quar, silent slat, ... 4 Baked substring index - mezz (0.1.0) 0.073 ms per query 0.0018 ms per query 4.57x
11 16 cycled prefixes: reinforced , polished re, tempered sa, gilded topa, raw steel i, cut glass n, smooth quar, silent slat, ... 5 Suffix tree - Abahgat (2.0.0) 0.185 ms per query 0.003 ms per query 11.54x

Allocation Rankings At 100k#

Metric: total allocation for one build, or normalized allocation per benchmark item; lower is better.

Measures temporary objects allocated while building the index for a 100,000-item catalog. Lower values reduce GC pressure and the chance of startup or reload stutter.

Build Allocations: All Defaults#

Prepares the full default search index: item names, tooltip text, mod names, and tags. This is the closest benchmark to the total search setup cost players feel after loading or reloading a large modpack.

100,000 items

Show data table
Rank Implementation/version Value CI +/- Vs best
1 Baked suffix array index - mezz (0.1.0) 217.654 MiB per build 0.00004 MiB per build 1.00x
2 Suffix tree - Abahgat, mezz (1.3.0) 284.618 MiB per build 0.000016 MiB per build 1.31x
3 Baked substring index - mezz (0.1.0) 327.169 MiB per build 0.00007 MiB per build 1.50x
4 Suffix array - Minecraft (1.12-pre6 to 26.2) 504.690 MiB per build 0.000012 MiB per build 2.32x
5 Suffix tree - Abahgat (2.0.0) 1.433 GiB per build 0.00000004 GiB per build 6.74x
Rank Implementation/version Value CI +/- Vs best
1 Baked suffix array index - mezz (0.1.0) 2.229 KiB per item 0.0000004 KiB per item 1.00x
2 Suffix tree - Abahgat, mezz (1.3.0) 2.914 KiB per item 0.00000016 KiB per item 1.31x
3 Baked substring index - mezz (0.1.0) 3.350 KiB per item 0.0000007 KiB per item 1.50x
4 Suffix array - Minecraft (1.12-pre6 to 26.2) 5.168 KiB per item 0.00000012 KiB per item 2.32x
5 Suffix tree - Abahgat (2.0.0) 15.026 KiB per item 0.0000004 KiB per item 6.74x

Typed Search Allocations At 100k#

Metric: total allocation for one typed query, or normalized allocation per benchmark item; lower is better.

Measures temporary objects allocated for each search-box update against a 100,000-item catalog. Lower values reduce GC pressure while a player is typing.

Typed Search Allocations: Default Corpus Prefix#

Simulates a player typing in the search box after the index is ready. Each step searches prefixes from many item-like words, so lower values mean the filtered item list updates with less typing lag.

100,000 items

Show data table
Characters Query Rank Implementation/version Total allocation CI +/- Vs best
1 16 cycled prefixes: r, p, t, g, c, s, A, B, ... 1 Baked substring index - mezz (0.1.0) 74 B per query 19 B per query 1.00x
1 16 cycled prefixes: r, p, t, g, c, s, A, B, ... 2 Suffix tree - Abahgat, mezz (1.3.0) 1.05 MiB per query 0.07 MiB per query 14817.12x
1 16 cycled prefixes: r, p, t, g, c, s, A, B, ... 3 Baked suffix array index - mezz (0.1.0) 6.20 MiB per query 0.22 MiB per query 87403.94x
1 16 cycled prefixes: r, p, t, g, c, s, A, B, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 15.4 MiB per query 0.4 MiB per query 217218.80x
1 16 cycled prefixes: r, p, t, g, c, s, A, B, ... 5 Suffix tree - Abahgat (2.0.0) 67 MiB per query 4 MiB per query 938357.63x
2 16 cycled prefixes: re, po, te, gi, ra, cu, sm, si, ... 1 Baked substring index - mezz (0.1.0) 87.54 B per query 0.22 B per query 1.00x
2 16 cycled prefixes: re, po, te, gi, ra, cu, sm, si, ... 2 Suffix tree - Abahgat, mezz (1.3.0) 219.0 KiB per query 1.4 KiB per query 2561.45x
2 16 cycled prefixes: re, po, te, gi, ra, cu, sm, si, ... 3 Baked suffix array index - mezz (0.1.0) 899 KiB per query 50 KiB per query 10516.78x
2 16 cycled prefixes: re, po, te, gi, ra, cu, sm, si, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 2.01 MiB per query 0.10 MiB per query 24025.30x
2 16 cycled prefixes: re, po, te, gi, ra, cu, sm, si, ... 5 Suffix tree - Abahgat (2.0.0) 8.10 MiB per query 0.22 MiB per query 97075.44x
3 16 cycled prefixes: rei, pol, tem, gil, raw, cut, smo, sil, ... 1 Baked substring index - mezz (0.1.0) 32.83 B per query 0.05 B per query 1.00x
3 16 cycled prefixes: rei, pol, tem, gil, raw, cut, smo, sil, ... 2 Suffix tree - Abahgat, mezz (1.3.0) 163.2 KiB per query 0.4 KiB per query 5092.39x
3 16 cycled prefixes: rei, pol, tem, gil, raw, cut, smo, sil, ... 3 Baked suffix array index - mezz (0.1.0) 305 KiB per query 10 KiB per query 9527.88x
3 16 cycled prefixes: rei, pol, tem, gil, raw, cut, smo, sil, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 966.2 KiB per query 1.4 KiB per query 30140.34x
3 16 cycled prefixes: rei, pol, tem, gil, raw, cut, smo, sil, ... 5 Suffix tree - Abahgat (2.0.0) 3.67 MiB per query 0.04 MiB per query 117298.80x
4 16 cycled prefixes: rein, poli, temp, gild, raw , cut , smoo, sile, ... 1 Baked substring index - mezz (0.1.0) 19.553 KiB per query 0.021 KiB per query 1.00x
4 16 cycled prefixes: rein, poli, temp, gild, raw , cut , smoo, sile, ... 2 Suffix tree - Abahgat, mezz (1.3.0) 149.87 KiB per query 0.07 KiB per query 7.66x
4 16 cycled prefixes: rein, poli, temp, gild, raw , cut , smoo, sile, ... 3 Baked suffix array index - mezz (0.1.0) 180.14 KiB per query 0.18 KiB per query 9.21x
4 16 cycled prefixes: rein, poli, temp, gild, raw , cut , smoo, sile, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 691 KiB per query 19 KiB per query 35.34x
4 16 cycled prefixes: rein, poli, temp, gild, raw , cut , smoo, sile, ... 5 Suffix tree - Abahgat (2.0.0) 2.854 MiB per query 0.010 MiB per query 149.48x
5 16 cycled prefixes: reinf, polis, tempe, gilde, raw s, cut g, smoot, silen, ... 1 Baked substring index - mezz (0.1.0) 31.21 KiB per query 0.03 KiB per query 1.00x
5 16 cycled prefixes: reinf, polis, tempe, gilde, raw s, cut g, smoot, silen, ... 2 Suffix tree - Abahgat, mezz (1.3.0) 125.49 KiB per query 0.16 KiB per query 4.02x
5 16 cycled prefixes: reinf, polis, tempe, gilde, raw s, cut g, smoot, silen, ... 3 Baked suffix array index - mezz (0.1.0) 150.61 KiB per query 0.26 KiB per query 4.83x
5 16 cycled prefixes: reinf, polis, tempe, gilde, raw s, cut g, smoot, silen, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 564 KiB per query 4 KiB per query 18.08x
5 16 cycled prefixes: reinf, polis, tempe, gilde, raw s, cut g, smoot, silen, ... 5 Suffix tree - Abahgat (2.0.0) 2.404 MiB per query 0.029 MiB per query 78.88x
6 16 cycled prefixes: reinfo, polish, temper, gilded, raw st, cut gl, smooth, silent, ... 1 Baked substring index - mezz (0.1.0) 44.35 KiB per query 0.04 KiB per query 1.00x
6 16 cycled prefixes: reinfo, polish, temper, gilded, raw st, cut gl, smooth, silent, ... 2 Suffix tree - Abahgat, mezz (1.3.0) 123.321 KiB per query 0.022 KiB per query 2.78x
6 16 cycled prefixes: reinfo, polish, temper, gilded, raw st, cut gl, smooth, silent, ... 3 Baked suffix array index - mezz (0.1.0) 145.22 KiB per query 0.20 KiB per query 3.27x
6 16 cycled prefixes: reinfo, polish, temper, gilded, raw st, cut gl, smooth, silent, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 544 KiB per query 14 KiB per query 12.27x
6 16 cycled prefixes: reinfo, polish, temper, gilded, raw st, cut gl, smooth, silent, ... 5 Suffix tree - Abahgat (2.0.0) 2.363 MiB per query 0.028 MiB per query 54.55x
7 16 cycled prefixes: reinfor, polishe, tempere, gilded , raw ste, cut gla, smooth , silent , ... 1 Baked substring index - mezz (0.1.0) 39.56 KiB per query 0.15 KiB per query 1.00x
7 16 cycled prefixes: reinfor, polishe, tempere, gilded , raw ste, cut gla, smooth , silent , ... 2 Suffix tree - Abahgat, mezz (1.3.0) 77.44 KiB per query 0.09 KiB per query 1.96x
7 16 cycled prefixes: reinfor, polishe, tempere, gilded , raw ste, cut gla, smooth , silent , ... 3 Baked suffix array index - mezz (0.1.0) 99.7 KiB per query 0.3 KiB per query 2.52x
7 16 cycled prefixes: reinfor, polishe, tempere, gilded , raw ste, cut gla, smooth , silent , ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 414 KiB per query 6 KiB per query 10.45x
7 16 cycled prefixes: reinfor, polishe, tempere, gilded , raw ste, cut gla, smooth , silent , ... 5 Suffix tree - Abahgat (2.0.0) 1.493 MiB per query 0.017 MiB per query 38.66x
8 16 cycled prefixes: reinforc, polished, tempered, gilded t, raw stee, cut glas, smooth q, silent s, ... 1 Baked substring index - mezz (0.1.0) 29.85 KiB per query 0.14 KiB per query 1.00x
8 16 cycled prefixes: reinforc, polished, tempered, gilded t, raw stee, cut glas, smooth q, silent s, ... 2 Suffix tree - Abahgat, mezz (1.3.0) 43.642 KiB per query 0.024 KiB per query 1.46x
8 16 cycled prefixes: reinforc, polished, tempered, gilded t, raw stee, cut glas, smooth q, silent s, ... 3 Baked suffix array index - mezz (0.1.0) 55.61 KiB per query 0.11 KiB per query 1.86x
8 16 cycled prefixes: reinforc, polished, tempered, gilded t, raw stee, cut glas, smooth q, silent s, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 230.5 KiB per query 1.3 KiB per query 7.72x
8 16 cycled prefixes: reinforc, polished, tempered, gilded t, raw stee, cut glas, smooth q, silent s, ... 5 Suffix tree - Abahgat (2.0.0) 852 KiB per query 12 KiB per query 28.54x
9 16 cycled prefixes: reinforce, polished , tempered , gilded to, raw steel, cut glass, smooth qu, silent sl, ... 1 Baked substring index - mezz (0.1.0) 34.91 KiB per query 0.08 KiB per query 1.00x
9 16 cycled prefixes: reinforce, polished , tempered , gilded to, raw steel, cut glass, smooth qu, silent sl, ... 2 Suffix tree - Abahgat, mezz (1.3.0) 41.90 KiB per query 0.03 KiB per query 1.20x
9 16 cycled prefixes: reinforce, polished , tempered , gilded to, raw steel, cut glass, smooth qu, silent sl, ... 3 Baked suffix array index - mezz (0.1.0) 53.60 KiB per query 0.10 KiB per query 1.54x
9 16 cycled prefixes: reinforce, polished , tempered , gilded to, raw steel, cut glass, smooth qu, silent sl, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 224 KiB per query 5 KiB per query 6.40x
9 16 cycled prefixes: reinforce, polished , tempered , gilded to, raw steel, cut glass, smooth qu, silent sl, ... 5 Suffix tree - Abahgat (2.0.0) 822 KiB per query 10 KiB per query 23.53x
10 16 cycled prefixes: reinforced, polished r, tempered s, gilded top, raw steel , cut glass , smooth qua, silent sla, ... 1 Suffix tree - Abahgat, mezz (1.3.0) 20.000 KiB per query 0.006 KiB per query 1.00x
10 16 cycled prefixes: reinforced, polished r, tempered s, gilded top, raw steel , cut glass , smooth qua, silent sla, ... 2 Baked suffix array index - mezz (0.1.0) 24.594 KiB per query 0.0012 KiB per query 1.23x
10 16 cycled prefixes: reinforced, polished r, tempered s, gilded top, raw steel , cut glass , smooth qua, silent sla, ... 3 Baked substring index - mezz (0.1.0) 25.954 KiB per query 0.027 KiB per query 1.30x
10 16 cycled prefixes: reinforced, polished r, tempered s, gilded top, raw steel , cut glass , smooth qua, silent sla, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 97.42 KiB per query 0.04 KiB per query 4.87x
10 16 cycled prefixes: reinforced, polished r, tempered s, gilded top, raw steel , cut glass , smooth qua, silent sla, ... 5 Suffix tree - Abahgat (2.0.0) 361.3 KiB per query 1.8 KiB per query 18.06x
11 16 cycled prefixes: reinforced , polished re, tempered sa, gilded topa, raw steel i, cut glass n, smooth quar, silent slat, ... 1 Suffix tree - Abahgat, mezz (1.3.0) 17.328 KiB per query 0.008 KiB per query 1.00x
11 16 cycled prefixes: reinforced , polished re, tempered sa, gilded topa, raw steel i, cut glass n, smooth quar, silent slat, ... 2 Baked suffix array index - mezz (0.1.0) 21.651 KiB per query 0.030 KiB per query 1.25x
11 16 cycled prefixes: reinforced , polished re, tempered sa, gilded topa, raw steel i, cut glass n, smooth quar, silent slat, ... 3 Baked substring index - mezz (0.1.0) 26.21 KiB per query 0.13 KiB per query 1.51x
11 16 cycled prefixes: reinforced , polished re, tempered sa, gilded topa, raw steel i, cut glass n, smooth quar, silent slat, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 88.7 KiB per query 0.5 KiB per query 5.12x
11 16 cycled prefixes: reinforced , polished re, tempered sa, gilded topa, raw steel i, cut glass n, smooth quar, silent slat, ... 5 Suffix tree - Abahgat (2.0.0) 322.1 KiB per query 0.7 KiB per query 18.59x
Characters Query Rank Implementation/version Per-item allocation CI +/- Vs best
1 16 cycled prefixes: r, p, t, g, c, s, A, B, ... 1 Baked substring index - mezz (0.1.0) 0.001 B per item 0.00019 B per item 1.00x
1 16 cycled prefixes: r, p, t, g, c, s, A, B, ... 2 Suffix tree - Abahgat, mezz (1.3.0) 11.0 B per item 0.7 B per item 14817.12x
1 16 cycled prefixes: r, p, t, g, c, s, A, B, ... 3 Baked suffix array index - mezz (0.1.0) 65.0 B per item 2.3 B per item 87403.94x
1 16 cycled prefixes: r, p, t, g, c, s, A, B, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 162 B per item 5 B per item 217218.80x
1 16 cycled prefixes: r, p, t, g, c, s, A, B, ... 5 Suffix tree - Abahgat (2.0.0) 698 B per item 50 B per item 938357.63x
2 16 cycled prefixes: re, po, te, gi, ra, cu, sm, si, ... 1 Baked substring index - mezz (0.1.0) 0.001 B per item 0.0000022 B per item 1.00x
2 16 cycled prefixes: re, po, te, gi, ra, cu, sm, si, ... 2 Suffix tree - Abahgat, mezz (1.3.0) 2.242 B per item 0.014 B per item 2561.45x
2 16 cycled prefixes: re, po, te, gi, ra, cu, sm, si, ... 3 Baked suffix array index - mezz (0.1.0) 9.2 B per item 0.5 B per item 10516.78x
2 16 cycled prefixes: re, po, te, gi, ra, cu, sm, si, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 21.0 B per item 1.1 B per item 24025.30x
2 16 cycled prefixes: re, po, te, gi, ra, cu, sm, si, ... 5 Suffix tree - Abahgat (2.0.0) 85.0 B per item 2.3 B per item 97075.44x
3 16 cycled prefixes: rei, pol, tem, gil, raw, cut, smo, sil, ... 1 Baked substring index - mezz (0.1.0) 0.000 B per item 0.0000005 B per item 1.00x
3 16 cycled prefixes: rei, pol, tem, gil, raw, cut, smo, sil, ... 2 Suffix tree - Abahgat, mezz (1.3.0) 1.672 B per item 0.005 B per item 5092.39x
3 16 cycled prefixes: rei, pol, tem, gil, raw, cut, smo, sil, ... 3 Baked suffix array index - mezz (0.1.0) 3.13 B per item 0.11 B per item 9527.88x
3 16 cycled prefixes: rei, pol, tem, gil, raw, cut, smo, sil, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 9.894 B per item 0.015 B per item 30140.34x
3 16 cycled prefixes: rei, pol, tem, gil, raw, cut, smo, sil, ... 5 Suffix tree - Abahgat (2.0.0) 38.5 B per item 0.4 B per item 117298.80x
4 16 cycled prefixes: rein, poli, temp, gild, raw , cut , smoo, sile, ... 1 Baked substring index - mezz (0.1.0) 0.200 B per item 0.00021 B per item 1.00x
4 16 cycled prefixes: rein, poli, temp, gild, raw , cut , smoo, sile, ... 2 Suffix tree - Abahgat, mezz (1.3.0) 1.535 B per item 0.0007 B per item 7.66x
4 16 cycled prefixes: rein, poli, temp, gild, raw , cut , smoo, sile, ... 3 Baked suffix array index - mezz (0.1.0) 1.845 B per item 0.0019 B per item 9.21x
4 16 cycled prefixes: rein, poli, temp, gild, raw , cut , smoo, sile, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 7.08 B per item 0.20 B per item 35.34x
4 16 cycled prefixes: rein, poli, temp, gild, raw , cut , smoo, sile, ... 5 Suffix tree - Abahgat (2.0.0) 29.93 B per item 0.10 B per item 149.48x
5 16 cycled prefixes: reinf, polis, tempe, gilde, raw s, cut g, smoot, silen, ... 1 Baked substring index - mezz (0.1.0) 0.320 B per item 0.0003 B per item 1.00x
5 16 cycled prefixes: reinf, polis, tempe, gilde, raw s, cut g, smoot, silen, ... 2 Suffix tree - Abahgat, mezz (1.3.0) 1.285 B per item 0.0016 B per item 4.02x
5 16 cycled prefixes: reinf, polis, tempe, gilde, raw s, cut g, smoot, silen, ... 3 Baked suffix array index - mezz (0.1.0) 1.542 B per item 0.0027 B per item 4.83x
5 16 cycled prefixes: reinf, polis, tempe, gilde, raw s, cut g, smoot, silen, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 5.78 B per item 0.04 B per item 18.08x
5 16 cycled prefixes: reinf, polis, tempe, gilde, raw s, cut g, smoot, silen, ... 5 Suffix tree - Abahgat (2.0.0) 25.2 B per item 0.3 B per item 78.88x
6 16 cycled prefixes: reinfo, polish, temper, gilded, raw st, cut gl, smooth, silent, ... 1 Baked substring index - mezz (0.1.0) 0.454 B per item 0.0004 B per item 1.00x
6 16 cycled prefixes: reinfo, polish, temper, gilded, raw st, cut gl, smooth, silent, ... 2 Suffix tree - Abahgat, mezz (1.3.0) 1.263 B per item 0.00023 B per item 2.78x
6 16 cycled prefixes: reinfo, polish, temper, gilded, raw st, cut gl, smooth, silent, ... 3 Baked suffix array index - mezz (0.1.0) 1.487 B per item 0.0021 B per item 3.27x
6 16 cycled prefixes: reinfo, polish, temper, gilded, raw st, cut gl, smooth, silent, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 5.57 B per item 0.14 B per item 12.27x
6 16 cycled prefixes: reinfo, polish, temper, gilded, raw st, cut gl, smooth, silent, ... 5 Suffix tree - Abahgat (2.0.0) 24.77 B per item 0.29 B per item 54.55x
7 16 cycled prefixes: reinfor, polishe, tempere, gilded , raw ste, cut gla, smooth , silent , ... 1 Baked substring index - mezz (0.1.0) 0.405 B per item 0.0015 B per item 1.00x
7 16 cycled prefixes: reinfor, polishe, tempere, gilded , raw ste, cut gla, smooth , silent , ... 2 Suffix tree - Abahgat, mezz (1.3.0) 0.793 B per item 0.0009 B per item 1.96x
7 16 cycled prefixes: reinfor, polishe, tempere, gilded , raw ste, cut gla, smooth , silent , ... 3 Baked suffix array index - mezz (0.1.0) 1.021 B per item 0.003 B per item 2.52x
7 16 cycled prefixes: reinfor, polishe, tempere, gilded , raw ste, cut gla, smooth , silent , ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 4.23 B per item 0.07 B per item 10.45x
7 16 cycled prefixes: reinfor, polishe, tempere, gilded , raw ste, cut gla, smooth , silent , ... 5 Suffix tree - Abahgat (2.0.0) 15.66 B per item 0.18 B per item 38.66x
8 16 cycled prefixes: reinforc, polished, tempered, gilded t, raw stee, cut glas, smooth q, silent s, ... 1 Baked substring index - mezz (0.1.0) 0.306 B per item 0.0015 B per item 1.00x
8 16 cycled prefixes: reinforc, polished, tempered, gilded t, raw stee, cut glas, smooth q, silent s, ... 2 Suffix tree - Abahgat, mezz (1.3.0) 0.447 B per item 0.00024 B per item 1.46x
8 16 cycled prefixes: reinforc, polished, tempered, gilded t, raw stee, cut glas, smooth q, silent s, ... 3 Baked suffix array index - mezz (0.1.0) 0.569 B per item 0.0011 B per item 1.86x
8 16 cycled prefixes: reinforc, polished, tempered, gilded t, raw stee, cut glas, smooth q, silent s, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 2.360 B per item 0.014 B per item 7.72x
8 16 cycled prefixes: reinforc, polished, tempered, gilded t, raw stee, cut glas, smooth q, silent s, ... 5 Suffix tree - Abahgat (2.0.0) 8.73 B per item 0.12 B per item 28.54x
9 16 cycled prefixes: reinforce, polished , tempered , gilded to, raw steel, cut glass, smooth qu, silent sl, ... 1 Baked substring index - mezz (0.1.0) 0.358 B per item 0.0009 B per item 1.00x
9 16 cycled prefixes: reinforce, polished , tempered , gilded to, raw steel, cut glass, smooth qu, silent sl, ... 2 Suffix tree - Abahgat, mezz (1.3.0) 0.429 B per item 0.0004 B per item 1.20x
9 16 cycled prefixes: reinforce, polished , tempered , gilded to, raw steel, cut glass, smooth qu, silent sl, ... 3 Baked suffix array index - mezz (0.1.0) 0.549 B per item 0.0010 B per item 1.54x
9 16 cycled prefixes: reinforce, polished , tempered , gilded to, raw steel, cut glass, smooth qu, silent sl, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 2.29 B per item 0.05 B per item 6.40x
9 16 cycled prefixes: reinforce, polished , tempered , gilded to, raw steel, cut glass, smooth qu, silent sl, ... 5 Suffix tree - Abahgat (2.0.0) 8.41 B per item 0.10 B per item 23.53x
10 16 cycled prefixes: reinforced, polished r, tempered s, gilded top, raw steel , cut glass , smooth qua, silent sla, ... 1 Suffix tree - Abahgat, mezz (1.3.0) 0.205 B per item 0.00007 B per item 1.00x
10 16 cycled prefixes: reinforced, polished r, tempered s, gilded top, raw steel , cut glass , smooth qua, silent sla, ... 2 Baked suffix array index - mezz (0.1.0) 0.252 B per item 0.000012 B per item 1.23x
10 16 cycled prefixes: reinforced, polished r, tempered s, gilded top, raw steel , cut glass , smooth qua, silent sla, ... 3 Baked substring index - mezz (0.1.0) 0.266 B per item 0.00028 B per item 1.30x
10 16 cycled prefixes: reinforced, polished r, tempered s, gilded top, raw steel , cut glass , smooth qua, silent sla, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 0.998 B per item 0.0004 B per item 4.87x
10 16 cycled prefixes: reinforced, polished r, tempered s, gilded top, raw steel , cut glass , smooth qua, silent sla, ... 5 Suffix tree - Abahgat (2.0.0) 3.699 B per item 0.018 B per item 18.06x
11 16 cycled prefixes: reinforced , polished re, tempered sa, gilded topa, raw steel i, cut glass n, smooth quar, silent slat, ... 1 Suffix tree - Abahgat, mezz (1.3.0) 0.177 B per item 0.00008 B per item 1.00x
11 16 cycled prefixes: reinforced , polished re, tempered sa, gilded topa, raw steel i, cut glass n, smooth quar, silent slat, ... 2 Baked suffix array index - mezz (0.1.0) 0.222 B per item 0.0003 B per item 1.25x
11 16 cycled prefixes: reinforced , polished re, tempered sa, gilded topa, raw steel i, cut glass n, smooth quar, silent slat, ... 3 Baked substring index - mezz (0.1.0) 0.268 B per item 0.0013 B per item 1.51x
11 16 cycled prefixes: reinforced , polished re, tempered sa, gilded topa, raw steel i, cut glass n, smooth quar, silent slat, ... 4 Suffix array - Minecraft (1.12-pre6 to 26.2) 0.909 B per item 0.005 B per item 5.12x
11 16 cycled prefixes: reinforced , polished re, tempered sa, gilded topa, raw steel i, cut glass n, smooth quar, silent slat, ... 5 Suffix tree - Abahgat (2.0.0) 3.298 B per item 0.007 B per item 18.59x

Retained Memory#

Metric: RAM kept by the ready-to-use search index (bytes); lower is better.

Estimates how much heap the completed all-defaults search index keeps after loading. Lower values leave more memory for the rest of the game and modpack.

100,000 items

Show data table
Rank Implementation/version Value Vs best
1 Baked substring index - mezz (0.1.0) 64.8 MiB 1.00x
2 Baked suffix array index - mezz (0.1.0) 88.0 MiB 1.36x
3 Suffix tree - Abahgat, mezz (1.3.0) 107 MiB 1.64x
4 Suffix array - Minecraft (1.12-pre6 to 26.2) 108 MiB 1.67x
5 Suffix tree - Abahgat (2.0.0) 148 MiB 2.28x

Additional retained-memory breakdown

A synthetic JEI item-list baseline is kept alive before measurement. The benchmark then generates one indexed result value per search string, matching JEI's separate search-tree shape, builds the index, releases the input corpus, and reports additional JVM-retained heap. Searchable strings and per-search-string result handles are not baseline memory, so raw strings or encoded text structures retained by an index, including Lucene term and postings data, count as additional search memory. The Lucene adapter uses heap-backed ByteBuffersDirectory here; an mmap-backed Lucene variant would need a separate mapped-file / OS page-cache metric. Implementation-specific components are populated only when the benchmark can identify them directly; the remainder is reported as unattributed.

Rank Implementation/version Total additional Heap delta Object graph Known index/text storage Result mapping Wrapper Unattributed
1 Baked substring index - mezz (0.1.0) 64.8 MiB not captured by this run not captured by this run not captured by this run not captured by this run not captured by this run not captured by this run
2 Baked suffix array index - mezz (0.1.0) 88.0 MiB not captured by this run not captured by this run not captured by this run not captured by this run not captured by this run not captured by this run
3 Suffix tree - Abahgat, mezz (1.3.0) 107 MiB not captured by this run not captured by this run not captured by this run not captured by this run not captured by this run not captured by this run
4 Suffix array - Minecraft (1.12-pre6 to 26.2) 108 MiB not captured by this run not captured by this run not captured by this run not captured by this run not captured by this run not captured by this run
5 Suffix tree - Abahgat (2.0.0) 148 MiB not captured by this run not captured by this run not captured by this run not captured by this run not captured by this run not captured by this run

Raw Data#