¿Qué herramienta de rendimiento debo usar? (C#, Visual Basic, C++, F#)
Visual Studio proporciona una variedad de herramientas de generación de perfiles que le ayudarán a diagnosticar diferentes tipos de problemas de rendimiento de la aplicación según el tipo de aplicación. En este artículo, proporcionamos información para ayudarle a empezar a encontrar la herramienta adecuada para su escenario y tipo de aplicación.
Para obtener un enfoque general de la optimización del código mediante las herramientas de generación de perfiles, consulte Caso práctico: Guía para principiantes sobre la optimización del código.
¿Qué herramienta debo usar?
En la tabla siguiente se enumeran las distintas herramientas que ofrece Visual Studio y se proporcionan escenarios comunes para elegir la herramienta.
Herramienta de rendimiento | Descripción | ¿Cuándo usar la herramienta? |
---|---|---|
Uso de CPU | Muestra dónde pasa tiempo la CPU. | • Comienzo de una investigación para los problemas de rendimiento generales. • Investigue el elevado uso de CPU del servidor. • Investigue escenarios de DevOps, como cuando los pedidos no pasan al sitio web comercial. • Optimice el uso de la CPU. • Investigue la latencia en las llamadas API. |
Grafo de llamas | Vista dentro de la herramienta Uso de CPU que proporciona una visualización alternativa del árbol de llamadas. | Investigue la latencia en las llamadas API |
Ruta de acceso activa | Vista dentro de la herramienta Uso de la CPU que muestra dónde se gastó la mayor parte del tiempo de la CPU en su aplicación. | Investigue la latencia en las llamadas API |
Uso de memoria | Muestra la memoria de la aplicación para encontrar problemas como fugas de memoria. | • Optimice el uso de memoria • Investigue la inmovilización de la interfaz de usuario • Investigue la presunta fuga de memoria (código nativo) |
Asignación de objetos .NET | Muestra dónde se asignan los objetos .NET e información sobre la recolección de elementos no utilizados. | • Optimice el uso de memoria de .NET • Analice la recolección de elementos no utilizados |
Instrumentación | Muestra los recuentos exactos de llamadas y los tiempos de llamada. | • Necesita una herramienta como Uso de CPU, pero desea recuentos exactos de llamadas y tiempo invertido en funciones según el tiempo del reloj. • Desea ver el tiempo bloqueado, como el tiempo dedicado a esperar bloqueos. • Nota: Esta herramienta requiere una sobrecarga adicional. |
E/S de archivos | Muestra las operaciones de E/S de archivos y cuánto tiempo tardan y cuántos datos procesan. | Investigación de la inmovilización de la interfaz de usuario |
Sugerencias de rendimiento | Muestra una medición rápida de la información de rendimiento al interactuar con el código. | Durante la depuración, quiere ver el tiempo transcurrido entre la operación de paso anterior (o punto de interrupción) en el paso o punto de interrupción actual. |
Visor de eventos | Muestra solicitudes HTTP, mensajes de registro y excepciones. | • Investigue la latencia en las llamadas API • Investigue la aplicación lenta que se ejecuta en un servidor web remoto |
.NET Async | Muestra el uso de async/await en aplicaciones .NET. | Investigue el presunto problema de rendimiento con código asincrónico. |
Contadores de .NET | Informe activo para contadores de .NET. | • Inicie una investigación de problemas generales de rendimiento. • Desea un seguimiento de las métricas basadas en contadores de .NET, como excepciones por segundo, recolección de elementos no utilizados y uso de CPU. |
Base de datos | Muestra el rendimiento de las consultas de base de datos. | Investiga el rendimiento para las consultas de base de datos que usen ADO.NET o Entity Framework Core. |
Uso de GPU | Muestra el uso de hardware de alto nivel de la aplicación Direct3D. | Compruebe ver si el rendimiento de la aplicación está enlazado a CPU o enlazado a GPU. |
Escala de tiempo de la aplicación | Muestra el rendimiento de la interfaz de usuario para las aplicaciones XAML. | Investigue el rendimiento de la interfaz de usuario en aplicaciones XAML, como el tiempo dedicado a representar marcos. |
IntelliTrace | Herramienta del depurador que permite registrar eventos y examinar el estado de la aplicación en varios puntos de ejecución. | Quiere que una herramienta examine el estado de la aplicación en varios puntos, no solo el estado de la aplicación actual. |
¿Qué herramientas se admiten para mi proyecto?
En esta tabla se muestra una lista de las distintas herramientas que ofrece Visual Studio y los tipos de proyecto con los que las puede usar:
Herramienta de rendimiento | .NET | C/C++ | UWP | ASP.NET/ASP.NET Core |
---|---|---|---|---|
Uso de CPU | sí | sí | sí | sí |
Uso de memoria | sí | sí | sí | sí |
Asignación de objetos .NET | sí | no | sí | sí |
Instrumentación | sí | sí | sí | sí |
E/S de archivos | sí | sí | sí | sí |
Sugerencias de rendimiento | sí | sí | sí | sí |
Visor de eventos | sí | sí | sí | sí |
.NET Async | sí | no | sí | sí |
Contadores de .NET | Sí (solo para .NET Core 5) | no | No | sí (solo ASP.NET Core) |
Base de datos | Sí (solo para .NET Core 5) | no | No | sí (solo ASP.NET Core) |
Uso de GPU | sí | sí | sí | no |
Escala de tiempo de la aplicación | sí (XAML) | no | sí | no |
Explorador de rendimiento | No | no | no | No |
IntelliTrace | Solo .NET con Visual Studio Enterprise | no | Solo .NET con Visual Studio Enterprise | Solo .NET con Visual Studio Enterprise |
¿Qué herramientas se admiten en Linux?
Las siguientes herramientas son compatibles con Linux como plataforma de destino, así como Con Windows:
- Uso de CPU
- Seguimiento de la asignación de objetos .NET
- .NET Async
- Contadores de .NET
- Visor de eventos
- Base de datos
Aprender a usar generadores de perfiles
Los siguientes artículos y entradas de blog proporcionan más información para ayudarle a aprender a usar las herramientas de rendimiento de Visual Studio de forma eficaz.
- Caso práctico: Guía para principiantes para optimizar el código
- Aislar un problema de rendimiento
- Mejora del rendimiento de Visual Studio con la nueva herramienta de instrumentación
- Caso práctico: el doble de rendimiento en menos de 30 minutos