Herramientas de generación de perfiles de rendimiento de WPF
Actualización: noviembre 2007
WPF proporciona un conjunto de herramientas de creación de perfiles de rendimiento que permiten analizar el funcionamiento en tiempo de ejecución de la aplicación y determinar los tipos de optimización del rendimiento que se pueden aplicar. La tabla siguiente muestra las cinco herramientas de generación de perfiles de rendimiento que se incluyen en la herramienta Windows SDK, WPFPerf:
Herramienta |
Descripción |
---|---|
Perforator |
Se utiliza para analizar el comportamiento de representación. |
Visual Profiler |
Se usa para generar perfiles de uso de los servicios de WPF, como el diseño y el control de eventos, por parte de los elementos del árbol visual. |
Working Set Analyzer |
Se utiliza para analizar las características del espacio de trabajo de la aplicación. |
Event Trace |
Se utiliza para analizar eventos y generar archivos de registro de eventos. |
ETW Trace Viewer |
Registro, presentación y examen de archivos de registro de Seguimiento de eventos de Windows (ETW) en formato de interfaz de usuario de WPF. |
Este tema contiene las secciones siguientes.
- Usar las herramientas de generación de perfiles de rendimiento
- Perforator
- Visual Profiler
- Working Set Analyzer
- Event Trace
- ETW Trace Viewer
- Recursos adicionales de la herramienta de rendimiento
- Temas relacionados
Usar las herramientas de generación de perfiles de rendimiento
Después de haber instalado Windows SDK, dispone de la opción para instalar el conjunto de herramientas de rendimiento de WPF.
Nota
Antes de instalar el conjunto de herramientas de rendimiento, quite versiones anteriores de WPFPerf.exe.
La primera vez que ejecute WPFPerf, aparece el cuadro de diálogo Add Tool:
Cuadro de diálogo Add Tool
Elija las herramientas que desee usar y haga clic en OK.
Nota
Para usar las herramientas de generación de perfiles de rendimiento, debe ejecutar su cuenta de usuario con acceso administrativo.
Perforator
Perforator es una herramienta de generación de perfiles de rendimiento para analizar el comportamiento de representación. La ventana principal de Perforator muestra un conjunto de opciones que permiten analizar un comportamiento de representación muy específico de las partes de la aplicación.
Ventana principal de Perforator
Perforator permite establecer muchas opciones que afectan al comportamiento de representación de tiempo real de la aplicación:
Opción |
Descripción |
---|---|
Draw software rendering with purple tint |
Dibuja todas las áreas representadas usando la canalización de representación de software con tinta púrpura. Se incluyen los destinos de representación de software, el contenido 3D de software y el retroceso de software de primitivas individuales. |
Clear back-buffer before updating |
Borra las ventanas de la aplicación antes de cada operación de dibujo. |
Show dirty region update overlay |
Hace que las actualizaciones de WPF en pantalla se indiquen volviendo a aplicar color. De esta forma, el usuario puede ver cuándo y dónde se vuelven a dibujar las áreas de una aplicación. |
Disable dirty region support |
Hace que WPF vuelva a dibujar toda la ventana cada vez que se produzca un cambio. Normalmente, sólo se vuelve a dibujar la parte de la ventana que ha cambiado. Si se habilita esta opción, la representación de la aplicación será mucho más lenta. |
Disable Opacity effects |
Deshabilita algunos usos de la opacidad que posiblemente reduzcan el rendimiento. |
Disable per-primitive software fallback |
Deshabilita el retroceso de software para primitivas de representación individuales. No se pueden deshabilitar los destinos de representación intermedios de software ni otros tipos de representaciones de software. |
Disable high-quality image rescaling |
Deshabilita el cambio de escala de imágenes grandes a tamaños menores. |
Disable 3D rendering |
Deshabilita las operaciones de representación 3D |
Opción Enable Debug Control
La casilla Enable Debug Control permite habilitar o deshabilitar el acceso a la memoria compartida de WPF. De forma predeterminada, Perforator habilita esta opción al principio y la deshabilita al finalizar. En caso de una terminación anómala de Perforator, reinícielo y desactive la casilla Enable Debug Control manualmente para deshabilitar el acceso a la memoria compartida de WPF. A continuación, reinicie Perforator y la aplicación de WPF con la que estaba generando perfiles.
Nota
Si se habilita esta opción, se pueden producir un pequeño aumento del uso de memoria y una pequeña reducción del rendimiento al ejecutar aplicaciones de WPF. Debe asegurarse de que Perforator deshabilita correctamente esta opción.
Registry Key Setting
La casilla Enable Debug Control agrega o elimina un valor de clave del Registro de WPF. Para agregar el valor de clave del Registro manualmente, ejecute el comando siguiente desde una ventana de comando:
reg add HKLM\SOFTWARE\Microsoft\Avalon.Graphics /v EnableDebugControl /t REG_DWORD /d 1 /f
Para eliminar el valor de clave del Registro manualmente, ejecute el comando siguiente desde una ventana de comando:
reg delete HKLM\SOFTWARE\Microsoft\Avalon.Graphics /v EnableDebugControl /f
Utilizar Perforator
Para utilizar Perforator, inicie la aplicación de WPF cuyo comportamiento de representación desee analizar. Cuando la aplicación se haya iniciado, haga clic en el botón Refresh de Perforator. Ahora la aplicación debe aparecer en el cuadro de lista de Perforator que muestra las aplicaciones de WPF. Seleccione la aplicación y las opciones de representación que desee analizar. Los valores de datos de Perforator, como velocidad de fotogramas, reflejan inmediatamente el comportamiento de representación de la aplicación.
Perforator con las opciones de aplicación y representación seleccionadas
La captura de pantalla siguiente muestra la aplicación de ejemplo PhotoDemo con las opciones de representación "Draw software rendering with purple tint" y "Show dirty region support" habilitadas:
La aplicación de ejemplo PhotoDemo muestra el comportamiento de representación
En las secciones siguientes se describe los principales problemas de rendimiento de la representación y cómo pueden ayudar a diagnosticar estos problemas las opciones de Perforator y el resultado de los datos.
Evitar la representación de software
Puesto que la canalización hardware de representación de WPF es mucho más rápida que la canalización software de representación , cuanto menor sean el número de las representaciones de la aplicación de interfaz de usuario, más rápida será la representación en esa aplicación. Normalmente, el tiempo que se tarda en representar un área de software es proporcional al número de píxeles representado; por tanto, tenga cuidado con áreas extensas representadas usando la canalización de software. Las áreas pequeñas son menos problemáticas.
A continuación se describen las opciones de Perforator que pueden ayudar a detectar problemas de representación de software:
Draw software rendering with purple tint: dibuja todas las áreas representadas utilizando la canalización software de representación con tinta púrpura. Se incluyen los destinos de representación de software, el contenido 3D de software y el retroceso de software de primitivas individuales.
Num Software Render Targets: cuenta los destinos de representación de la ventana completa que se ejecutan mediante software. Si el recuento no es 0, indica un problema de rendimiento importante, suele estar relacionado con la configuración del equipo o la presencia de ventanas superpuestas. Asegúrese de que está habilitada Microsoft Direct3D (ejecute dxdiag), asegúrese de que todos los monitores tienen establecida la profundidad de bits de bits por píxel (BPP) en 32 y de que la tarjeta gráfica es compatible con Microsoft DirectX 9.0.
Num Hardware Render Targets: cuenta los destinos de representación de toda la ventana que se ejecutan mediante hardware. Este número debe ser igual al número de ventanas de la aplicación, muestra el número de adaptadores de pantalla. De esta forma se indica que el hardware acelera una aplicación siempre que sea posible.
Evitar muchos destinos de representación intermedios
Los destinos de representación intermedios son imágenes adicionales que WPF debe dibujar para que el contenido esté listo para dibujarse en la pantalla.
- Maximum SW/HW IRTs per Frame: muestra el número máximo de destinos de representación intermedios de software o hardware que se aplican para representar cualquier fotograma de la aplicación. Los destinos de representación intermedios los suele provocar el uso de DrawingBrush, VisualBrush, Opacity en un objeto Visual, o los modos de mosaico de un objeto TileBrush. Si este número es muy alto, puede ser una indicación de que el tiempo de ejecución de WPF está trabajando mucho para representar la aplicación.
Métrica de rendimiento útil
Dirty Rect Addition rate: indica que se desencadenan actualizaciones rápidas en la aplicación.
Frame rate: notifica la velocidad a la que la aplicación está representando en la pantalla. En aplicaciones sin animación, este valor debe estar próximo a 0, puesto que la optimización de la región modificada debe evitar dibujar salvo cuando sea necesario. Trate este número como estimación.
Estimated video memory usage: realiza el seguimiento de grandes asignaciones de memoria de vídeo efectuadas directamente por WPF (destinos de texturas y representaciones). Esta acción no realiza el seguimiento de las asignaciones de memoria efectuadas por un controlador de vídeo concreto durante la representación, las asignaciones provocadas por la compilación y la carga de los sombreadores de píxeles y vértices, o las asignaciones de búferes de vértice e índice. Observe que si se supera la cantidad disponible de memoria de textura, se suele provocar la asignación de la lógica de representación de WPF mediante software y que varias presentaciones (multi-mon.) tienen un efecto multiplicativo en la cantidad de memoria de vídeo necesaria de una aplicación.
Compatibilidad de la región modificada
Puesto que Windows Presentation Foundation (WPF) sólo actualiza partes de la ventana según convenga, puede ser útil visualizar la parte de la ventana que se está actualizando en cualquier momento. Las opciones siguientes ayudan a visualizar los comportamientos de la actualización.
Show dirty-region update overlay: provoca que se indiquen las actualizaciones de WPF en pantalla volviendo a colorear. De esta forma, el usuario ve las áreas que se dibujan en una aplicación en ejecución y cuándo se dibujan.
Clear Back Buffer Before Rendering: hace que se borre la ventana antes de cada operación de dibujo.
Disable Dirty Region Support: hace que WPF vuelva a dibujar toda la ventana cada vez que se realice un cambio, en lugar de sólo volver a dibujar la parte de la ventana que ha cambiado. Esto puede ser útil para que se fuerce la actualización de la ventana completa, pero tenga en cuenta que si se habilita, la representación de la aplicación será mucho más lenta.
Deshabilitar las características de representación
Perforator permite deshabilitar algunas operaciones que reducen el rendimiento para determinar si están produciendo cuellos de botella en la aplicación.
Disable Opacity Effects: deshabilita algunos usos de la opacidad que posiblemente reducen el rendimiento. Para evitar problemas de rendimiento en general, piense en establecer el valor de la opacidad en un objeto de nivel bajo, como Brush, en vez de en un objeto de nivel alto, como Button.
Disable per-primitive software fallback: deshabilita el retroceso de software de primitivas de representación individuales. No se pueden deshabilitar los destinos de representación intermedios de software ni otros tipos de representaciones de software.
**Disable high-quality image rescaling:**WPF cambia la escala de las imágenes grandes para que se vean mejor si se muestran a tamaño pequeño. Esta operación reduce el rendimiento, sobre todo en aplicaciones que muestran muchas imágenes grandes en pantalla a tamaño reducido. Esta opción permite deshabilitar este cambio de escala para ver si se trata de un problema de rendimiento. Para evitarlo, piense en descodificar las imágenes a un tamaño parecido al tamaño en el que se mostrarán.
Disable 3D rendering: desactiva las operaciones de dibujo 3D.
Visual Profiler
Visual Profiler es una herramienta de rendimiento para generar el perfil de uso de los servicios de WPF, como el diseño y el control de eventos, por parte de los elementos del árbol visual. Al analizar los resultados de generación de perfiles de esta herramienta, puede determinar qué elementos visuales de la aplicación pueden estar originando cuellos de botella de rendimiento. La ventana principal de Visual Profiler muestra un conjunto de opciones que permiten especificar cómo desea generar los perfiles de la aplicación:
Update interval. Granularidad del tiempo que se va a usar durante la generación de perfiles.
Display overlay. Esta opción permite mostrar el uso de los recursos de la CPU: las superposiciones de color rojo más oscuro indican mayor consumo de recursos de la CPU.
Valor de generación de perfiles visuales
La herramienta Visual Profiler de WPF presenta problemas de rendimiento en el contexto de los bloques de creación básicas que se usan para construir las escenas visuales de la aplicación. Estos bloques de creación incluyen objetos de nivel alto, como los controles Button y TextBlock, así como objetos de nivel bajo, como los elementos Line y Ellipse. En lugar de describir los problemas de rendimiento en términos de gráficos de llamadas de nombres de funciones, Visual Profiler describe estos problemas mediante la representación de objetos visuales. Se parece a la forma en que la herramienta de Windows SDK, IU de Spy, representa la información. Para obtener más información, vea UI Spy (UISpy.exe).
Para analizar todos los problemas de rendimiento de WPF, es necesario para comprender la función y el ámbito de los servicios subyacentes de WPF. Estos servicios incluyen el diseño, la representación y la animación. Visual Profiler proporciona una representación gráfica de la asignación de los servicios de WPF entre los objetos de la aplicación. Por ejemplo, cuando Visual Profiler muestra el árbol visual de los objetos de la aplicación, superpone diferentes sombras de rojo en los objetos para representar la cantidad relativa de recursos que usa el objeto. Un objeto que se muestra con una superposición de color rojo más oscuro representa un objeto que usa una proporción superior de recursos que un objeto con una superposición de color rojo más claro. Más aún, Visual Profiler proporciona un desglose de la cantidad de recursos de WPF concretos que usa un objeto.
Usar Visual Profiler
Para usar Visual Profiler, haga clic en el botón Start Profiling y elija Launch o Attach. Para utilizar la opción Attach, tanto WPFPerf como la aplicación de la que está generando un perfile se deben ejecutar con acceso administrativo. Además, está deshabilitada la funcionalidad de superposición y están disponibles menos eventos para la opción Attach. La opción Launch es la opción recomendada.
La ficha Eventos permite elegir la aplicación y los eventos de elementos de los que desee generar un perfil.
Puede establecer la configuración de Visual Profiler para habilitar o deshabilitar la generación de perfiles de los siguientes eventos de aplicación. Los eventos que son métodos se representan mediante el nombre del método seguido del nombre de la clase entre paréntesis. Por ejemplo, Tick (TimeManager) representa el método TimeManager.Tick.
Eventos de aplicación |
Descripción |
---|---|
RenderMessageHandler (MediaContext) |
Inicia el paso de representación. Llama a TimeManager.Tick y MediaContext.Render, entre otros métodos. |
Rendering Thread |
Se produce al ejecutar las instrucciones de representación en el subproceso de representación. Es útil para detectar aplicaciones enlazadas a representaciones. |
Layout |
Se produce durante el paso de medida, organización y representación. |
UpdateRealizations |
Se produce al actualizar representaciones internas de texto mediante mapas de bits y efectos de mapa de bits. |
Tick (TimeManager) |
Se produce cuando la animación está marcando. Este evento puede desencadenar el controlador de representación de animación. |
UpdateEffectiveValue (DependencyObject) |
Se produce cuando el motor de propiedad cambia el valor de un objeto DependencyProperty. |
Hit Testing |
Se produce durante el paso de la prueba de posicionamiento, que determina cuál es el objeto visual que se ha alcanzado. |
AnimatedRenderMessageHandler (MediaContext) |
Cuando están habilitadas las animaciones, este controlador procesa y actualiza la animación, lo que provoca el cambio de las propiedades y, a su vez, que se produzca la representación. |
Render (MediaContext) |
Se produce durante el paso de representación. Este método llama finalmente al método OnRender de cada elemento y es útil para entender el costo total de OnRender de todos los elementos. Este evento corresponde al método MediaContext.Render de un archivo del generador de perfiles de Visual Studio (VSP). |
FormatLineInternal (TextFormatterImp) |
Se produce al dar formato al texto. |
MarkVisibleRealizations (Visual) |
Se produce al detectar representaciones internas de texto mediante mapas de bits y cuando se deben actualizar los efectos del mapa de bits. |
Puede establecer la configuración de Visual Profiler para habilitar o deshabilitar la generación de perfiles de los siguientes eventos de elemento:
Eventos de elemento |
Descripción |
---|---|
Layout |
Se produce durante el paso de medida, organización y representación. |
MarkVisibleRealizations (Visual) |
Se produce al detectar representaciones internas del mapa de bits de texto y cuando se deben actualizar los efectos del mapa de bits. |
UIElement.OnRender |
Operaciones de representación de UIElement. |
UIElement Layout |
Operaciones de diseño de UIElement. |
Al terminar de seleccionar las opciones de la aplicación y de generación de perfiles, haga clic en el botón Aceptar para empezar a generar el perfil de la aplicación.
Ejecute la aplicación y la herramienta Visual Profiler en paralelo y observe los valores que cambian en la herramienta. Expandiendo la jerarquía del árbol visual, puede seleccionar un objeto visual concreto para generar el perfil, como un control Grid. La sección CPU Usage de Visual Profiler proporciona un desglose preciso del uso de los servicios de WPF por parte tanto del objeto como de la aplicación. Los datos de Uso de la CPU del elemento muestran:
Tiempo inclusivo El uso de la CPU del elemento y todos sus descendientes.
Time exclusivo El uso de la CPU sólo del elemento.
Resultados de la presentación de Visual Profiler
Visual Profiler recubre con distintos tonos de rojo los objetos del árbol visual para representar la cantidad relativa de recursos que usa el objeto. Un objeto que se muestra con una superposición de color rojo más oscuro representa un objeto que usa una proporción mayor de recursos que un objeto con una superposición de color rojo más claro.
Working Set Analyzer
Working Set Analyzer es una herramienta de análisis de rendimiento de WPF que proporciona información sobre el uso de memoria de un proceso especificado. Esta herramienta permite generar una captura de la información de uso de memoria de la aplicación en un estado de aplicación concreto.
Espacio de trabajo de una aplicación
El espacio de trabajo de una aplicación es la colección formada por aquellas páginas del espacio de direcciones virtuales de la misma a la que se ha hecho referencia recientemente. Incluye datos tanto compartidos como privados. Los datos compartidos incluyen las páginas que contienen todas las instrucciones que ejecuta la aplicación, incluidas las de las DLL y las DLL del sistema. A medida que aumenta el tamaño del espacio de trabajo, aumenta la demanda de memoria. Para obtener más información sobre el espacio de trabajo, vea Process Working Set.
Utilidad Virtual Address Dump (VaDump)
Virtual Address Dump (VaDump) crea una lista que contiene información sobre el uso de memoria de un proceso especificado. Esta herramienta se encuentra en el directorio siguiente:
~\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin\winnt
Nota importante: |
---|
Debe asegurarse de que la ruta de acceso de ejecución del sistema incluye la ubicación del directorio de VaDump. De lo contrario, Working Set Analyzer no funcionará correctamente. |
Utilizar Working Set Analyzer
Para usar Working Set Analyzer, inicie la aplicación de WPF de la que desee generar un perfil. Después de haber iniciado el analizador del espacio de trabajo, elija la opción Select Process:
Cuadro de diálogo Select Process de Working Set Analyze
Seleccione el proceso cuyo espacio de trabajo desee analizar y, a continuación, haga clic en el botón Capture. El analizador del espacio de trabajo primero invoca VaDump para generar información del uso de la memoria. Después analiza la información y la muestra en un formato enriquecido con gráficos.
Nota
Los datos del espacio de trabajo representan una vista estática del uso de memoria. Quizá desee generar varios conjuntos de datos del espacio de trabajo en puntos diferentes de la aplicación y comparar las diferencias de uso de memoria.
Cuando los datos del espacio de trabajo están listos para verse, Working Set Analyzer genera una vista de árbol que representa los datos dinámicos, los datos del sistema y los módulos de aplicaciones.
Categorías de uso de memoria de Working Set Analyzer
En las aplicaciones de WPF, la categoría Módulos de WPF contiene los módulos que son específicos del sistema en WPF. Haga clic en la categoría que desee mostrar y aparece un conjunto de gráficos circulares. Por ejemplo, al hacer clic en la categoría Módulos de WPF, se muestra la siguiente información a la izquierda de la ventana.
Gráfico circular del uso de memoria de Working Set Analyzer de los módulos de WPF
El título de la parte superior muestra el tamaño total de la categoría del espacio de trabajo. En este caso, los módulos de WPF representan 9160 KB de uso de memoria. Este gráfico circular representa el uso de memoria individual de todos los módulos que definen la categoría Módulos de WPF.
Nota
El tamaño de una categoría de uso de memoria refleja el uso de memoria de la aplicación en el momento en que se capturó la información del espacio de trabajo.
La tabla pequeña representa el uso de memoria de bytes compartidos, compartibles y privados.
Tabla del uso de memoria de Working Set Analyzer
La categoría de bytes compartidos representa la cantidad de memoria que pudieron compartir potencialmente otras aplicaciones de WPF.
Ver el uso de memoria de la aplicación
Para ver el uso de memoria de la aplicación, seleccione el nombre del archivo ejecutable de la categoría Módulos adicionales de la vista de árbol del espacio de trabajo.
Categorías de uso de memoria de Working Set Analyzer
Guardar y volver a cargar los archivos de Working Set Analyzer
Para guardar la información de uso del espacio de trabajo actual, seleccione la opción File del menú principal de Working Set Analyzer. A continuación, haga clic en el botón Save VADump output. Cuando haya guardado la información de uso del espacio de trabajo, puede generar otra captura de uso de memoria haciendo clic en el botón Capture. Para volver a cargar un archivo que incluya el contenido de VADump, seleccione la opción File del menú principal de Working Set Analyzer. A continuación, haga clic en el botón Open VADump output.
Usar un retardo del temporizador para capturar la información del espacio de trabajo
Working Set Analyzer proporciona una característica de retardo de tiempo que permite capturar la información de uso del espacio de trabajo después de un intervalo de tiempo especificado. Seleccione la opción Actions del menú principal de Working Set Analyzer. A continuación, haga clic en el botón Launch Process….
Especifique la aplicación que desee ejecutar, utilizando el botón Browse si es necesario. Luego escriba cualquier argumento de la aplicación. Finalmente, escriba el número de segundos que desea retardar la captura de la información del uso de la memoria. Después, haga clic en el botón Launch. El texto del estado situado en la parte inferior del analizador del espacio de trabajo cuenta el número de segundos restantes hasta la captura. De esta forma, hay tiempo para modificar el estado de la aplicación. Una vez completada la captura, el texto del estado muestra "Done".
Event Trace
El seguimiento de eventos para Windows (ETW) es una utilidad de seguimiento de nivel de kernel que permite que el usuario registre los eventos definidos por el kernel o por la aplicación en un archivo. Puede usar los eventos en tiempo real o desde un archivo de registro y utilizarlos para depurar una aplicación o determinar dónde se producen los problemas de rendimiento en la aplicación. La herramienta de generación de perfiles Event Trace de WPF usa ETW para el registro de eventos. Para obtener más información sobre ETW, vea Traza de eventos.
Event Trace forma la parte del conjunto de herramientas de generación de perfiles de rendimiento WPF, WPFPerf (WpfPerf.exe). Para obtener más información, vea la sección Usar las herramientas de generación de perfiles de rendimiento.
Utilizar Event Trace
La ventana principal de Event Trace muestra un conjunto de opciones que permiten agregar, guardar y ver información de registro de eventos:
Ventana principal de Event Trace
Agregar un registrador de eventos nuevo
Para agregar un nuevo registrador de eventos, haga clic en el botón Add de la ventana principal de Event Trace. El cuadro de diálogo Add New Logger muestra un conjunto de información para que la defina. Logger Name hace referencia al nombre descriptivo del registrador. Seleccione uno de los cuatro tipos de registradores de eventos del cuadro de lista desplegable denominado GUID:
NT Kernel Logger
Common Language Runtime Garbage Collection
Windows Presentation Foundation - Performance Only
Windows Presentation Foundation -All
Hay dos tipos de registradores de eventos de WPF. La versión "Performance Only" es un subconjunto reducido de la versión "All". Log File permite definir el nombre de archivo del archivo de registro de eventos. Haga clic en el botón etiquetado "…" para definir el nombre de archivo. Los archivos de registro de eventos usan la extensión de archivo predeterminada: "etl".
La opción Level hace referencia a los niveles de gravedad siguientes que puede usar. Los números más altos implican que también obtiene niveles más bajos. Por ejemplo, si especifica 3, también recibe todas las advertencias, los errores y los eventos graves:
Nivel |
Descripción |
---|---|
1 |
Eventos de salida anormal o de finalización. |
2 |
Eventos de error grave. |
3 |
Eventos de advertencias como errores de asignación. |
4 |
Eventos no de error como los eventos de entrada o salida. |
5 |
Eventos de seguimiento detallado. |
La opción Flags especifica la clase de los eventos de WPF. En la mayoría de los casos, basta con el valor predeterminado.
Cuando haya terminado de crear la nueva información de registro de eventos, haga clic en el botón Add del cuadro de diálogo Add New Logger para agregar el registrador a Event Trace. Puede crear registradores de eventos adicionales y agregarlos a Event Trace. Cuando haya terminado de agregar todos los registradores de eventos, haga clic el botón Done.
Cuadro de diálogo Add New Logger
Para quitar un registrador de evento concreto, seleccione el registrador de evento en el cuadro de lista y haga clic en el botón Remove. Para quitar todos los registradores de eventos, haga clic en el botón Clear.
Habilitar el registro de eventos
Seleccione el registrador de eventos de la lista de registradores de eventos de la ventana principal de Event Trace. Haga clic en el botón Start para habilitar el registro. El estado del registrador de eventos debe mostrar Enabled.
Ventana principal de Event Trace con un registrador de eventos seleccionado
Cuando haya terminado de registrar los eventos de la aplicación, haga clic en el botón Stop. Para asegurarse de que ha capturado la información de registro de eventos, quizá desee ver el archivo de registro de eventos. Haga clic en el botón Open Log para ver el archivo de registro de eventos.
Ventana principal de Event Trace con información de registro de eventos
El archivo de registros de eventos muestra cinco columnas de información para cada evento.
Columns |
Descripción |
---|---|
Hora |
Hora actual en pasos de la CPU. |
Guid |
GUID que corresponde al evento. |
Nombre |
Nombre del evento. |
Tipo de evento |
Evento de información, de inicio o de fin. Un evento de inicio tiene un evento de fin correspondiente. |
Datos |
Datos relacionados con un tipo de evento concreto. |
La información del registro de eventos no es muy útil en este formato. Use la herramienta de generación de perfiles ETW Trace Viewer de WPF para analizar el resultado de un archivo de registro de eventos creado con Event Trace.
ETW Trace Viewer
El seguimiento de eventos para Windows (ETW) proporciona un mecanismo que permite realizar el seguimiento y registrar los eventos provocados por aplicaciones en modo usuario. ETW se implementa en el sistema operativo Windows y proporciona a los programadores un conjunto de características de seguimiento de eventos rápido, confiable y versátil. La herramienta Event Trace permite registrar, mostrar y explorar los archivos de registro de ETW en un formato de interfaz de usuario específico para las características de WPF.
Ventana principal del Visor de seguimiento ETW
Usar ETW Trace Viewer
Puede ver un archivo de registro de ETW creado y guardado con la herramienta de generación de perfiles Event Trace de WPF. Los archivos de registro de eventos usan la extensión de archivo predeterminada: "etl". Seleccione la opción File del menú principal del Visor de seguimiento ETW. A continuación, haga clic en Open para cargar el archivo de registro deseado.
Ventana principal de ETW Trace Viewer con archivo de registro
Una vez cargado el archivo de registro, ETW Trace Viewer muestra una escala de tiempo que representa la duración de la captura del registro de eventos. Puede cambiar la unidad de medida para que la escala de tiempo esté en segundos o en milisegundos. Puede elegir los tipos de eventos que desee ver habilitando o deshabilitando tipos de evento concretos. Si está interesado en ver pocos tipos de eventos, puede hacer clic en el botón Disable All para deshabilitar todos los eventos y, a continuación, hacer clic en las casillas del evento que desee habilitar. Los tipos de eventos habilitados de la escala de tiempo aparecen en la parte inferior derecha de ETW Trace Viewer.
Puede hacer clic y arrastrar el mouse por la escala de tiempo para ver sólo los eventos que se provocaron durante el área seleccionada de la escala de tiempo. Para acercar el área seleccionada de la escala de tiempo, haga clic con el botón secundario del mouse para mostrar el menú emergente que aparece en la captura de pantalla siguiente.
Ventana principal de ETW Trace Viewer con menú emergente
El menú emergente permite acercar y alejar la escala de tiempo, así como mostrar todos los eventos y borrar el área actualmente seleccionada de la escala de tiempo. Al acercar la escala de tiempo, el intervalo de tiempo que se muestra en azul indica la duración de la escala de tiempo a la que se ha aplicado el zoom. El intervalo de tiempo que se muestra más abajo, en negro, indica el tiempo respecto a la duración total de la captura del registro de eventos.
Ventana principal de ETW Trace Viewer con datos a los que se ha aplicado el zoom
Puede hacer clic en los cuadros pequeños de la escala de tiempo para mostrar información sobre un evento concreto.
Generar un archivo del registro de eventos
También puede crear un archivo de registro de ETW con ETW Trace Viewer haciendo clic en el botón Start capture para comenzar el registro de eventos y en el botón Stop capture para finalizar el registro de eventos. El registrador de evento generado con este método no permite personalizar los valores para filtrar eventos. Use la herramienta Event Trace para crear un registrador de eventos personalizado.
Recursos adicionales de la herramienta de rendimiento
Windows Presentation Foundation (WPF) también proporciona compatibilidad con el rastreo de depuración.
Compatibilidad del rastreo de depuración de WPF
La clase PresentationTraceSources proporciona compatibilidad de rastreo de depuración para las aplicaciones de Windows Presentation Foundation (WPF). Rastreo es un sistema de diagnóstico mediante el cual se puede realizar el seguimiento de progresión de una aplicación. Se suele usar la información del informe de instrucciones de rastreo, de forma muy parecida al método WriteLine. Sin embargo, se pueden activar y desactivar las instrucciones de rastreo usando un archivo de configuración. Además, se puede personalizar el resultado de las instrucciones de rastreo.
Para obtener otras clases de diagnóstico de .NET Framework relacionadas, vea System.Diagnostics.
Vea también
Conceptos
Optimizar WPF: Rendimiento de aplicaciones
Niveles de representación de gráficos
Información general sobre la representación de gráficos en Windows Presentation Foundation