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.
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 .
Inicie una sesión de generación de perfiles con la herramienta Uso de CPU o Instrumentación.
Después de detener la sesión de generación de perfiles y de cargar el informe, seleccione Abrir detalles.
Seleccione Gráfico de llamas en la selección desplegable Vista actual.
Aparece la vista 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.
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.
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.
Navegar por el gráfico de llamas
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 |