perf(checker): accelerate Go package loading - #472
Merged
akonwi merged 5 commits intoAug 26, 2026
Merged
Conversation
Profile Ard's real test pipeline and reduce Go package-loading latency without weakening the shared Go type universe or package diagnostics. Replace overlay-invalidated source loading with readonly content-addressed modfiles, decode compiler exports in one shared universe, use a narrow direct go list adapter with compatibility fallbacks, tune subprocess/action parallelism, and decode roots in dependency-aware order. Experiments: #1, #2, #5, #7, #12-16, #18, #21-26, #29, #35-37 Metric: package_load_ms 1930.795ms -> 257.680ms (-86.7%, 7.5x faster) Validation: complete Migrate, Tinear, and Maestro suites; full compiler tests; checker race tests; gopls; holdout projects; code review.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
akonwi
deleted the
autoresearch/go-package-loading/01-accelerate-go-package-loading
branch
August 26, 2026 02:04
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ARD_PIPELINE_PROFILE=1timing for the complete Ard test pipelinego.modoverlays with readonly, content-addressed modfilesgo listquery and decode it into one sharedgo/typesuniverse, with package-driver and source-loading fallbackscmd/goparallelism without overriding explicit user settingsPerformance
Balanced medians from three complete runs per project on the current branch:
That is an 86.2% reduction (7.2× faster) in
frontend.load_go_packages.Holdout projects also improved substantially during the optimization: Decode 169→49ms, SQL 720→118ms, Dram 310→88ms, and KB 632→106ms.
Correctness safeguards
GOPACKAGESDRIVERbehavior-p, leaving explicitGOFLAGSand persistedGOENVparallelism tocmd/goValidation
cd compiler && go test ./...cd compiler && go test -race ./checkergopls check checker/go_packages_resolver.go checker/go_import_internal_test.go