← Archive
DemosBlogTry PViz

Addendum · reference analyzer preview, not yet enabled in the hosted product

This page re-examines VSCode: Turning a 72 MB Bundle into Focused Architecture Views. The original page and its evidence are unchanged.

October 2026microsoft/vscodeTypeScriptJavaScriptRustaddendumreference analyzerslicingcall graph

VSCode Slicing: Reference-Analyzer Addendum

The slicing study repeated on the nearest recoverable VSCode commit with both analyzers and slicers.

  • On the nearest commit the cycle groups and hubs match the May showcase (148 groups, largest 204).
  • The reference analyzer adds 145,829 resolved call sites; its bundle is about 37.1 million tokens, so slices remain essential.
  • Framework detections from test fixtures are marked ambiguous; read the status before relying on them.
Files
10,318
Resolved calls
145,829
Reference run
74 min, 4.8 GB

Evaluation evidence

Primary artifacts for auditing the evaluation and its source records.

Addendum evidence (zip)
Commit recovery, run records, structure and call facts, and the regenerated slices from both slicers.
UI metrics (.json)
Small UI-ready summary payload
PViz schema [email protected]Metrics schema showcase-metrics@v1Generated 2026-10-26
⚠

Addendum: re-examined with the reference analyzer and slicer

This page re-examines the May showcase with the PViz reference analyzer and slicer, which are not yet enabled in the hosted product. The original report, metrics and fifteen slice files are unchanged. The exact May source could not be recovered; this addendum uses the nearest upstream commit.

1. Original research question

How does slicing turn one large analysis bundle into focused, much smaller views of a very large repository?

2. Original analyzer and evidence

A bundle of schema v1.1 for VSCode (10,311 nodes; 70.2 MB readable, 22.7 MB compressed) and slices produced with the slicer of that time, published with a report and a metrics file.

3. Source revision

The May slices list every analyzed file with its line count. No upstream commit matches all of them; the nearest, `e78dfbd537bc` (2026-04-28), differs in 55 of 10,311 files. On that commit today's legacy analyzer finds 10,318 files, 148 cycle groups with a largest of 204, and `lifecycle.ts` with 2,653 importers, essentially the May figures (143 groups, largest 204).

4. Reference analyzer and configuration

Reference analyzer (preview: not enabled in the hosted product), release-candidate image revision `08823e7d7662`, run offline on the recovered source with the product's own analysis call. Full repository, no scoping. The reference run took 74 minutes with a peak of 4.8 GB of memory (legacy: 47 minutes, 1.3 GB). The repository has 2,301,203 source lines by the product's own estimate.

5. Structure: May, legacy and reference

The May figure for the most-imported file is quoted from the original hub table.

MeasureMay 2026 (published)Legacy, nearest commitReference, nearest commit
Files103111031810318
Cycle groups (more than one file)143148148
Largest cycle groups (files)204204, 90, 55204, 90, 55
Most-imported filelifecycle.ts (2,653)lifecycle.ts (2,653)lifecycle.ts (2,653)
Relationship records—92,374112,111
Bundle size readable / compressed (MB)70.2 / 22.788.1 / 41.8259.8 / 141.7

5b. What the reference analyzer adds

MeasureValue
Call sites analyzed / resolved inside the repository488,728 / 145,829 (30%)
Distinct caller → callee pairs102,971
Most widely called symbolDisposable._register (from 1,474 files)
Frameworks with an exact detectionclap, electron, express, react, tokio
Frameworks detected only ambiguously (mostly Copilot test-fixture projects)angular, junit5, nestjs, nextjs, svelte, vite
Command entries / UI components30 / 418
Zones2416
Dead-module candidates / duplicate groups1,813 / 200

5c. The same slices then and now (bytes, readable / compressed)

Blast radius: `src/vs/base/common/processes.ts`, incoming, depth 4, at most 500 nodes and 2,000 edges, as in May.

SliceMay 2026Legacy slicer, nowReference slicer, nowSeconds (legacy / reference)
scc-summary12,660 / 9,78511,530 / 8,65513,696 / 10,4091.8 / 3.6
hub-summary48,908 / 28,82561,607 / 33,61993,415 / 52,6313.8 / 6.1
blast-radius411,103 / 323,447607,045 / 465,228664,948 / 509,7732.4 / 4.5
framework-summary (reference only)n/an/a24,498 / 15,453- / 3.5

6. Material differences

**The module structure is the same.** Both analyzers produce the same cycle groups and hubs as May. The reference analyzer's additional TypeScript relations (constructions, extends, implements) do not change them.

**The bundle is much larger.** The reference bundle is 141.7 MB compressed, about 37.1 million tokens by the product's estimate. Slicing matters more, not less: the blast-radius slice reaches 500 files (truncated: true) in a file of 498 KB.

**Calls add a second view of impact.** `processes.ts` is imported by 19 files, and the import-based blast radius from it reaches the 500-file cap. Resolved calls into its functions (2 of them) come from 5 of those importers. Call resolution is incomplete (30% of call sites), so this narrows where to look first rather than proving the other importers unaffected.

7. Findings retained, revised and new

Original findingStatusAddendum
A single bundle can be sliced into focused views each a small fraction of its sizeRetainedReproduced with both slicers; the reference bundle is about 37.1 million tokens, so slices are the only practical way to give an LLM part of it.
Cyclic risk concentrates in a few large componentsRetainedEssentially the same groups: 148 cycle groups, largest 204 files, in the chat, notebook and terminal contributions.
Incoming hubs are foundational platform APIs (lifecycle, uri, event, nls, instantiation)RetainedSame ranking. The call graph confirms it: `Disposable._register` in `lifecycle.ts` is called from 1,474 files.
(new) Calls and frameworksNew145,829 resolved call sites; Electron, clap and Tokio entry points, 30 command entries and 418 UI components.
(new) Framework detections need their status readNewDetections found only ambiguously (angular, junit5, nestjs, nextjs, svelte, vite), mostly in Copilot's test-fixture projects, are marked as such by the analyzer; only clap, electron, express, react, tokio are exact.

8. Supporting evidence

The commit recovery log, both run records, the structure and call facts and all regenerated slices (readable and compressed, both slicers) are in the download below. The full bundles are retained in the validation evidence and not published because of their size.

9. Limitations and comparability

The source is the nearest commit, not the May source (55 files differ). The reference analysis needs about 4.8 GB of memory and over an hour for a repository of this size. A repository of 2,301,203 source lines is above the proposed one-million-line analysis cap, if that cap is activated. Call resolution covers 30% of call sites.

10. Updated conclusion

The May showcase's structural findings hold on the nearest recoverable source with both current analyzers. The reference analyzer adds a call graph and framework entries that make impact questions answerable by calls as well as imports, at the cost of a bundle several times larger and a long, memory-heavy analysis. That strengthens the case the showcase made for slicing.