Compartir por


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.

Visió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 fortaleza radica en integrar estrechamente con el proyecto de desarrollo activo, simplifica el análisis de los escenarios de rendimiento más comunes y recopilar rápidamente y fácilmente solo una 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 multiproceso, los que tratan con hardware o controladores, y escenarios complejos son adecuados para 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 también se basa en la biblioteca de .NET TraceEvent para consumir rastros 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 librerías o componentes, tendrá que localizar los símbolos de esos componentes para completar su análisis.

Consideraciones para elegir una herramienta

La herramienta que se va a elegir depende del escenario de rendimiento que está intentando explorar. En la tabla siguiente se proporciona una comparación de las funcionalidades y rasgos entre las herramientas:

  • Bien compatible significa que la herramienta está diseñada para la tarea prevista y logra resultados sólidos y detallados.
  • Soportado significa que la herramienta puede requerir una configuración o pasos adicionales para alcanzar los resultados deseados. Puede contener un ámbito limitado de acción dentro de la categoría.
  • No compatible significa que la herramienta no está diseñada para este uso.

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 Windows Performance Toolkit (Kit de Herramientas de Rendimiento de Windows) PerfView
Consideraciones generales sobre el uso
Tamaño del archivo de seguimiento Bien compatible Supported Supported
Adquisición de herramientas Bien compatible Bien compatible Bien compatible
Kits de extensibilidad No soportado Bien compatible Bien compatible
Ámbito de las consideraciones de trabajo
Proceso único o proyecto Bien compatible Supported Supported
Varios procesos No soportado Bien compatible Bien compatible
Consideraciones de hardware
Uso de CPU Bien compatible Bien compatible Bien compatible
Uso de GPU Bien compatible Bien compatible No soportado
Uso de memoria Bien compatible Bien compatible Bien compatible
Entrada y salida del dispositivo No soportado Bien compatible Bien compatible
Uso de energía No soportado Bien compatible No soportado
Maneja del sistema No soportado Bien compatible Bien compatible
Consideraciones de compatibilidad con lenguaje de código
Compatibilidad con C/C++ Bien compatible Bien compatible Bien compatible
Compatibilidad con .NET Bien compatible Bien compatible Bien compatible
Compatibilidad con JavaScript Supported Supported Supported
Consideraciones sobre escenarios
Seguimiento de eventos para Windows Supported Bien compatible Bien compatible
Composición No soportado Bien compatible No soportado
HTML/Edge/Internet Explorer/Webview No soportado Bien compatible No soportado
XAML/WinUI Supported Bien compatible Bien compatible
Flujos de audio/vídeo y fallos No soportado Bien compatible No soportado
Temporización de la base de datos Bien compatible No soportado No soportado
Asignación de objetos gestionados y recolección de basura Bien compatible No soportado Bien compatible
Escenarios personalizados No soportado Bien compatible Bien compatible

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 Profiler de rendimiento de Visual Studio en lugar de 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 mayor rapidez para revisar y reaccionar, ya que Visual Studio Performance Profiler se enfoca únicamente en la aplicación y no en 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 los puntos críticos 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 instructivos accesibles en 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 estaría del lado del Perfilador de Rendimiento de Visual Studio, especialmente cuando el código fuente 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 la aplicación en cuestión, este mecanismo de recopilación ofrece un plazo más breve y un ciclo de desarrollo más eficiente.

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 el CPU y la memoria de los componentes de hardware principales, y Visual Studio Performance Profiler y Windows Performance Toolkit además admiten GPU. Las herramientas generalmente están bien adaptadas al análisis introductorio en estos ámbitos.

El uso de cpu se puede analizar con las tres herramientas y normalmente se captura mediante el muestreo. El muestreo captura periódicamente las trazas de pila de la aplicación y proporciona una clasificación basada en 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 de la pila y las pilas asociadas a las asignaciones en la pila.

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 soporte para el lenguaje de programación

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, comenzando con tecnologías derivadas de .NET como C# y ASP.NET y luego expandirse.

PerfView admite aplicaciones .NET y nativas (C y C++). Tiene conocimientos profundos sobre los entornos de ejecución de .NET y sobre la gestión de cargas de trabajo web con ASP.NET.

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 blogs sobre la creación de perfiles personalizados 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. También lo invitamos a enviar comentarios en esta página, o si tiene problemas específicamente relacionados con el rendimiento del desarrollo de Windows, presente una incidencia en el repositorio de rendimiento del desarrollo de Windows Windows Dev Performance.