Benchmarks

Reproducible performance and quality measurements from repositories large enough to expose where Atlas Scout is wrong.

Two repositories, two lessons

Firefox and Linux stress different parts of Atlas Scout. Firefox exposed a resolver that did far too much work before the index became ready. Linux exposed the cost—and the payoff—of building a reusable search path for the questions an agent asks after indexing.

38.1×faster Firefox readiness
569.7×faster Firefox resolution
124.1×faster Linux search workload
≈30requests in the measured Linux query mix

These are separate same-host measurements with different protocols. The Firefox result is the stronger end-to-end scaling test; Linux is the stronger controlled search tradeoff comparison.

Firefox · reboot-cold Preview 7 candidate

From two and a half hours to four minutes

We do not merely benchmark Atlas Scout to prove it is fast. We benchmark it to discover where it is wrong.

Preview 6 successfully indexed the Firefox checkout, but complete fresh readiness took 2 hours, 32 minutes, and 46 seconds. Nearly all of that time was spent resolving relationships across files.

The Preview 7 source candidate indexed the same checkout in 4 minutes and 0.43 seconds after a host reboot with a verified-empty cache: 38.1× faster end to end. The resolution phase fell from more than two and a half hours to 15.823 seconds, a 569.7× improvement.

Complete fresh-index time

Preview 6 and Preview 7 Firefox indexing timeOn the same host and Firefox checkout, Preview 6 took 9,166 seconds and the Preview 7 candidate took 240.43 seconds. Bars use the same linear scale.Preview 62h 32m 46sPreview 74m 00.43s38.1× faster end to endSame linear scale
Same host and Firefox corpus. Preview 7 began after reboot with a verified-empty cache; Preview 6 used a fresh database without a reboot.

A Firefox-sized structural map

356,923supported and indexed files
52.58Msupported source lines
4.34Msymbols
3.00Mstructural relationships

The checkout contained 469,704 discovered files at Firefox revision f4e6e71e9c4deb3818880f2c8a22de09a92955ce. Atlas Scout indexed every supported file with zero failed files.

Where the indexing time went

Resolution share of complete Firefox indexing timeResolution consumed 98.34 percent of Preview 6 indexing time and 6.59 percent of Preview 7 indexing time.Cross-file resolutionEverything elsePreview 698.34%Preview 76.59%The multi-hour resolution tail fell from 9,014.075s to 15.823s.
Share of complete internal wall time. The chart separates resolution from all other phases; it does not imply that extraction itself became faster.

Interactive after the index is ready

The corrected search benchmark measured 500 sequential requests in one persistent MCP session: 25 distinct queries across five classes, repeated in four interleaved passes. Initialization, readiness checks, and one warm-up were excluded. All requests completed without tool errors.

Median query latency at Firefox scale

Median Atlas Scout query latencyA logarithmic plot from one to one thousand milliseconds. Scoped and unique exact search, references, and outlines complete in a few milliseconds; fuzzy search takes 63.01 milliseconds and a full schema summary takes 345.6 milliseconds.1ms10ms100ms1000msScoped exact search1.09msUnique exact search1.18msReference lookup2.92msFile outline3.41msBroad fuzzy search63.01msFull schema summary345.6msLogarithmic scale · p50
Warm persistent MCP sessions after readiness and one excluded warm-up. The log scale keeps millisecond exact lookups and the complete schema summary legible together.
Query classp50p95p99
Exact unique name1.18ms1.69ms1.78ms
Ambiguous exact name1.48ms2.62ms11.47ms
Path-scoped exact name1.09ms1.70ms9.01ms
Broad fuzzy concept63.01ms133.99ms161.82ms
Exact miss1.68ms1.99ms2.04ms

A separate 300-request run measured a populated reference lookup at 2.92ms p50 and a 20-item file outline at 3.41ms p50. These timings include serializing useful model context, not only database lookup time.

Faster without giving the model less

The optimization changes how Scout narrows possible imported targets, not the rule for accepting a relationship. Preview 6 and the Preview 7 candidate produced the same 1,204 import-binding and 2,378 import-path resolutions. Ambiguous imports remain unresolved rather than guessed.

The ordered projection of relationship identity, resolved target, strategy, and confidence reproduced the expected SHA-256:

e2282fd551592a3d1e4b89e8940ef21b2f1b615e5bc0eb432572cb3cad90b354

