Elección entre Visual Studio Performance Profiler, Windows Performance Toolkit y PerfView
En esta guía se proporciona una comparación general de las tecnologías principales de generación de perfiles de rendimiento de uso general en Microsoft: Visual Studio Performance Profiler, Windows Performance Toolkit y PerfView.
Estas herramientas pueden ayudarle a diagnosticar y comprender las características de rendimiento de las aplicaciones en Windows. El objetivo de esta guía es proporcionar información general sobre cuándo usarse entre sí, resaltar cada uno de sus puntos fuertes y ofrecer una breve visión general de la funcionalidad que contienen.
Información general
Visual Studio Performance Profiler lo crea el equipo de Visual Studio para comprender rápidamente las características de rendimiento de una aplicación en desarrollo dentro del sistema de proyectos de Visual Studio existente. Su fuerza está integrando estrechamente con el proyecto de desarrollo activo, simplificando el análisis de los escenarios de rendimiento más comunes y recopilación rápida y sencilla de solo una sola aplicación.
Windows Performance Toolkit es creado por el equipo de Windows para comprender las características generales del sistema de todo el equipo a la vez. Aunque creció a partir de la necesidad de analizar hardware y controladores, también es muy eficaz para comprender los problemas de software. Su fuerza consiste en recopilar grandes cantidades de información de toda la máquina a la vez, por lo que los problemas de varios procesos, los que tratan con hardware o controladores, y escenarios complejos están bien coincidentes con estas herramientas.
PerfView lo crea el equipo de .NET para comprender el rendimiento de las aplicaciones .NET. Al igual que Windows Performance Toolkit, puede recopilar grandes cantidades de información de toda la máquina a la vez. Se diferencia por su capacidad de mostrar información muy detallada sobre los servicios en tiempo de ejecución de .NET, como la recolección de elementos no utilizados, la compilación Just-In-Time y el grupo de subprocesos administrados. PerfView se puede usar para aplicaciones administradas, nativas y en modo mixto.
Hay superposición entre estas herramientas. A menudo, puede empezar a explorar un problema en una herramienta y cambiar a otra para una vista diferente del mismo escenario. Otras veces, una de las herramientas será más eficaz que las demás.
Instalación
Visual Studio Performance Profiler es un componente de Visual Studio y se puede instalar a través del mismo asistente de instalación que el resto del entorno de desarrollo.
Windows Performance Toolkit se puede descargar por separado como parte del Windows Assessment and Deployment Kit. Sin embargo, la herramienta Grabadora de rendimiento de la línea de comandos está preinstalada con Windows 10 y Windows 11 como wpr.exe
disponible en la variable de ruta de acceso predeterminada desde shells como PowerShell y el símbolo del sistema.
El Analizador de rendimiento está disponible como una aplicación en Microsoft Store.
PerfView está disponible como descarga independiente en la página Versiones de GitHub de PerfView. No requiere instalación.
Personalización para escenarios avanzados de análisis de rendimiento
El Kit de herramientas de rendimiento de Windows ofrece además dos puntos de extensibilidad que pueden servir escenarios avanzados de análisis de rendimiento.
- El SDK de Microsoft Performance Toolkit controla el procesamiento de datos de seguimiento y permite a los desarrolladores crear sus propios complementos para que se vean dentro del Analizador de rendimiento de Windows.
- TraceProcessing de .NET permite la creación de herramientas personalizadas que pueden procesar información de seguimiento en tablas resultantes y es especialmente útil para el análisis automatizado de datos de seguimiento masivo.
PerfView se basa de forma similar en la biblioteca TraceEvent de .NET para consumir seguimientos de rendimiento mediante programación. TraceEvent se puede usar independientemente de PerfView para realizar un análisis personalizado de los datos de seguimiento de rendimiento.
Nota:
Para que los escenarios de análisis de rendimiento funcionen, necesitará tener acceso a los símbolos que se correlacionan con la aplicación de Windows que se está probando. Al compilar con Visual Studio, se ubicarán igual que en la configuración del escenario de depuración, ya sea compilada con la solución o capturada desde servidores de símbolos. Al analizar otras bibliotecas o componentes, tendrá que buscar los símbolos para que esos componentes completen el análisis.
Consideraciones para elegir una herramienta
La herramienta que se va a elegir depende del escenario de rendimiento que está intentando explorar. Una comparación de las funcionalidades y rasgos entre las herramientas se encuentra en la tabla siguiente:
Sugerencia
Para una regla general, comience con la generación de perfiles de Visual Studio siempre que sea posible. Pase a Windows Performance Toolkit o PerfView al alcanzar los límites de lo que pueden hacer las herramientas de Visual Studio.
Situación | Generador de perfiles de rendimiento de Visual Studio | Kit de herramientas de rendimiento de Windows | PerfView |
---|---|---|---|
Consideraciones generales sobre el uso | |||
Tamaño del archivo de seguimiento | ✔️ | 🆗 | 🆗 |
Adquisición de herramientas | ✔️ | ✔️ | ✔️ |
Kits de extensibilidad | ❌ | ✔️ | ✔️ |
Ámbito de las consideraciones de trabajo | |||
Proceso único o proyecto | ✔️ | 🆗 | 🆗 |
Varios procesos | ❌ | ✔️ | ✔️ |
Consideraciones de hardware | |||
Uso de CPU | ✔️ | ✔️ | ✔️ |
Uso de GPU | ✔️ | ✔️ | ❌ |
Uso de memoria | ✔️ | ✔️ | ✔️ |
Entrada y salida del dispositivo | ❌ | ✔️ | ✔️ |
Uso de energía | ❌ | ✔️ | ❌ |
Identificadores del sistema | ❌ | ✔️ | ✔️ |
Consideraciones de compatibilidad con lenguaje de código | |||
Compatibilidad con C/C++ | ✔️ | ✔️ | ✔️ |
Compatibilidad con .NET | ✔️ | ✔️ | ✔️ |
Compatibilidad con JavaScript | 🆗 | 🆗 | 🆗 |
Consideraciones sobre escenarios | |||
Seguimiento de eventos para Windows | 🆗 | ✔️ | ✔️ |
Composición | ❌ | ✔️ | ❌ |
HTML/Edge/Internet Explorer/Webview | ❌ | ✔️ | ❌ |
XAML/WinUI | 🆗 | ✔️ | ✔️ |
Canalizaciones de audio/vídeo y problemas | ❌ | ✔️ | ❌ |
Tiempo de la base de datos | ✔️ | ❌ | ❌ |
Asignación de objetos administrados y recolección de elementos no utilizados | ✔️ | ❌ | ✔️ |
Escenarios personalizados | ❌ | ✔️ | ✔️ |
Clave
- ✔️ Bien compatible: diseñado para la tarea prevista y logra resultados sólidos y detallados.
- 🆗 Compatible: puede requerir una configuración o pasos adicionales para lograr los resultados deseados. Puede contener un ámbito limitado de acción dentro de la categoría.
- ❌ No compatible: no está diseñado para este uso.
Consideraciones generales sobre el uso
Para aquellos que acaban de empezar con el análisis de rendimiento, se recomienda Visual Studio Performance Profiler como una característica bien integrada dentro del conjunto de desarrollo de Visual Studio existente. Se recomienda usar El generador de perfiles de rendimiento de Visual Studio sobre PerfView si satisface sus necesidades.
Para un análisis de rendimiento del sistema más complejo que puede requerir más potencia y versatilidad, se recomienda Windows Performance Toolkit, que consta de dos herramientas que se usan para realizar tareas de análisis de rendimiento:
- Windows Performance Recorder, disponible tanto como una herramienta de línea de comandos como con una interfaz gráfica, es responsable de capturar la sesión de seguimiento.
- El Analizador de rendimiento de Windows se abre más adelante para procesar los datos recopilados y proporcionar una vista de análisis altamente personalizable.
Algunas de las ventajas que ofrece Visual Studio Performance Profiler incluyen:
- Una buena introducción al análisis de rendimiento en los dominios principales.
- Controla muchas de las complejidades de análisis y depuración automáticamente en función de la configuración del proyecto.
- Resalta automáticamente las principales áreas de preocupación.
- Es mejor centrarse en una sola aplicación, con un conjunto de datos más pequeño y centrado y un ámbito de recopilación más pequeño.
- El enfoque más específico se traduce a menos impacto en otras aplicaciones y hardware de máquina mientras se produce la generación de perfiles, un tamaño general reducido a los archivos de seguimiento generados y almacenados, y una mayor velocidad de procesamiento para revisar la información una vez completada la recopilación.
- Tarda menos tiempo en iniciar y completar un seguimiento, con una capacidad más rápida de revisar y girar porque Visual Studio Performance Profiler solo se preocupa por la aplicación y no por todo el sistema.
- La recopilación de datos y el análisis resultante se realizan en Visual Studio, con páginas de análisis que se inician automáticamente en la conclusión de la recopilación. La vista del informe también tiende a centrarse automáticamente en las zonas activas o áreas de acción.
Algunas de las ventajas que ofrece Windows Performance Toolkit incluyen:
- Los equipos de rendimiento y diagnóstico de Windows proporcionan una amplia documentación y blogs para ayudarle a empezar.
- Es mejor recopilar archivos muy grandes, especialmente desde sistemas ocupados con tareas en segundo plano. Es una herramienta de captura para recopilar información que se filtrará más adelante en la interfaz Analizador de rendimiento de Windows.
- Capacidad de personalizarse para escenarios avanzados de análisis de rendimiento mediante puntos de extensibilidad. (Véase a continuación)
Algunas de las ventajas que ofrece PerfView incluyen:
- Documentación integrada completa y vídeos de procedimientos accesibles para Internet vinculados desde dentro de la aplicación.
- Es fácil implementar en entornos de producción simplemente copiando PerfView.exe.
- Un modo de grabadora de vuelos para capturar problemas difíciles de reproducir.
- Diagnósticos muy detallados para los servicios en tiempo de ejecución de .NET.
- Extensible para vistas personalizadas.
Ámbito de las consideraciones de trabajo
Para los análisis que rodean una sola aplicación y especialmente un único proceso, todas las herramientas son muy capaces de recopilar y comprender el rendimiento. Sin embargo, la ventaja sería lado del generador de perfiles de rendimiento de Visual Studio, especialmente cuando el origen de la aplicación y el sistema de proyecto ya están disponibles. El motor del generador de perfiles de rendimiento de Visual Studio está diseñado para recopilar información de CPU, GPU y memoria de un binario de forma similar simplificada a la funcionalidad de depuración F5. Aunque solo se centra en una aplicación, este mecanismo de recopilación ofrece un giro más estrecho y un bucle de desarrollador.
Elija PerfView si Visual Studio no tiene las funcionalidades necesarias, no se puede ejecutar debido a los requisitos de recopilación (comunes en entornos de producción) o se necesitan funcionalidades de diagnóstico de .NET más detalladas.
En situaciones con mayor complejidad que incluyen varias solicitudes entre procesos, dispositivos de hardware y sus controladores, o profundiza en las tecnologías de la plataforma Windows, el Kit de herramientas de rendimiento de Windows es la opción óptima.
Consideraciones de hardware
Visual Studio Performance Profiler, Windows Performance Toolkit y PerfView pueden diagnosticar LA CPU y la memoria de los componentes de hardware principales, con Visual Studio Performance Profiler y Windows Performance Toolkit además admiten GPU. Las herramientas suelen coincidir bien con el análisis introductorio en estas áreas.
El uso de cpu se puede analizar con las tres herramientas y normalmente se captura mediante el muestreo. El muestreo captura los seguimientos de pila de la aplicación periódicamente y proporciona una clasificación sobre la frecuencia con la que aparecen. Ambas herramientas pueden ajustar este comportamiento para usar en su lugar instrumentación para la contabilidad exacta.
El uso de GPU se puede analizar con Visual Studio Performance Profiler y Windows Performance Toolkit capturando una visión general de la información.
El uso de memoria se puede analizar con las tres herramientas que recopilan información sobre el espacio del montón y las pilas asociadas a las asignaciones del montón.
Cuando surgen escenarios más complejos, como analizar redes, discos, dispositivos, controladores o consumo de energía general del sistema, Windows Performance Toolkit está más equipado para controlar el análisis. Estos datos se recopilan mejor directamente desde el sistema operativo a medida que envía solicitudes a los distintos componentes de hardware. Windows Performance Toolkit se desarrolla junto con el sistema operativo, por lo que está listo y capaz de recopilar esta categoría de información más centrada en el sistema.
Consideraciones de compatibilidad con lenguaje de código
Windows Performance Toolkit se centra principalmente en la compatibilidad con C y C++, ya que estos lenguajes se usan en el código base del sistema operativo Windows.
La compatibilidad con Visual Studio Performance Profiler se centra en una gama más amplia de lenguajes de programación, empezando por tecnologías de origen de .NET como C# y ASP.NET después expandirse hacia fuera.
PerfView admite aplicaciones .NET y nativas (C y C++). Tiene conocimientos profundos de los entornos de ejecución de .NET y funcionalidades en torno a ASP.NET cargas de trabajo web.
Esto no significa que Visual Studio no pueda analizar código de C o C++, o que Windows Analizador de rendimiento no pueda analizar aplicaciones .NET o que PerfView no pueda analizar aplicaciones web. Es mejor empezar con la herramienta más estrechamente coincidente con la aplicación que se está analizando para aprovechar las ventajas de cada herramienta.
Consideraciones sobre escenarios
Todas las herramientas contienen varias opciones basadas en escenarios para estudiar el rendimiento de la aplicación.
Las opciones del Generador de perfiles de rendimiento de Visual Studio tienden a centrarse en .NET, la interfaz de usuario (UI) y las bases de datos que residen en la aplicación que se está analizando.
Windows Performance Toolkit tiende a centrarse en los componentes y marcos del sistema operativo, como la composición, las vistas del explorador y los problemas en las canalizaciones de procesamiento en tiempo real.
En escenarios que requieren una solución más personalizada, Windows Performance Recorder puede combinar datos de recopilación en todo el sistema y de recopilación relacionados con la aplicación en una sola sesión de grabación. Esta funcionalidad permite a un desarrollador de aplicaciones ofrecer una solución completa para implementar en los clientes para solicitar datos de rendimiento del hardware que podrían diferir de lo usado para desarrollar el producto. Puede encontrar más información sobre este mecanismo en la serie de blog De perfiles personalizados de creación por parte del equipo de rendimiento y diagnóstico de Windows.
PerfView está dirigido a investigaciones profundas de aplicaciones y entornos de ejecución de .NET, pero es tan capaz en investigaciones de varios procesos y de nivel de sistema operativo.
Resumen
Visual Studio Performance Profiler, Windows Performance Toolkit y PerfView son tres herramientas sólidas de Microsoft disponibles para comprender el rendimiento de la aplicación. La elección de la herramienta que mejor se adapte a sus necesidades requiere una variedad de consideraciones sobre su situación específica. Esperamos que esta guía proporcione la información necesaria para que tome decisiones sabias de análisis de rendimiento, pero también le damos la bienvenida a enviar comentarios en esta página a continuación, o para problemas relacionados específicamente con el rendimiento del desarrollo de Windows, envíe un problema en el repositorio rendimiento de desarrollo de Windows.