Centrar el gráfico tipo llamas

Cuando usas el filtro Enfoque, seleccionas una sola función y el gráfico de llamas muestra las rutas de código que entran y salen de esa función específica. Un gráfico centrado te permite realizar dos tareas habituales:

  1. Analizar el consumo de recursos agregado de una función determinada que se llama desde varios lugares.
  2. Analizar la proporción de tiempo dedicado a una función para diferentes llamadas de la función.

Por ejemplo, ¿cómo se analiza el consumo de recursos de la función Sort con el gráfico de llamas estándar?

Función de ordenación en el gráfico tipo llamas.

En la siguiente sección, nos centraremos en el gráfico Sort y responderemos a esta pregunta. Los gráficos de llamas de esta página se han creado con los valores predeterminados Nombre y Ninguno en los campos Modo de color y Comparar con, respectivamente.

Explicación del gráfico enfocado

El gráfico creado por el filtro Enfoque crea dos gráficos de llamas de forma eficaz para la función especificada y los une:

Gráfico de llamas centrado en la función de ordenación.

En el gráfico anterior, el marco correspondiente a la función Sort tiene el ancho completo y está resaltado. El texto del marco incluye el nombre de la función, un porcentaje y el número de perfiles usados en el análisis. En este caso, las métricas indican que la función Sort, en conjunto, consumió el 8,85% del tiempo de CPU.

En la mitad inferior del gráfico anterior, la función Sort se trata como el punto de partida de un gráfico de llamas estándar y se muestran todos sus elementos llamados. Puedes crear esta parte con el gráfico de llamas estándar usando el filtro Mostrar desde marco:

Parte inferior de los gráficos de llamas que muestra los elementos llamados ordenados.

La mitad superior del gráfico muestra las llamadas de Sort con los destinatarios ocultos. Puedes hacer una aproximación de la mitad superior con una serie de filtros. Empieza añadiendo un filtro Mostrar pilas para Sort. A continuación, para cada función llamada por Sort, añade Ocultar pilas u Ocultar marcos. En esta situación, añadirías un Hide stacks para quickSort para eliminar esta función y sus elementos secundarios, y, a continuación, añadirías Hide frames para Len y maxDepth:

Parte superior de los gráficos de llamas que muestra las funciones de ordenación.

Con estos filtros, la aproximación de la parte superior del gráfico enfocado muestra que se accede a la función Sort a través de diferentes pilas de llamadas. Sin embargo, las métricas no se agregan, por lo que el gráfico no muestra el consumo general de métricas por parte de Sort.

El gráfico centrado es un poco diferente de un gráfico que solo combina las dos aproximaciones:

  • La función de enfoque Sort tiene un solo marco.
  • El marco de la función de enfoque está resaltado, es un marco de ancho completo y muestra métricas que son la agregación de todas las pilas de llamadas.
  • Hay varias pilas de llamadas, cada una de ellas empieza con un marco root, por lo que puedes ver la pila de llamadas completa.

Seleccionar un marco

Si seleccionas un marco en un gráfico enfocado, el gráfico de llamas se volverá a dibujar y se mostrará la pila de llamadas de ese marco con más detalle. Si se llega al marco a través de varias pilas de llamadas, se mostrará cada una de esas pilas. Las pilas de llamadas que no incluyen el marco se ocultan. Para restaurar el gráfico a su estado original, selecciona el marco que corresponda a la función de enfoque.

En el ejemplo anterior, Sort se llama por (*byFreq).sort y por (*byLiteral).sort. Para ver la pila de llamadas de (*byLiteral).sort con más detalle, selecciona ese marco. Puedes seleccionar otro marco y refinar aún más las pilas de llamadas que se muestran:

Gráfico de llamas ampliado sobre la ordenación.

Para restaurar un gráfico de llamas enfocado a su estado original, selecciona el marco que muestra el valor del filtro Enfoque. En este caso, selecciona el marco gris con la etiqueta Sort. Ten en cuenta que, para restaurar un gráfico de llamas estándar a su estado original, debes seleccionar el marco raíz.

Analizar el gráfico

Para analizar un gráfico de llamas centrado, se usan los mismos controles y filtros que para analizar un gráfico de llamas estándar. Sin embargo, hay diferencias en la forma en que los gráficos interactúan con el puntero:

  • Si colocas el cursor sobre un marco, la descripción emergente muestra los datos de la métrica. En un gráfico de llamas estándar, se muestran los datos de métricas totales del marco. En un gráfico de llamas centrado, se muestran los datos de métricas agregados de la función.

  • Si seleccionas un marco, el gráfico de llamas se vuelve a dibujar con ese marco a pantalla completa. Para restaurar un gráfico de llamas estándar a su forma original, debes seleccionar el marco superior. Para restaurar un gráfico de llamas enfocado a su forma original, debes seleccionar el marco que muestra el valor del filtro de enfoque.

Para obtener información sobre el gráfico centrado al comparar perfiles, consulta Centrar una comparación.

Definir el filtro de enfoque

Hay diferentes métodos para definir un filtro de enfoque, pero todos dan como resultado el mismo gráfico.

Usando el gráfico

Coloca el cursor sobre el marco que te interese y, a continuación, haz clic en Enfocar en la descripción emergente del marco. La función de enfoque se extrae del marco. En este ejemplo, el gráfico de llamas, que se ha ampliado en torno a la función (*huffmanBitWriter).write, muestra tres pilas de llamadas diferentes:

Gráfico de llamas centrado en un marco pequeño.

Usando la lista de enfoque

Para centrar el gráfico tipo llamas en una función específica, haz lo siguiente:

  1. Haz clic en Lista para abrir la tabla Seleccionar función de enfoque.
  2. Selecciona un nombre de función de la tabla o, para una función específica, haz clic en Acciones y, a continuación, en Centrar:

Selecciona la tabla de funciones de enfoque.

Si la función que ha seleccionado se puede llamar a través de diferentes pilas de llamadas, cada pila de llamadas se muestra en el gráfico de llamas.

Puede ordenar las filas de la tabla en orden ascendente o descendente seleccionando un elemento de encabezado de la tabla. Cada fila de la tabla muestra el nombre de una función y estadísticas relacionadas con la ejecución de la función. En esta tabla se muestra que la función (*compressor).deflate tarda 2,78 s en ejecutarse, de los cuales 1,8 s se invierten en la propia función y el resto del tiempo se dedica a su pila de llamadas. Una columna de porcentaje indica que el 57% del tiempo total de ejecución se dedica a la función (*compressor).deflate. Otra columna indica que el 89% del tiempo se está ejecutando (*compressor).deflate o una función de su pila de llamadas. Por último, en la columna de recuento se indica que hay tres secuencias que invocan la función (*compressor).deflate.

Cuando comparas perfiles, el contenido de la lista de enfoque es diferente. Para obtener más información, consulta el artículo Centrar la atención en una comparación.

Usando la barra de filtros

Haga clic en el texto gris Añadir filtro de datos de perfil en la barra de filtros y, a continuación, introduzca Focus: y una cadena que identifique la función en la que quiere centrarse. Puedes usar una subcadena, incluidos los prefijos de paquete, o el nombre completo. Cuando proporcionas una cadena ambigua, se selecciona la función que mejor se ajusta a la cadena.

Si lo prefieres, puedes hacer clic en Filtros, seleccionar Centrar y, a continuación, introducir la cadena identificadora.

Si la función que ha seleccionado se puede llamar a través de diferentes pilas de llamadas, cada pila de llamadas se muestra en el gráfico de llamas.

Quitar el filtro de enfoque

Para quitar el filtro de enfoque, haz clic en Cerrar en el filtro.

Siguientes pasos