Enable PGO for Windows builds (x64 and Arm64)
まだ誰も着手していません。
- 主要言語
- JavaScript
- スター
- 122k
- フォーク
- 37.3k
- 平均マージ
- 4日 2時間
- マージ済み PR(30日)
- 283
説明
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 にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず Windows x64 と Arm64 の CI リリースジョブを見つけ、リンクされている LLVM PGO プロセスを確認します。完了条件は、両方のリリースパスでインストルメント済みビルドを実行し、事前定義された Node.js シナリオスクリプトを実行してプロファイルデータを作成し、そのデータを使って最適化ビルド向けに再リンクすることです。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- node.js
- 領域
- build-system, ci-cd, operating-systems
- issue の種類
- 機能追加
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 静か
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100