Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

165
Vistas
Cómo leer la instantánea de memoria en Visual Studio

Uso Visual Studio para tomar una instantánea de la memoria de mi aplicación.

Tengo algunas preguntas sobre la comprensión de los datos que obtuve. Después de capturar la instantánea de la memoria, filtro una de mi clase, digamos MyClassPanel. Solo uso MyClassPanel en mis archivos xmal.

  1. ¿Por qué las 'Rutas a la raíz' para MyClassPanel son todas 'MyClassPanel [RefCount Handle, Count:1]'? (es decir, el mismo nombre pero con una cadena [RefCount Handle al final] y un valor de recuento diferente) ¿qué significa esto? En otra clase, filtro, veo que las 'Rutas a la raíz' son nombres de clase diferentes.

  2. Tengo 24 MyClassPanel (del conteo en la tabla superior). Y en la columna 'Recuento de referencias' en la tabla inferior, cuando los sumo, son 24.

¿Es ese siempre el caso? Creo que 'Recuento' y 'Recuento de referencias' significan cosas diferentes. En este caso, se suman. ¿Esto tiene sentido?

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

  1. La vista Paths to Root muestra las referencias a este tipo evitando que se recopile como basura. Dado que su clase es una página Xaml, la referencia que mantiene activa la clase es un controlador CLR para la página Xaml. Estos aparecen como RefCount Handle.

  2. De hecho, el conteo y el conteo de referencia no son lo mismo. El recuento es el número de instancias, el recuento de referencias es el número de referencias. Debido a que cada instancia en su caso solo tiene una referencia, tiene sentido que se sumen.

Para más información:

  • https://devblogs.microsoft.com/devops/using-visual-studio-2013-to-diagnose-net-memory-issues-in-production/
  • https://docs.microsoft.com/visualstudio/profiling/analyze-memory-usage
  • https://docs.microsoft.com/visualstudio/profiling/memory-usage
over 4 years ago · Santiago Trujillo Denunciar

0

No soy un gran admirador del analizador de instantáneas de Visual Studio. Hay bastantes complicaciones disponibles si la finalización no se ejecuta correctamente antes de tomar la instantánea. No estoy seguro de cómo Visual Studio maneja eso. Sin embargo, la instantánea que ha proporcionado tampoco tiene mucho sentido para mí.

Le sugiero que descargue el analizador de memoria ANTS e investigue esto. Viene con un período de prueba razonable. Al usar eso, podrá ver todas las referencias a cada instancia usando su 'Gráfico de retención'. Le mostrará específicamente qué instancias mantienen la referencia a sus objetos y también le mostrará qué objetos han implementado Dispose pero no han llamado. Supongo que proporcionará más apoyo para encontrar la causa raíz de este problema.

Eche un vistazo al tutorial de las páginas a continuación

http://www.red-gate.com/products/dotnet-development/ants-memory-profiler/walkthrough http://www.red-gate.com/products/dotnet-development/ants-memory-profiler/

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda