Enable PGO for Windows builds (x64 and Arm64)
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 122k
- Forks
- 37.3k
- Avg merge
- 4d 2h
- Merged PRs (30d)
- 283
Description
What is the problem this feature will solve?
Profile Guided Optimization has been available for some time now, and stats from projects that adopt PGO commonly show runtime perf improvements of around 10%. LLVM and MSVC offer PGO when building Windows apps for x64 and Arm64 ABI apps.
This request is to investigate and implement PGO in the CI release jobs when building Windows versions of nodeJS for both Arm64 and x64 ABIs.
Overview of LLVM PGO process:
https://llvm.org/devmtg/2020-09/slides/PGO_Instrumentation.pdf
What is the feature you are proposing to solve the problem?
Add to the CI release jobs:
- Enable PGO instrumentation profiling during first pass build.
- execute nodejs using a predefined test script for most common scenarios to generate profile data
- Relink the app using the profile data for optimization guidance.
What alternatives have you considered?
nonw
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the Windows x64 and Arm64 CI release jobs and reviewing the linked LLVM PGO process. Done means both release paths perform an instrumented build, run a predefined Node.js scenario script to create profile data, and relink using that data for optimized builds.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- node.js
- Domain
- build-system, ci-cd, operating-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100