Compartir a través de


Análisis de la ruta de acceso activa a la raíz en la herramienta Uso de memoria

Al generar perfiles de código .NET en la herramienta de generación de perfiles de uso de memoria en Visual Studio, la ruta de acceso activa a la raíz puede ayudarle a identificar los objetos retenidos en el montón que están causando problemas de uso de memoria. En el contexto del uso de memoria, la ruta crítica es una cadena de referencia identificada por el perfilador que apunta a un objeto raíz que es un posible origen de problemas de memoria.

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 hijos arbitrariamente, pero solo un único padre. 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 basura. Algunas de estas heurísticas incluyen priorizar la ruta de acceso más corta a la raíz, determinados tipos de raíz y rutas 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 árbol Rutas de acceso a la raíz de la herramienta Uso de memoria, la ruta de acceso con el icono de llama (Captura de pantalla que muestra el icono de ruta de acceso activa.) se denomina "ruta de acceso activa a la raíz".

Ejemplo

Use la opción Mostrar solo rutas de acceso activas para filtrar la vista en el panel Rutas a la Raíz.

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, la 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 de Rutas a la raíz. Mostrar solo las rutas principales está activado, 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 examinar miles de posibles rutas de retención para encontrar un motivo de la fuga. Captura de pantalla del mismo gráfico de referencia de rutas hacia la raíz, pero Mostrar solo rutas activas está desactivado con muchos posibles caminos sin salida visibles.

Consulte también

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