Compartir a través de


Identificación de rutas de acceso activas con un gráfico de llamas (C#, Visual Basic, C++, F#)

Las herramientas de generación de perfiles de Visual Studio para el uso de CPU y la instrumentación incluyen la vista Flame Graph . Flame Graph le ayuda a identificar rutas de acceso activas en el código mostrando una visualización del árbol de llamadas. La ruta de acceso activa es la pila de llamadas para las funciones que usan la mayor cantidad de CPU o la mayor parte del tiempo, y a menudo es un buen lugar para buscar posibles optimizaciones de rendimiento. El gráfico proporciona información general visual sobre dónde se invierte el tiempo en la aplicación, y puede hacer clic en nodos específicos para profundizar en ellos.

Captura de pantalla que muestra Flame Graph con el menú contextual mostrado.

Para ver un tutorial que muestra cómo mejorar el rendimiento mediante el gráfico de llamas, consulte Caso práctico: Guía para principiantes para optimizar el código. Para obtener información sobre el generador de perfiles de CPU, consulte Análisis del rendimiento mediante la generación de perfiles de CPU.

Investigación de rutas de acceso activas

La vista Gráfico de llamas se encuentra en la vista de detalles del informe .diagession .

  1. Inicie una sesión de generación de perfiles con la herramienta Uso de CPU o Instrumentación.

  2. Después de detener la sesión de generación de perfiles y de cargar el informe, seleccione Abrir detalles.

    Captura de pantalla en la que se muestra la opción Abrir detalles seleccionada.

  3. Seleccione Gráfico de llamas en la selección desplegable Vista actual.

    Captura de pantalla que muestra la vista del gráfico de llamas seleccionada.

    Aparece la vista Gráfico de llamas.

    Captura de pantalla en la que se muestra la información general del gráfico de llamas.

    La ruta de acceso activa es la ruta de acceso de código con la mayor CPU o la mayoría de las veces a medida que se mira hacia abajo a través del árbol de llamadas.

    De forma predeterminada, los datos que se muestran en Flame Graph representan los mismos datos que se muestran en la vista Árbol de llamadas para el período de recopilación de datos. En concreto, para uso de CPU, muestra los valores totales de CPU . Este valor es inclusivo, por lo que incluye el uso de CPU (es decir, el tiempo de cálculo de CPU) usado por las llamadas a la función y cualquier otra función a la que llama la función. De la misma manera, en Instrumentación, el gráfico muestra los valores equivalentes a la columna Total en la vista de árbol de llamadas.

    Sin embargo, si selecciona un nodo, el nodo seleccionado se convierte en la nueva línea base y usa el 100 % del ancho del gráfico de llamas. Esto le permite visualizar mejor un árbol de llamadas complejo y ver nombres largos cuando se truncan o ocultan. Este es un ejemplo de un gráfico de llamas que muestra un árbol de llamadas más complejo.

    Captura de pantalla que muestra Flame Graph para un árbol de llamadas complejo.

    Para ver detalles sobre cualquier nodo, seleccione el nodo.

    Elija Restablecer zoom para volver a la vista predeterminada.

    También puede navegar a distintas vistas del informe de generación de perfiles seleccionando un nodo y seleccionando una opción como Ver en el árbol de llamadas en el menú contextual.

    Captura de pantalla que muestra la opción Flame Graph para ver en el árbol de llamadas.

Voltear el gráfico de llamas

De forma predeterminada, el gráfico de llamas de la herramienta se muestra al revés o como un gráfico icicle, donde el eje Y cuenta la profundidad de la pila hacia abajo desde cero en la parte superior.

Puede ver un diseño de gráfico de llamas estándar haciendo clic en Flip Flame Graph.

Captura de pantalla que muestra Voltear gráfico de llamas seleccionado.

Para un gráfico de llamas complejo, puede acercar la visualización seleccionando elementos específicos.

En la vista Gráfico de llamas, puede navegar haciendo clic en un nodo con un mouse o con el teclado. Además, se admiten los siguientes métodos abreviados de teclado.

Método abreviado de teclado Comando
Pestaña Ir a cualquier nodo
Flecha arriba, flecha abajo Ir al elemento primario o secundario de un nodo
Flecha izquierda y flecha derecha Ir al mismo nivel de un nodo en la pila
Entrar Acercar (seleccionar)
Escape Alejamiento