nodejs / nodejs/node

Enable PGO for Windows builds (x64 and Arm64)

Offen
#61,964 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

build feature request
Vorherrschende Sprache
JavaScript
Sterne
122k
Forks
37.3k
Ø Merge
4 T. 2 Std.
Gemergte PRs (30 T.)
283

Beschreibung

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

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, die Windows x64- und Arm64-CI-Release-Jobs zu finden und den verknüpften LLVM PGO-Prozess zu überprüfen. Erledigt ist die Aufgabe, wenn beide Release-Pfade einen instrumentierten Build ausführen, ein vordefiniertes Node.js-Szenarioskript ausführen, um Profildaten zu erzeugen, und mithilfe dieser Daten für optimierte Builds erneut gelinkt werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
node.js
Bereich
build-system, ci-cd, operating-systems
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.