Skip to content

build,win: add PGO workload scripts - #63696

Merged
nodejs-github-bot merged 2 commits into
nodejs:mainfrom
JaneaSystems:mefi-win-pgo-workloads
Aug 20, 2026
Merged

build,win: add PGO workload scripts#63696
nodejs-github-bot merged 2 commits into
nodejs:mainfrom
JaneaSystems:mefi-win-pgo-workloads

Conversation

@StefanStojanovic

Copy link
Copy Markdown
Contributor

This PR adds PGO workload scripts to be used for the PGO-enabled build of Node.js, as well as the wrapper script to run all of the workloads and combine all of the profraw files into profdata on Windows. This way, the build becomes a 3-step process:

  • Build the instrumented binary: vcbuild.bat pgo-generate
  • Run workloads and merge profile data: pgo.ps1
  • Build the optimized binary: vcbuild.bat pgo-use

While this was developed primarily for Windows, PGO itself is platform-agnostic, so the workloads should do well on other platforms that support PGO, although some utility scripts for running an instrumented build and getting results should probably be added to make its usage simpler.

I will share the performance differences in the following days, showcasing the improvements with PGO enabled on Windows.

Refs: #61964

Signed-off-by: StefanStojanovic <stefan.stojanovic@janeasystems.com>
@StefanStojanovic StefanStojanovic added windows Issues and PRs related to the Windows platform. build Issues and PRs related to build files or the CI. labels Jun 1, 2026
@nodejs-github-bot nodejs-github-bot added the tools Issues and PRs related to the tools directory. label Jun 1, 2026
Signed-off-by: StefanStojanovic <stefan.stojanovic@janeasystems.com>
@StefanStojanovic

Copy link
Copy Markdown
Contributor Author

Pinging @nodejs/build for visibility (@nodejs/platform-windows too).

@StefanStojanovic

Copy link
Copy Markdown
Contributor Author

Here are the performance improvements calculated based on running the benchmarks from the Node.js repository. https://github.com/JaneaSystems/node-pgo-perf

@richardlau richardlau added the commit-queue-squash Add this label to instruct the Commit Queue to squash all the PR commits into the first one. label Aug 18, 2026
@joyeecheung joyeecheung added the request-ci Add this label to start a Jenkins CI on a PR. label Aug 19, 2026
@github-actions github-actions Bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Aug 19, 2026
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@StefanStojanovic StefanStojanovic added the commit-queue Add this label to land a pull request using GitHub Actions. label Aug 20, 2026
@nodejs-github-bot
nodejs-github-bot merged commit 58d58a4 into nodejs:main Aug 20, 2026
74 checks passed
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Landed in 58d58a4

@nodejs-github-bot nodejs-github-bot removed the commit-queue Add this label to land a pull request using GitHub Actions. label Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build Issues and PRs related to build files or the CI. commit-queue-squash Add this label to instruct the Commit Queue to squash all the PR commits into the first one. tools Issues and PRs related to the tools directory. windows Issues and PRs related to the Windows platform.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants