Repository navigation
Add a default PGO profile for the compiler - #64986
Open
Jake Bailey (jakebailey) wants to merge 3 commits into
Open
Jake Bailey (jakebailey) wants to merge 3 commits into
Jake Bailey (jakebailey) wants to merge 3 commits into
Conversation
Optimize the compiler for real-world checking and emit workloads by making a representative CPU profile available to Go's default PGO build. The training workload is one emit-enabled compilation each of VS Code, Sentry, Bluesky, t3code server, t3code web, and Material UI docs from jakebailey/TypeScript-blog-benchmarks, using the default four checkers. Profiles were collected at 4163ca1 with Go 1.27.3 on linux/amd64. Following golang/go's src/cmd/compile/profile.sh, merge the six CPU profiles with go tool pprof -proto, retaining their CPU-sample weights.
Contributor
There was a problem hiding this comment.
Copilot wasn't able to review any files in this pull request. Check if the Files changed in this pull request are included in default exclusions.
Member
Author
|
TypeScript Bot (@typescript-bot) perf test this faster |
Contributor
Contributor
|
Jake Bailey (@jakebailey) Here they are:
Provisional hosted-runner results: these VMs are not the dedicated benchmark machines. Results may be noisier and are not comparable to the historical series. For comparisons, both revisions of each scenario ran on the same VM. tscComparison Report - baseline..pr
System info unknown
Hosts
Scenarios
Developer Information: |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
The initial profile mostly represents large TypeScript applications. Broaden it to include checker-heavy library code, declaration emit, JavaScript checking, and project-reference builds. Add one emit-enabled CPU profile each from ArkType, Webpack, and the TypeScript strada source build, using the same non-PGO seed compiler. Retain the original six profiles and merge all nine with pprof -proto, without reweighting their CPU samples. XState is excluded from training and reserved as an independent evaluation workload. Additional input revisions: ArkType: c34bf69b3371f63ae383ac533e63ad9311452a8b Webpack: 573ed5e52662f6c82ad0b6025ea13ccc2e6ba3a9 TypeScript strada: b465fdb ArkType emits JavaScript and declarations; Webpack checks and emits JavaScript with its existing diagnostics; the strada build uses -b src --force and emits declarations for the project-reference graph.
Member
Author
|
TypeScript Bot (@typescript-bot) perf test this faster |
Contributor
Contributor
|
Jake Bailey (@jakebailey), the perf run you requested failed. You can check the log here. |
Coverage builds with PGO exhaust the default temporary filesystem quota on the Linux ARM64 runner. Use the runner's temporary storage so tests and benchmarks can retain PGO without running out of temporary space.
This branch has not been deployed
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.
Let's give this a try again.
Generated using the repos from the blog post