nodejs / nodejs/node

Enable PGO for Windows builds (x64 and Arm64)

オープン
#61,964 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

build feature request
主要言語
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

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. 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

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。