nodejs / nodejs/node

Enable PGO for Windows builds (x64 and Arm64)

Abierto
#61,964 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

build feature request
Lenguaje dominante
JavaScript
Estrellas
122k
Forks
37.3k
Merge medio
4 d 2 h
PR fusionados (30 d)
283

Descripción

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

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza localizando los trabajos de release de CI de Windows x64 y Arm64 y revisando el proceso de LLVM PGO enlazado. Se considera terminado cuando ambas rutas de release realizan una compilación instrumentada, ejecutan un script de escenarios predefinido de Node.js para crear datos de perfil y vuelven a enlazarse usando esos datos para las compilaciones optimizadas.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
node.js
Área
build-system, ci-cd, operating-systems
Tipo de issue
Nueva funcionalidad
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.