Scoped searches also passed deliberately difficult probes: a common function named test was returned from the requested file, while a scoped search for Distance still found compound CamelCase names. The final database passed its integrity check.

The costs are part of the result

Preview 7 deliberately spends more during indexing so repeated agent queries do less:

  • The generated database is 5.15% larger.
  • Peak memory during the reboot-cold run is 4.0% higher.
  • Extraction and commit take 49.1% longer before the much shorter resolution phase.
  • Starting a fresh MCP process still takes about 5.7 seconds on this machine.
  • A complete workspace schema summary remains roughly a 346ms operation.
  • A same-profile no-change refresh took 8.32 seconds of process wall time, compared with 7.07 seconds in Preview 6.

The accepted trade is modestly more local storage and indexing work in exchange for removing the multi-hour readiness tail and making repeated navigation interactive.

Method and interpretation boundaries

Both completed databases used the same Firefox checkout and the same Linux workstation: an AMD Ryzen 9 5950X with 32 GiB of memory and a Samsung 980 PRO NVMe SSD. The Preview 7 command began roughly three minutes after reboot. No recursive operation had traversed the source tree, and the external Atlas Scout cache was new and verified empty.

The Preview 6 control used a fresh database on the same host and corpus, but it did not begin after reboot. Preview 6 used the public release binary; Preview 7 used a recorded local source candidate built with Rust 1.95.0, while release CI uses Rust 1.94.0. The measurements therefore validate the source candidate, not the byte identity or a universal performance guarantee for the eventual public artifact.

Query percentiles are nearest-rank observations from warm persistent MCP sessions. MCP initialization, readiness, and one warm-up were excluded from those distributions and reported separately.

The benchmark was tested too

The first search pass was rejected after its query generator produced invalid test cases. That complete pass was retained, the generator was corrected, and all 500 requests were run again. An apparent warm-refresh regression was also retained and traced to switching resource profiles before the true same-profile refresh was measured.

A benchmark that cannot fail is a marketing prop. Rejected and inconvenient observations remain part of this record.

Locked provenance

The raw evidence bundle contains the machine result, timing record, source-candidate patch, database validation, corrected and rejected query distributions, targeted tool measurements, refresh records, and host diagnostics. Every artifact is covered by a retained SHA-256 manifest.

Evidence manifest
1e1e6cfaa04d4d4db54597bb42766272e4d6a803dc5c372c5ee9f45dce042520
Candidate source patch
c9ec223886695bfbb25b363ede5c76539eae668e6d3d20c1bf8b05424eadb6b4
Semantic projection
e2282fd551592a3d1e4b89e8940ef21b2f1b615e5bc0eb432572cb3cad90b354
Database integrity
quick_check = ok

The raw bundle remains private because it contains absolute host paths. This page publishes the redacted measurements and the hashes that bind them to the retained record.

Linux kernel · controlled Preview 6 / Preview 7 comparison

Index once. Ask many questions.

Linux revealed a different tradeoff. Preview 7 took a two-run midpoint of 3 minutes and 10.94 seconds to build a fresh Full index, compared with 2 minutes and 10.69 seconds in Preview 6. That is a real 46.1% regression, and the database is 8.97% larger.

Once ready, the same completed index transformed the agent experience. A matched 500-request search workload fell from 16 minutes and 50.14 seconds to 8.14 seconds: 124.1× faster. For this deliberately equal mix of five query classes, Preview 7 recovered its additional indexing cost after approximately 30 requests.

When the indexing investment is recovered

Cumulative Linux indexing and search time by number of requestsPreview 7 begins 60.25 seconds behind because its fresh index is slower. Using the average request time from the measured equal five-class workload, its cumulative time crosses Preview 6 after approximately 30 search requests.120s160s200s240s01020304050≈30 requestsPreview 6Preview 7 candidateSearch requests after a fresh indexCumulative wall time
Modeled directly from the two-run fresh-index midpoint and average request time in the measured 500-request workload. The crossover belongs to this equal mix of five query classes; it is not a universal threshold.

A different kind of multi-million-symbol repository

77,865supported and indexed files
39.26Msupported source lines
4.78Msymbols
0failed files in all four runs

The checkout contained 94,743 discovered files at Linux revision 248951ddc14de84de3910f9b13f51491a8cd91df. Both versions produced 4,782,846 symbols, 84,107 relationships, and 86 semantic anchors.

