SOS's !FinalizeQueue should filter out WeakReferences

Abierto
#5,742 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
45/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
cpp
Área
devtools

Línea de trabajo

Comienza por la implementación del comando !FinalizeQueue y lee la sección enlazada de WeakReference.T.cs para entender cómo trata el runtime estos objetos. Actualiza el contenido de la cola informado por el comando para excluir las WeakReferences y, después, verifica que el estado del finalizador mostrado ya no las cuente.

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

Descripción

enhancement

We were recently looking at a dump where it appeared there was a very large number of objects in the finalizer queue according to the !FinalizeQueue command. Upon further investigation this appeared to be a red herring, since the vast majority of objects are WeakReferences, and those are magic. Basically, they appear as finalizable objects, but they won't be finalized by the queue, but rather cleaned up by the GC.

I'd propose that !FinalizeQueue should just filter out the WeakReferences, since that's effectively what the runtime is doing as well. Otherwise this can result in some confusion of the actual state of your process.

Lenguaje dominante
C++
Estrellas
1.3k
Forks
407
Merge medio
21 h 5 min
PR fusionados (30 d)
78

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

  • Sin Dockerfile ni archivo de Docker Compose
  • Sin plantilla de pull request
  • Sin 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.

Más de dotnet/diagnostics

Todos los issues de dotnet/diagnostics

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.