Repository navigation
docs(perf): re-probe the 0.11.0 record at the release cut point - #1400
Merged
Merged
Conversation
Co-Authored-By: jason.han <hanhuijun@gmail.com>
Contributor
Author
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
Contributor
Author
There was a problem hiding this comment.
🔍 Devin Review: 2 flags
Not posted on this PR by your GitHub settings — view them in Devin Review. (Configure)
Co-Authored-By: jason.han <hanhuijun@gmail.com>
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.
What and why
The maintainer cut
release/0.11.0fromdevelopat5cd37f288fef171d62737d6045f4caff772b6014(merge of #1387, 2026-10-22), 32 first-parent merges after the head the 0.11.0 record measures (5db0f7415, #1371). This updatesdocs/project/performance-release-0.11.0-vs-0.10.1.mdso that it names the cut point as the candidate and adds The cut point: the rows those 32 merges could move, re-probed six rounds interleaved overv0.10.1, the measured head with #1368 and #1369, and the cut point (internal/exec/runtimeandinternal/frontend/lspwhole; thetests/perfinstantiation, constraint, import, workspace, REPL, gRPC, executor and analysis rows; the 32-satellite stress rows), plus whole-binary validation, start-up and sizes on the cut point's binaries.What the probe found, stated in the record:
AssignmentLoopStep7 329 → 10 532 allocs/op (+44%, 831 KiB → 1 156 KiB), introduced by fix(runtime): hold a calculation's result in its effective multiplicity on every surface #1308 (a calculation's result held in its effective multiplicity, so every step reads a one-element sequence into a unique feature anduniquenessRefusalbuilt aSetto judge repeats in one value). Its fix is perf(runtime): judge one value written to a unique feature without building a set #1396, kept out of this record as before; the three allocations per held result that remain are fix(runtime): hold a calculation's result in its effective multiplicity on every surface #1308's shape and are carried as that correctness change's cost.Instantiate,BatchSatisfy,FeaturesOf,GRPCVerifyConstraint,ReferencesCold,RenameWarm,NewRootFrame, the executor statement rows and the stress rows identical or within 1.1%;GRPCEvaluate+7 allocations, also fix(runtime): hold a calculation's result in its effective multiplicity on every surface #1308's held result), and no row is slower at p < 0.05 — the record's attributions hold on the cut point.sysml47.60 → 49.53 MiB andsysml-lsp26.00 → 27.41 MiB.The tables that measured
5db0f7415are unchanged; the header says what they measure and points to the new section, and What this does not measure names the packages not re-run on the cut point. The changelog fragment of the record gains the cut-point sentence.How it was verified
Documentation only, no code.
python3 scripts/check-doc-ids.py,python3 scripts/check-doc-figures.py,python3 scripts/changelog.py check,make diagnostics-checkandscripts/mkdocs_census-test.pypass.make docs-checkpasses with the landing assets built (docs/assets/landing/is gitignored build output;check-doc-links.pyreportsthird-party-notices.md→libavoid-js.LICENSE.txtbroken only in a checkout without them).The measurements: six interleaved rounds (
-count 1per round,-benchmem,GOMAXPROCS=8,benchstatover the six), the whole-binary pass nine interleaved runs per model with/usr/bin/time -f "%e %M", every run exiting 0. Machine and toolchain as the record states (8-CPU Xeon, 31 GiB, Go 1.25.11).Checklist
make testandmake lintpass locally (documentation only; the doc gates above)changes/unreleased/<slug>.<section>.md, not as an edit toCHANGELOG.mdmake docs-countsrun if a gate count moved (none moved)F4,K5) in the body, docs, or changelogLink to Devin session: https://nasa-jpl-demo.devinenterprise.com/sessions/cf22d7a746814d20b2f0eaf11682fef9
Open in Devin Desktop: https://nasa-jpl-demo.devinenterprise.com/desktop/session/cf22d7a746814d20b2f0eaf11682fef9?variant=devin
Requested by: @HuiJun