Rutas de acceso activas a la raíz en la herramienta Uso de memoria (C#, Visual Basic, C++, F#)

Al calcular el tamaño inclusivo de un objeto (la cantidad total de memoria conservada en el montón manteniendo activo el objeto), a menudo resulta útil reducir el gráfico de montón conectado fuertemente en un árbol. A diferencia de un grafo, un nodo de un árbol tiene muchos elementos secundarios arbitrariamente, pero solo un único elemento primario. En lugar de considerar cada ruta de acceso posible a la raíz de un objeto, elegir la ruta de acceso más probable a la raíz mediante varias heurísticas suele ser suficiente para encontrar la cadena de referencia que, si se quita, hará que el objeto sea apto para la recolección de elementos no utilizados. Algunas de estas heurística incluyen priorizar la ruta de acceso más corta a la raíz, determinados tipos raíz y rutas de acceso de código de usuario. Por varias razones, esta estrategia no siempre encuentra la cadena de retención más interesante o más larga, pero a menudo proporciona un punto de partida útil en una investigación de uso de memoria.

En el gráfico de referencia de la herramienta de uso de memoria, esa ruta a la raíz es la "ruta de acceso activa a la raíz".

Ejemplo

En este ejemplo, hay un control WPF (AttachToProcess.Dialog) que se filtra a través de un enlace que, en última instancia, se basa en AutomationPeer. En la vista filtrada, esta ruta de retención es obvia; solo la ruta de acceso directa a la raíz está visible.

Captura de pantalla del gráfico de referencia Rutas de acceso al nodo raíz. La opción Mostrar solo las rutas de acceso activas está activada, resaltando una cadena lineal de referencias.

Con la opción deshabilitada, queda claro que hay cientos de enlaces, y la mayoría de las rutas de expansión conducen a los extremos fallidos de ese ciclo. Sin el indicador visual, es tedioso ordenar miles de posibles rutas de retención para encontrar una razón candidata para la fuga. Captura de pantalla del mismo gráfico de referencia Rutas de acceso al nodo raíz, pero con la opción Mostrar solo las rutas de acceso activas desactivada con muchos posibles extremos inactivos visibles.

Consulte también

Para obtener más información acerca de la herramienta Uso de memoria de Visual Studio, consulte