Referencia: Vistas de windows Analizador de rendimiento
Las herramientas de C++ Build Insights están disponibles en Visual Studio 2019 y versiones posteriores. Para ver la documentación de esta versión, establezca el control de selector Versión de Visual Studio para este artículo en Visual Studio 2019 o versiones posteriores. Se encuentra en la parte superior de la tabla de contenido de esta página.
En este artículo se proporcionan detalles sobre cada una de las vistas de C++ Build Insights disponibles en Windows Performance Analyzer (WPA). Use esta página para buscar:
- descripciones de columnas de datos y
- valores preestablecidos disponibles para cada vista, incluido el uso previsto y el modo de visualización preferido.
Si no está familiarizado con WPA, se recomienda que primero se familiarice con los conceptos básicos de WPA para C++ Build Insights.
Explorador de compilaciones
La vista Explorador de compilaciones se usa para:
- diagnosticar problemas de paralelismo,
- determinar si el tiempo de compilación está dominado por el análisis, la generación de código o la vinculación, e
- identificar los cuellos de botella y las actividades de compilación demasiado largas.
Columnas de datos de la vista Explorador de compilaciones
Nombre de la columna | Descripción |
---|---|
BuildTimelineDescription | Descripción textual de la escala de tiempo en la que se produce la actividad o propiedad actual. |
BuildTimelineId | Identificador de base cero para la escala de tiempo en la que se produce la actividad o propiedad actual. |
Componente | Componente en proceso de compilación o vinculación cuando se emitió el evento actual. El valor de esta columna es <Invocation X Info> cuando no hay ningún componente asociado a este evento. X es un identificador numérico único para la invocación que se estaba ejecutando en el momento en que se emitió el evento. Este identificador es el mismo que el de la columna InvocationId para este evento. |
Count | Número de actividades o propiedades representadas por esta fila de datos. Este valor es siempre 1 y solo es útil en escenarios de agregación cuando se agrupan varias filas. |
ExclusiveCPUTime | Cantidad de tiempo de CPU en milisegundos usada por esta actividad. El tiempo invertido en las actividades secundarias no se incluye en esta cantidad. |
ExclusiveDuration | Duración en milisegundos de la actividad. La duración de las actividades secundarias no se incluye en esta cantidad. |
InclusiveCPUTime | Cantidad de tiempo de CPU en milisegundos usada por esta actividad y todas las actividades secundarias. |
InclusiveDuration | Duración en milisegundos de esta actividad, incluidas todas las actividades secundarias. |
InvocationDescription | Descripción textual de la invocación en la que se produjo este evento. La descripción incluye si era cl.exe o link.exe y un identificador de invocación numérico único. Si es aplicable, incluye la ruta de acceso completa al componente compilado o vinculado durante la invocación. En el caso de las invocaciones que no compilan ningún componente, o de las que compilan varios componentes, la ruta de acceso está en blanco. El identificador de invocación es el mismo que el de la columna InvocationId. |
InvocationId | Identificador numérico único para la invocación en la que se produjo este evento. |
Nombre | Nombre de la actividad o propiedad representada por este evento. |
Time | Marca de tiempo que identifica cuándo se produjo el evento. |
Herramienta | Herramienta en ejecución cuando se produjo este evento. El valor de esta columna es CL o Link. |
Tipo | Tipo del evento actual. Este valor es una actividad o una propiedad. |
Valor | Si el evento actual es una propiedad, esta columna contiene su valor. Esta columna se deja en blanco cuando el evento actual es una actividad. |
Valores preestablecidos de vista del Explorador de compilaciones
Nombre del valor preestablecido | Modo de vista preferido | Cómo se usa |
---|---|---|
Estadísticas de actividad | Gráfico/tabla | Use este valor preestablecido para ver las estadísticas agregadas de todas las actividades del explorador de compilaciones. En el modo de tabla, observe de un vistazo si la compilación está dominada por el análisis, la generación de código o el enlazador. Las duraciones agregadas para cada actividad se ordenan de forma descendente. Profundice expandiendo el nodo superior para encontrar fácilmente las invocaciones que tardan más tiempo en estas actividades principales. Si lo desea, puede ajustar la configuración de WPA para mostrar los promedios u otros tipos de agregaciones. En el modo de gráfico, vea cuándo está activa cada actividad durante la compilación. |
Invocaciones | Grafo | Desplácese hacia abajo a través de una lista de invocaciones en la vista de gráfico ordenada por hora de inicio. Puede usarla junto con la vista de CPU (muestreada) para buscar las invocaciones que se alinean con zonas de uso de CPU bajas. Detecte problemas de paralelismo. |
Propiedades de invocación | Tabla | Busque rápidamente información clave sobre la invocación de un compilador o enlazador determinado. Determine la versión, el directorio de trabajo o la línea de comandos completa que se usa para invocarlo. |
Escalas de tiempo | Grafo | Vea un gráfico de barras acerca de cómo se paralelizó la compilación. Identifique problemas de paralelismo y cuellos de botella de un vistazo. Configure WPA para asignar significados diferentes a las barras según sus necesidades. Elija descripciones de invocación como la última columna agrupada para ver un gráfico de barras codificadas en color de todas las invocaciones. Le ayuda a identificar rápidamente los elementos que consumen más tiempo. A continuación, amplíe y elija el nombre de la actividad como la última columna agrupada para ver las partes más largas. |
Archivos
La vista archivos se utiliza para:
- determinar qué encabezados se incluyen con más frecuencia, y
- ayudarle a decidir qué incluir en un encabezado precompilado (PCH).
Columnas de datos de la vista de archivos
Nombre de la columna | Descripción |
---|---|
ActivityName | La actividad en curso cuando se emitió este evento de archivo. Actualmente, este valor siempre es Parsing. |
BuildTimelineDescription | * |
BuildTimelineId | * |
Componente | * |
Count | * |
Depth | Posición de base cero del árbol de inclusión en el que se encuentra este archivo. El recuento empieza en la raíz del árbol de inclusión. Un valor de 0 normalmente corresponde a un archivo .c/.cpp. |
ExclusiveDuration | * |
IncludedBy | Ruta de acceso completa del archivo que incluía el archivo actual. |
IncludedPath | Ruta de acceso completa del archivo actual. |
InclusiveDuration | * |
InvocationId | * |
StartTime | Marca de tiempo que representa la hora a la que se emitió el evento de archivo actual. |
Herramienta | * |
* El valor de esta columna es el mismo que en la vista Explorador de compilaciones .
Valores preestablecidos de la vista de archivos
Nombre del valor preestablecido | Modo de vista preferido | Cómo se usa |
---|---|---|
Estadísticas | Tabla | Vea qué archivos tenían el mayor tiempo de análisis agregado observando la lista en orden descendente. Utilice esta información como ayuda para reestructurar los encabezados o para decidir qué incluir en el PCH. |
Funciones
La vista Funciones se usa para identificar las funciones con un tiempo de generación de código excesivamente largo.
Columnas de datos de la vista Funciones
Nombre de la columna | Descripción |
---|---|
ActivityName | La actividad en curso cuando se emitió este evento de función. Actualmente, este valor siempre es CodeGeneration. |
BuildTimelineDescription | * |
BuildTimelineId | * |
Componente | * |
Count | * |
Duration | La duración de la actividad de generación de código para esta función. |
FunctionName | Nombre de la función que se está sometiendo a la generación de código. |
InvocationId | * |
StartTime | Marca de tiempo que representa cuándo se emitió el evento de función actual. |
Herramienta | * |
* El valor de esta columna es el mismo que en la vista Explorador de compilaciones .
Valores preestablecidos de la vista Funciones
Nombre del valor preestablecido | Modo de vista preferido | Cómo se usa |
---|---|---|
Estadísticas | Tabla | Vea qué funciones tenían el mayor tiempo de generación de código agregado observando la lista en orden descendente. Pueden sugerir en qué puntos su código usa en exceso la palabra clave __forceinline , o que algunas funciones pueden ser demasiado grandes. |
Escalas de tiempo | Grafo | Eche un vistazo a este gráfico de barras para conocer la ubicación y la duración de las funciones que tardan más tiempo en generarse. Vea si se alinean con los cuellos de botella en la vista Explorador de compilaciones. Si lo hacen, tome las medidas adecuadas para reducir su tiempo de generación de código y mejorar los tiempos de compilación. |
Consulte también
Introducción a C++ Build Insights
Referencia: comandos de vcperf
Tutorial: Conceptos básicos de Windows Analizador de rendimiento
Windows Performance Analyzer