Enable PGO for Windows builds (x64 and Arm64)
未关闭
还没有人认领这个 Issue。
build
feature request
- 主要语言
- JavaScript
- 星标
- 122k
- 派生
- 37.4k
- 平均合并
- 4 天 3 小时
- 30 天内合并 PR
- 272
描述
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
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
首先定位 Windows x64 和 Arm64 CI release job,并查看链接的 LLVM PGO 流程。完成的标准是两个 release 路径都执行带插桩的构建,运行预定义的 Node.js 场景脚本以生成 profile 数据,并使用这些数据为优化构建重新链接。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- node.js
- 领域
- build-system, ci-cd, operating-systems
- Issue 类型
- 功能
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 冷清
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100