Skip to content

Enable PGO for Windows builds (x64 and Arm64) #61964

Description

@marcpems

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

Activity

  1. added
    buildIssues and PRs related to Node.js builds or CI infrastructure.
    on Mar 9, 2026
  2. added a commit that references this issue on Apr 23, 2026
  3. added a commit that references this issue on May 5, 2026
  4. github-actions commented on Jul 20, 2026

    @github-actions
    Contributor

    This issue has been marked as stale due to 90 days of inactivity.
    It will be automatically closed in 30 days if no further activity occurs. If this is still relevant, please leave a comment or update it to keep it open.

  5. added
    staleIssues and PRs marked stale due to inactivity and scheduled for automatic closure.
    on Jul 20, 2026
  6. StefanStojanovic commented on Aug 20, 2026

    @StefanStojanovic
    Contributor

    Reopening this, since it is still in progress.

    A short update: Thin LTO is already enabled on Windows and used in releases. PGO workload scripts are approved and should land soon, and I've done tests for enabling PGO in the release CI.

    I just never commented on this issue, so it got marked as stale and eventually closed.

  7. removed
    staleIssues and PRs marked stale due to inactivity and scheduled for automatic closure.
    on Aug 21, 2026
  8. StefanStojanovic commented on Sep 22, 2026

    @StefanStojanovic
    Contributor

    This issue can be closed now. LTO has been enabled in Windows releases since v26.3.0, and PGO has been enabled in v26.9.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    buildIssues and PRs related to Node.js builds or CI infrastructure.feature requestIssues requesting new Node.js features.

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions