Filtra el gráfico tipo llama
Cloud Profiler te permite agregar filtros para controlar cómo se muestra la información en los perfiles seleccionados. Por ejemplo, puedes agregar un filtro para ocultar determinados marcos o pilas de llamadas. Agregar y quitar filtros no cambia tu conjunto de perfiles seleccionados.
Cada filtro se especifica mediante un FILTER-OPTION
predefinido que se vincula con un VALUE
definido por el usuario:
[FILTER-OPTION] : [VALUE]
Cada filtro que agregas se muestra en la barra de filtros.
En este ejemplo, hay un filtro que muestra Metric : Bytes
:
Profiler crea automáticamente un filtro con un FILTER-OPTION
de Metric
y un VALUE
según el tipo de perfil seleccionado.
Puedes cambiar VALUE
para algunos tipos de perfiles. No puedes quitar este filtro.
Para agregar un filtro, usa uno de los siguientes enfoques:
- Haz clic en Filtros filter_list, selecciona una opción de la lista y, luego, ingresa el valor.
- Haz clic en el texto gris Agregar filtro de datos de perfil en la barra de filtros y, luego, ingresa el valor y la opción de filtro.
- En las opciones de filtro Enfocar, Mostrar desde marco y Mostrar pilas, también puedes colocar el puntero en el marco y, luego, seleccionar la opción de la información sobre la herramienta de marcos.
Para quitar un filtro, haz clic en Cerrar close en el filtro.
Cuando preparas los datos para mostrar, Profiler busca coincidencias entre un marco y un filtro.
Cuando se produce una coincidencia, Profiler usa FILTER-OPTION
para determinar qué acción ejecutar. Un marco coincide con el filtro cuando el nombre de la función del marco o el nombre de archivo de la fuente contiene VALUE
.
Se realiza una comparación que distingue entre mayúsculas y minúsculas.
Por ejemplo, si el filtro es Hide frames : oo
, los marcos con funciones llamadas foo
, foo1
y busyloop
coinciden con el gráfico tipo llama.
Métrica
Para configurar el modo de agregación del tipo de perfil, usa el filtro Métrica. Por ejemplo, si seleccionas un tipo de perfil de Montón, tienes la opción de visualizar los datos en términos de Bytes y Objetos.
Las opciones disponibles para el filtro Métrica dependen del lenguaje de programación y del Tipo de perfil seleccionado:
- Para los perfiles de tiempo de CPU, la única opción es tiempo de CPU.
Para los perfiles de Montón, estas son las opciones:
- Bytes
- Objetos
Para los perfiles de Montón asignado, estas son las opciones:
- Total de bytes asignados
- Total de objetos asignados
Para los perfiles de Tiempo, estas son las opciones:
- Recuento
- Tiempo
Para los perfiles de Subproceso, la única opción es Goroutine.
Para los perfiles de Contención, estas son las opciones:
- Retraso
- Contenciones
Para obtener más información sobre los tipos de métricas de generación de perfiles, consulta Conceptos sobre generación de perfiles.
Por ejemplo, en la siguiente captura de pantalla, se muestra el consumo de CPU de un programa:
Aquí, puedes ver que la rutina busyloop
llama a foo1
y foo2
, las cuales llaman a otras rutinas. Puedes agregar filtros para restringir aún más el gráfico solo a los datos que te interesen.
Enfoque
Cuando usas el filtro Enfocar, seleccionas una sola función y el gráfico tipo llama muestra las rutas de código que van hacia esa función específica y hacia afuera de ella.
Para obtener detalles sobre cómo enfocar el gráfico y cómo interpretar los resultados, consulta Enfoca el gráfico tipo llama.
Muestra pilas
Para mostrar todas las pilas de llamadas que contienen un marco que coincide con el valor del filtro y ocultar todas las demás, usa el filtro Mostrar pilas. El gráfico muestra los emisores y destinatarios de la función, es decir, todo lo que llama a la función coincidente y las llamadas que esta realiza.
Este filtro realiza una prueba de substring que distingue entre mayúsculas y minúsculas. Se produce una coincidencia si la función de marco contiene el valor de filtro.
Para restringir el gráfico de uso de CPU del ejemplo anterior a fin de mostrar solo las pilas de llamadas que involucran la función foo1
, configura un filtro Show stacks (Mostrar pilas) para foo1
:
Oculta pilas
Oculta todas las pilas de llamadas que contengan un marco que coincida con el valor del filtro. Este filtro suele ser útil cuando deseas ocultar pilas que no son interesantes. Por ejemplo, es común agregar un filtro Hide stacks: unsafe.park
en aplicaciones de Java.
Este filtro realiza una prueba de substring que distingue entre mayúsculas y minúsculas. Se produce una coincidencia si la función de marco contiene el valor de filtro.
Muestra desde el marco
Para mostrar todas las pilas de llamadas, a partir del marco que coincide con el valor del filtro y ocultar todas las demás, usa el filtro Mostrar desde marco. El gráfico resultante muestra las pilas de llamadas de la función nombrada hacia abajo. Este filtro es útil si se llama a tu función desde muchos lugares y deseas ver el consumo total atribuible a ella.
Por ejemplo, para mostrar solo las llamadas que se originan en la función baz
, configura un filtro Show from frame (Mostrar desde marco) para baz
:
Este filtro realiza una prueba de substring que distingue entre mayúsculas y minúsculas. Se produce una coincidencia si la función de marco contiene el valor de filtro.
Oculta marcos
Para ocultar todos los marcos que coincidan con el valor del filtro, usa el filtro Ocultar marcos. El gráfico muestra los emisores de la función y todos los destinatarios de la función se recopilan juntos. Este filtro es útil para quitar marcos irrelevantes del gráfico.
Por ejemplo, para ocultar los marcos de foo1
y foo2
, configura un filtro Hide frames (Ocultar marcos) para foo
. Tanto foo1
como foo2
coinciden, por lo que se quitarán del gráfico. Debido a que ambos llaman a las rutinas bar
y baz
, los datos para cada una de esas funciones se agregan juntos.
Este filtro realiza una prueba de substring que distingue entre mayúsculas y minúsculas. Se produce una coincidencia si la función de marco contiene el valor de filtro.
Destaca marcos
Para destacar todos los marcos cuyos nombres de función coinciden con el valor del filtro, usa el filtro Destacar. La función permanece en el modo de color normal, pero las secuencias de llamadas tienen un color más tenue.
Por ejemplo, aquí se muestra un gráfico sin destacar:
Este es el mismo gráfico con la función baz
destacada solicitada:
Este filtro realiza una prueba de substring que distingue entre mayúsculas y minúsculas. Se produce una coincidencia si la función de marco contiene el valor de filtro.
Modo de color
De forma predeterminada, el color del marco corresponde, cuando es posible, al paquete de la función. Si la información del paquete no está disponible, como en Node.js, los nombres de los archivos de origen se usan para aplicar color a los bloques de funciones. Con la configuración predeterminada, un cambio en el color del marco de la pila de llamadas significa una transición de un paquete a otro. La opción predeterminada corresponde al filtro Modo de color con un valor de Nombre.
Para cambiar el color de los marcos en el gráfico tipo llama por el consumo de una función y sus elementos secundarios, agrega un filtro de Color Mode (Modo de color) con el valor Total. Si se llama a una función mediante varias pilas de llamadas, el color se determina por el consumo de métricas de todas las pilas de llamadas.
Por ejemplo, main
y busyloop
están marcadas en color rojo. Estos dos marcos consumen más tiempo de CPU. Los marcos etiquetados como foo2
y baz
son de color naranja intenso, mientras que los de etiqueta foo1
son de color naranja. Los marcos para bar
y load
son los de color naranja más claros. En este gráfico tipo llama, se ilustra que foo2
consume más tiempo de CPU que foo1
, pero menos que busyloop
:
Para cambiar el color de los marcos en el gráfico tipo llama según el consumo de métricas de la función, pero excluir el consumo de métricas de sus elementos secundarios, agrega un filtro de Color Mode (Modo de color) con el valor Propio.
Por ejemplo, este filtro muestra que la función baz
consume más tiempo de CPU que cualquier otra función:
¿Qué sigue?
- Enfoca el gráfico tipo llama en una función.
- Consulta las tendencias históricas.
- Comparar perfiles.
- Descargar datos de perfil.