python / python/cpython

Differential flamegraphs are incorrectly scaled across sampling rates

Abierto
#154,032 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

stdlib topic-profiling type-bug
Lenguaje dominante
Python
Estrellas
77.2k
Forks
35.9k
Métricas de merge de PR
Métricas de PR pendientes

Descripción

Differential flamegraphs compare raw sample counts after scaling the baseline by sampled wall time. This makes identical profiles look very different when the sampling rates differ.

For example, using a 1 kHz baseline and profiling the same workload at 100 Hz reports around -90% for unchanged leaf functions. Using the same rate for both profiles reports approximately 0%.

We should normalize the sample counts consistently and use the sampling interval only when converting samples to time for display.

Linked PRs
  • gh-154082

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 reproduciendo la comparación de differential flamegraphs descrita en el issue con perfiles de 1 kHz y 100 Hz, y luego rastrea dónde se escalan los recuentos de samples y dónde los intervalos de muestreo convierten los samples en tiempo mostrado. Se considera terminado cuando perfiles idénticos con distintas frecuencias de muestreo se comparan en aproximadamente un 0 %, mientras la conversión al tiempo mostrado sigue siendo correcta.

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

Evaluación

Stack tecnológico
python
Área
performance
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.