¿Qué herramienta de rendimiento debo usar? (C#, Visual Basic, C++, F#)
Visual Studio proporciona una variedad de herramientas de generación de perfiles para ayudarle a diagnosticar diferentes tipos de problemas de rendimiento de aplicaciones en función del tipo de aplicación. En este artículo, proporcionamos información para ayudarle a encontrar la herramienta adecuada para su escenario y tipo de aplicación.
Para obtener un enfoque general para optimizar el código mediante las herramientas de generación de perfiles, consulte Caso práctico: Guía para principiantes para optimizar el 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. | • Inicie una investigación de problemas generales de rendimiento. • Investigar el uso elevado de cpu del servidor. • Investigue escenarios de DevOps, como cuando los pedidos no se pasan al sitio web comercial. • Optimizar el uso de CPU. • Investigar la latencia en las llamadas API. |
Gráfico de llama | Vista dentro de la herramienta Uso de CPU que proporciona una visualización alternativa del árbol de llamadas. | Investigación de la latencia en llamadas API |
Ruta de acceso activa | Consulte en la herramienta de Uso de CPU dónde se ha invertido la mayor parte del tiempo del CPU en su aplicación. | Investigación de la latencia en llamadas API |
Uso de memoria | Muestra la memoria de la aplicación para encontrar problemas como pérdidas de memoria. | • Optimizar el uso de memoria • Investigar la congelación de la interfaz de usuario • Investigar la pérdida de memoria sospechosa (código nativo) |
Asignación de objetos en .NET | Muestra dónde se asignan los objetos .NET e información sobre la recolección de elementos no utilizados. | • Optimización del uso de memoria de .NET • Análisis de la recolección de elementos no utilizados |
Instrumentación | Muestra recuentos exactos de llamadas y horas de llamada. | • Necesita una herramienta como Uso de CPU, pero desea recuentos exactos de llamadas y tiempo invertido en funciones en función del tiempo del reloj. • Desea ver el tiempo bloqueado, como el tiempo dedicado a esperar bloqueos. • Nota: Esta herramienta requiere 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. | • Investigar la latencia en las llamadas API • Investigar la aplicación lenta que se ejecuta en un servidor web remoto |
.NET Async | Muestra el uso de async/await en aplicaciones de .NET. | Investigue el problema de rendimiento sospechoso con código asincrónico. |
Contadores de .NET | Informe en directo para contadores de .NET. | • Inicie una investigación de problemas generales de rendimiento. • Desea un seguimiento de 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. | Investigue el rendimiento de las consultas de base de datos que usan ADO.NET o Entity Framework Core. |
Uso de GPU | Muestra el uso de hardware de alto nivel de la aplicación Direct3D. | Compruebe si el rendimiento de la aplicación está enlazado a cpu o enlazado a GPU. |
Cronograma 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 fotogramas. |
IntelliTrace | Herramienta 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 actual de la aplicación. |
¿Qué herramientas se admiten para mi proyecto?
En la tabla siguiente se enumeran las distintas herramientas que Ofrece Visual Studio y los distintos tipos de proyecto con los que puede usarlos:
Herramienta de rendimiento | .NET | C/C++ | Plataforma Universal de Windows (UWP) | ASP.NET/ASP.NET Core |
---|---|---|---|---|
uso de CPU | Sí | Sí | Sí | Sí |
Uso de memoria | Sí | Sí | Sí | Sí |
Asignación de Objetos en .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 .NET Core/5+) | No | No | Sí (solo ASP.NET Core) |
Base de datos | Sí (solo .NET Core/5+) | No | No | Sí (solo ASP.NET Core) |
Uso de GPU | Sí | Sí | Sí | No |
Cronograma de la aplicación | Sí (XAML) | No | Sí | No |
Explorador de Rendimiento | No | No | No | No |
IntelliTrace | .NET solo con Visual Studio Enterprise | No | .NET solo con Visual Studio Enterprise | .NET solo con Visual Studio Enterprise |
¿Qué herramientas se admiten en Linux?
Las siguientes herramientas se admiten con Linux como plataforma de destino, así como con Windows:
- Uso de CPU
- Seguimiento de asignación de objetos de .NET
- .NET Async
- Contadores de .NET
- Visor de eventos
- Base de datos
Aprenda a usar los 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 sobre la optimización del código
- caso práctico: aislar un problema de rendimiento
- mejorar el rendimiento de Visual Studio con la nueva herramienta de instrumentación
- caso práctico: doble rendimiento en menos de 30 minutos