Preview 7 removed 22.32 seconds from relationship resolution, but added 82.45 seconds to extraction and commit. Unlike Firefox, this corpus did not have a multi-hour resolution tail, so the cost of building the compact retrieval index is plainly visible.

Multi-second scans become interactive lookups

The matched workload used 25 distinct queries in each of five classes, four passes, deterministic rotating interleave, and one persistent MCP process per version. All 1,000 measured requests completed without tool errors.

Median search latency across 4.78 million symbols

Preview 6 and Preview 7 Linux search latencyA logarithmic comparison of median latency across five query classes. Every Preview 7 class is faster, ranging from 49.9 times faster for broad fuzzy search to 3,714.8 times faster for exact unique-name search.0.5ms1ms10ms100ms1s10sExact unique0.99ms3,688.19msExact ambiguous1.98ms891.14msPath-scoped exact1.29ms892.26msBroad fuzzy60.73ms3,031.12msExact miss1.32ms757.55msPreview 6Preview 7 candidateLogarithmic scale · p50
Same committed query set in persistent, sequential MCP sessions. Each point is the p50 of 100 measured calls after readiness and one excluded warm-up.
Query classPreview 6 p50Preview 7 p50Improvement
Exact unique name3,688.19ms0.99ms3,714.8×
Ambiguous exact name891.14ms1.98ms450.8×
Path-scoped exact name892.26ms1.29ms692.5×
Broad fuzzy concept3,031.12ms60.73ms49.9×
Exact miss757.55ms1.32ms574.8×

The speedup did not come from simply returning less. Preview 7 repeatedly found useful candidates for the broad concepts virtual filesystem inode and system call dispatch, where Preview 6 returned nothing. A third probe,cgroup resource controller, remained empty in both versions. This is a repeatable sample, not a complete relevance study.

Existing graph navigation remained fast: a 20-item outline measured 1.76ms p50 and a populated reference lookup 3.10ms p50 in Preview 7. The complete 500-request workload sustained 61.44 sequential requests per second, compared with 0.49 in Preview 6.

Stored meaning matched; product boundaries remained visible

Complete canonical projections were generated independently from both databases and hashed. All 77,865 indexed files, 4,782,846 symbols, 84,107 relationships, and 86 semantic anchors matched exactly. Both databases returned PRAGMA quick_check = ok.

ProjectionRowsResult
Indexed files77,865Identical
Symbols4,782,846Identical
Relationships84,107Identical
Semantic anchors86Identical

The costs

  • Fresh Full indexing is 46.1% slower on this corpus.
  • The database grows by 274.1 MiB, or 8.97%.
  • Extraction and database writing are roughly 81–82% slower while the compact retrieval structures are built.
  • Starting a fresh MCP process rises from about 3.26 seconds to 4.67 seconds, making a persistent session important.

The coverage boundary

Atlas Scout currently extracts 4.61 million C/C++ symbols from this checkout, but its C/C++ extractor is partial and this database contains no C/C++ relationships. The Rust and Python relationship graph is populated. This benchmark validates search across a multi-million-symbol kernel corpus; it does not claim a complete Linux C call graph.

Linux method and locked provenance

This is a same-host, same-corpus, fresh-database comparison—not a reboot-cold test. Each version received two fresh Full indexes in the alternating order Preview 6, Preview 7, Preview 7, Preview 6. The midpoint is the arithmetic midpoint of two close observations, not a high-confidence population median.

Search measurements came from persistent, sequential MCP sessions against the completed databases. One warm-up was excluded and percentiles use nearest-rank observations. Preview 6 was the public release binary; Preview 7 was the same recorded local source candidate used for the Firefox test.

Evidence manifest
eed3b1a7c223425008b18099f622889d7ae9df03a542432597b4b9312c7e03a8
Candidate source patch
c9ec223886695bfbb25b363ede5c76539eae668e6d3d20c1bf8b05424eadb6b4
Symbol projection
2812dd02ae96126e8d953ce2dde0652630ed7f891eaf10f056ba031052ad1718
Database integrity
quick_check = ok

The raw evidence bundle remains private because it contains absolute host paths. The retained manifest covers all 30 evidence files; this page publishes redacted results and the hashes that bind them to that record.