Compartir a través de


Vea primero las herramientas de generación de perfiles (C#, Visual Basic, C++, F#)

Las herramientas de medición del rendimiento de las aplicaciones son esenciales para los desarrolladores que desean optimizar su código y mejorar el rendimiento de las aplicaciones. Visual Studio ofrece una variedad de herramientas de generación de perfiles y diagnóstico que pueden ayudarle a diagnosticar el uso de memoria y CPU y otros problemas de nivel de aplicación. Con estas herramientas, puede acumular datos de rendimiento mientras ejecuta la aplicación. Un generador de perfiles puede ayudarle a tomar decisiones fundamentadas rápidamente proporcionando una representación visual de los tiempos de ejecución y el uso de CPU para la aplicación. En este artículo, se ofrece un vistazo rápido a las herramientas de generación de perfiles más comunes.

Para obtener ayuda para elegir la herramienta correcta o para ver la compatibilidad de la herramienta de generación de perfiles para distintos tipos de aplicaciones, consulte ¿Qué herramienta debo usar? Para ver un tutorial que muestra 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.

Para obtener la mejor experiencia con esta documentación, elija el lenguaje de desarrollo o el entorno de ejecución preferidos en la lista de la parte superior del artículo.

Medición del rendimiento en las compilaciones de versión

Las herramientas en el Perfilador de rendimiento están diseñadas para proporcionar análisis de compilaciones de la versión . En el Perfilador de Rendimiento, puedes recopilar información de diagnóstico mientras se ejecuta la aplicación y luego examinar la información recopilada después de que la aplicación se detenga (un análisis post mortem).

Para abrir el Generador de perfiles de rendimiento, seleccione Depurar>Generador de perfiles de rendimiento (o Alt + F2).

Captura de pantalla del Perfilador de Rendimiento.

Recorte de pantalla del generador de perfiles de rendimiento. del generador de perfiles de rendimiento de

Para más información sobre el uso de la herramienta Uso de CPU o Uso de memoria en el Generador de perfiles de rendimiento frente a las herramientas integradas en el depurador, consulte Ejecución de herramientas de generación de perfiles en compilaciones de versión o depuración.

Entre las herramientas disponibles en el Generador de perfiles de rendimiento se incluyen:

Para ver la compatibilidad de la herramienta de generación de perfiles para distintos tipos de aplicaciones, consulte ¿Qué herramienta debo usar?.

En algunos escenarios, la ventana permite seleccionar varias herramientas de generación de perfiles. Herramientas como uso de CPU pueden proporcionar datos complementarios que puede usar para ayudar en el análisis. También puede usar el generador de perfiles de la línea de comandos para habilitar escenarios con varias herramientas de generación de perfiles.

Medición del rendimiento durante la depuración

Las herramientas de generación de perfiles a las que puede acceder durante una sesión de depuración están disponibles en la ventana Herramientas de diagnóstico. La ventana Herramientas de diagnóstico aparece automáticamente a menos que la haya desactivado. Para abrir la ventana, haga clic en Depurar / Windows / Mostrar herramientas de diagnóstico (o presione Ctrl + Alt + F2). Con la ventana abierta, puede seleccionar herramientas para las que desea recopilar datos.

Ventana de herramientas de diagnóstico

Durante la depuración, puede usar la ventana Herramientas de diagnóstico para analizar la CPU,el uso de memoria y los contadores de .NET, y puede ver los eventos que muestran información relacionada con el rendimiento.

Ventana de herramientas de diagnóstico

Durante la depuración, puede usar la ventana Herramientas de diagnóstico para analizar la CPU y el uso de memoria, y puede ver los eventos que muestran información relacionada con el rendimiento.

Vista de resumen de herramientas de diagnóstico

Vista de resumen de herramientas de diagnóstico

La ventana Herramientas de diagnóstico es una manera habitual de generar perfiles de aplicaciones, pero en el caso de las compilaciones de versión, también puede hacer un análisis posterior de la aplicación. Para obtener más información sobre los distintos enfoques, consulte Ejecución de herramientas de generación de perfiles en compilaciones de versión o depuración. Para ver la compatibilidad de la herramienta de generación de perfiles para distintos tipos de aplicaciones, consulte ¿Qué herramienta debo usar?.

Las herramientas disponibles en la ventana Herramientas de diagnóstico o durante una sesión de depuración incluyen:

Sugerencia

Use la opción de reinicio para saltarse la página de inicio y realizar la ejecución de forma automática con su configuración anterior presionando Alt+F2 o haciendo clic en Depurar > Generador de perfiles de rendimiento.

Nota

Para ejecutar las herramientas de generación de perfiles con el depurador se requiere Windows 8 y versiones posteriores (ventana Herramientas de diagnóstico).

Análisis del uso de CPU

La herramienta Uso de CPU es un buen lugar para empezar a analizar el rendimiento de la aplicación. Le indicará más sobre los recursos de CPU que consume la aplicación. Puede usar la herramienta Uso de CPU integrada en el depurador o la herramienta Uso de CPU de análisis final.

Al usar la herramienta de Uso de la CPU integrada con el depurador, abra la ventana Herramientas de diagnóstico (si está cerrada, elija Depurar / Windows / Mostrar herramientas de diagnóstico). Durante la depuración, abra la vista Resumen y seleccione Registrar perfil CPU.

Habilitar el uso de CPU en las herramientas de diagnóstico

Habilitar el uso de CPU en Herramientas de diagnóstico

Una manera de usar la herramienta es establecer dos puntos de interrupción en el código, uno al principio y otro al final de la función o la región de código que desea analizar. Examine los datos de generación de perfiles cuando se haya detenido en el segundo punto de interrupción.

La vista Uso de CPU muestra una lista de funciones ordenadas por la ejecución más larga, con la función más larga que se está ejecutando en la parte superior, en Funciones principales. La sección Ruta de acceso activa se muestra la pila de llamadas para las funciones que usan más potencia de la CPU. Estas listas pueden guiarle a las funciones en las que se producen cuellos de botella en el rendimiento.

Herramientas de diagnóstico vista Uso de CPU Vista Uso de CPU de Herramientas de diagnóstico

La vista Uso de la CPU muestra una lista de funciones ordenadas por tiempo de ejecución, con la función que tiene la ejecución más larga en la parte superior. Esto puede ayudarle a encontrar las funciones en las que se producen cuellos de botella en el rendimiento.

Vista Uso de CPU de Herramientas de diagnóstico

Haga clic en una función que le interese y verá una vista más detallada del Árbol de llamadas, con la función seleccionada resaltada. En la tabla se muestran columnas con datos como el tiempo empleado en la función, incluidas las funciones llamadas(CPU total) y una segunda columna que muestra el tiempo empleado en una función, excepto las funciones llamadas(Propio CPU). Estos datos pueden ayudarle a evaluar si la función en sí es un cuello de botella de rendimiento.

Sugerencia

El generador de perfiles de Visual Studio admite la recopilación y visualización de rastros. El generador de perfiles también puede ver los seguimientos recopilados anteriormente por otras herramientas, como dotnet-trace. Dotnet-trace genera resultados de muestreo, no un seguimiento instrumentado. Para más información, vea dotnet-trace.

Vista de

Si haces clic en una función que te interese, obtendrás una vista de "mariposa" de tres paneles más detallada, con la función seleccionada en el centro de la ventana, la función de llamada a la izquierda y las funciones llamadas a la derecha. En la sección Cuerpo de la función se muestra la cantidad total de tiempo (y el porcentaje de tiempo) empleado en el cuerpo de la función, excluido el tiempo invertido en las funciones de llamada y las funciones llamadas. Estos datos pueden ayudarle a evaluar si la función en sí es un cuello de botella de rendimiento.

Vista de

Análisis del uso de memoria

La ventana Herramientas de diagnóstico también permite evaluar el uso de memoria en tu aplicación mediante la herramienta Uso de memoria. Por ejemplo, puede ver el número y el tamaño de los objetos en el montón. Puede usar la herramienta Uso de memoria integrada en el depurador o la herramienta Uso de memoria de análisis final del Generador de perfiles de rendimiento.

Los desarrolladores de .NET pueden elegir entre la herramienta de asignación de objetos de .NET o la herramienta de uso de memoria .

  • La herramienta .NET Object Allocation te ayuda a identificar patrones de asignación y anomalías en tu código .NET, y facilita la identificación de problemas comunes con la recolección de basura. Esta herramienta solo se ejecuta a modo de análisis post mortem. Puede ejecutar esta herramienta en máquinas locales o remotas.
  • La herramienta Uso de memoria es útil para identificar fugas de memoria, que no suelen ser habituales en aplicaciones .NET. Si necesita usar características del depurador mientras comprueba la memoria, como ejecutar paso a paso el código, se recomienda la herramienta Uso de memoria integrada en el depurador.

Para analizar el uso de memoria con la herramienta Uso de memoria, se debe tomar al menos una instantánea de memoria. A menudo, la mejor manera de analizar la memoria es tomar dos instantáneas; el primero justo antes de un problema de memoria sospechoso y la segunda instantánea justo después de que se produzca un problema de memoria sospechoso. A continuación, puede ver una diferencia de las dos instantáneas y ver exactamente lo que cambió. En la ilustración siguiente se muestra cómo tomar una instantánea con la herramienta integrada en el depurador.

Toma de una instantánea en Herramientas de diagnóstico

Toma de una instantánea en Herramientas de diagnóstico

Al seleccionar uno de los vínculos de flecha, se le asigna una vista diferencial del montón (una flecha hacia arriba roja Aumento del uso de memoria muestra un recuento de objetos creciente (izquierda) o un tamaño de montón creciente (derecha)). Si hace clic en el vínculo derecho, obtendrá una vista diferencial del montón ordenada por los objetos que aumentaron más en el tamaño del montón. Esto puede ayudarle a identificar problemas de memoria. Por ejemplo, en la ilustración siguiente, los bytes usados por objetos ClassHandlersStore aumentaron en 3.492 bytes en la segunda captura.

Vista de diferencias del montón en Herramientas de diagnóstico

Vista de diferencias del montón en Herramientas de diagnóstico

En cambio, si hace clic en el vínculo de la izquierda en la vista Uso de memoria, la vista del montón se organiza por número de objetos y se muestran los objetos de un tipo determinado que más han aumentado en número en la parte superior (ordenados por la columna Dif. de recuento).

Instrumentación

La herramienta de instrumentación es similar a la herramienta Uso de CPU, excepto que proporciona recuentos de llamadas exactos y tiempo de reloj de pared en lugar de utilización de la CPU. El método de instrumentación requiere más recursos adicionales que la herramienta de Uso de CPU. Esta herramienta está disponible en el Generador de perfiles de rendimiento. Para abrir el Generador de perfiles de rendimiento, seleccione Depurar>Generador de perfiles de rendimiento (o Alt + F2). Para más información, consulta: Instrumentación.

Captura de pantalla que muestra los datos de instrumentación de .NET.

Examinar E/S de archivos

La herramienta E/S de archivos le ayuda a comprender cómo puede optimizar las operaciones de E/S de archivos para mejorar el rendimiento de las aplicaciones. Si está intentando investigar y diagnosticar tiempos de carga lentos, la nueva herramienta de E/S de archivos puede ayudarle a comprender cómo afectan las operaciones de E/S al tiempo dedicado. Esta herramienta está disponible en el Generador de perfiles de rendimiento. Abra el Generador de perfiles de rendimiento seleccionando Depurar > Generador de perfiles de rendimiento (o Alt + F2).

La herramienta muestra las operaciones de lectura y escritura de archivos en una vista de lista con pestañas.

Recorte de pantalla en la que se muestra la herramienta de E/S de archivos detenida.

Examen del rendimiento mediante PerfTips

A menudo, la manera más fácil de ver la información de rendimiento es usar PerfTips. Con PerfTips, puede ver información de rendimiento al interactuar con el código. Puede comprobar información como la duración del evento (medida desde el momento en que el depurador se ha pausado por última vez o cuando se inició la aplicación). Por ejemplo, si recorre el código (F10, F11), PerfTips muestra la duración del tiempo de ejecución de la aplicación de la operación de paso anterior al paso actual.

Recorte de pantalla de información sobre rendimiento.

Recorte de pantalla de información sobre rendimiento.

Puede usar PerfTips para examinar cuánto tiempo tarda un bloque de código en ejecutarse o cuánto tiempo tarda una sola función en completarse.

PerfTips muestra los mismos eventos que también se muestran en la vista Eventos de las Herramientas de diagnóstico. En la vista Eventos se pueden ver eventos distintos que se producen durante la depuración, como la configuración de un punto de interrupción o una operación de procesamiento de código paso a paso.

Recorte de pantalla de la vista Eventos de herramientas de diagnóstico.

Recorte de pantalla de la vista Eventos de herramientas de diagnóstico.

Nota

Si tiene Visual Studio Enterprise, también puede ver Eventos de IntelliTrace en esta pestaña.

Análisis de código asincrónico (.NET)

La herramienta asincrónica de .NET permite analizar el rendimiento del código asincrónico en la aplicación. Esta herramienta está disponible en el Generador de perfiles de rendimiento. Para abrir el Performance Profiler, elija Debug> Performance Profiler (o Alt + F2).

La herramienta muestra cada operación asincrónica en una vista de lista. Puede ver información como la hora de inicio, la hora de finalización y el tiempo total de una operación asincrónica.

Herramienta .NET Async detenida

Esta herramienta es compatible con aplicaciones de .NET Core y .NET 5+.

Análisis de código asincrónico (.NET)

La herramienta asincrónica de .NET permite analizar el rendimiento del código asincrónico en la aplicación. Esta herramienta está disponible en el Generador de perfiles de rendimiento. Para abrir el Generador de perfiles de rendimiento, seleccione Depurar>Generador de perfiles de rendimiento (o Alt + F2).

La herramienta muestra cada operación asincrónica en una vista de lista. Puede ver información como la hora de inicio, la hora de finalización y el tiempo total de una operación asincrónica.

Herramienta .NET Async detenida

Esta herramienta es compatible con aplicaciones de .NET Core y .NET 5+.

Análisis del rendimiento de la base de datos (.NET)

En el caso de las aplicaciones de .NET Core y .NET 5+ que usan ADO.NET o Entity Framework Core, la herramienta Database permite registrar las consultas de base de datos que realiza la aplicación durante una sesión de diagnóstico. A continuación, puede analizar información sobre consultas individuales para encontrar lugares en los que se puede mejorar el rendimiento de la aplicación. Esta herramienta está disponible en el Generador de perfiles de rendimiento. Abra el perfilador de rendimiento eligiendo Depurar>Perfilador de rendimiento (o Alt + F2).

La herramienta muestra cada consulta en una vista de lista. Puede ver información como la hora de inicio y la duración de la consulta.

Asignación

Visualización de contadores de .NET (.NET)

A partir de la versión 16.7 de Visual Studio 2019, puede usar la herramienta contadores de .NET en Visual Studio para visualizar los contadores de rendimiento. Puede visualizar los contadores creados mediante los contadores de dotnet. Los contadores de dotnet admiten muchos contadores, como el uso de CPU y el tamaño del montón del recolector de elementos no utilizados.

La herramienta muestra valores dinámicos para cada contador en una vista de lista.

Herramienta .NET Counters recopilando datos.

Esta herramienta es compatible con aplicaciones de .NET Core y .NET 5+.

Examen de eventos de aplicación

El visor de eventos de genérico permite ver la actividad de la aplicación a través de una lista de eventos, como la carga del módulo, el inicio del subproceso y las configuraciones del sistema, para ayudar a diagnosticar mejor cómo funciona la aplicación directamente dentro del generador de perfiles de Visual Studio. Esta herramienta está disponible en el Generador de perfiles de rendimiento. Abra el Perfilador de Rendimiento eligiendo Depurar>Perfilador de Rendimiento (o Alt + F2).

La herramienta muestra cada evento en una vista de lista. Las columnas proporcionan información sobre cada evento, como el nombre del evento, la marca de tiempo y el identificador de proceso.

Seguimiento del visor de eventos

Visualización de eventos personalizados en los gráficos de escala de tiempo

Puede crear eventos personalizados mediante programación que aparecen como iconos en los gráficos de escala de tiempo, como los gráficos de escala de tiempo de uso de CPU y uso de memoria. Para obtener más información, consulte Agregar marcas de usuario a la línea de tiempo.

Análisis del consumo de recursos (XAML)

En aplicaciones XAML, como aplicaciones wpF de escritorio de Windows y aplicaciones para UWP, puedes analizar el consumo de recursos mediante la herramienta Escala de tiempo de la aplicación. Por ejemplo, puede analizar el tiempo dedicado por la aplicación a preparar fotogramas de interfaz de usuario (diseño y representación), atender las solicitudes de red y disco, y en escenarios como el inicio de la aplicación, la carga de página y el cambio de tamaño de la ventana. Para usar la herramienta, seleccione Escala de tiempo de la aplicación en el Generador de perfiles de rendimiento y, después, elija Iniciar. En la aplicación, recorra el escenario en el que sospecha que se produce un problema de consumo de recursos y, después, seleccione Detener recolección para generar el informe.

Los valores de framerate bajos en el gráfico Rendimiento visual podrían corresponderse con los problemas visuales que ve cuando se ejecuta la aplicación. De forma similar, los números elevados en el gráfico Uso del subproceso de UI podrían corresponderse con problemas en la capacidad de respuesta de la interfaz de usuario. En el informe, puede seleccionar un período de tiempo en el que sospeche que hay un problema de rendimiento y luego examinar las actividades detalladas del hilo de UI en la vista de detalles de la línea de tiempo (panel inferior).

Herramienta de generación de perfiles de Escala de tiempo de la aplicación

Herramienta de generación de perfiles de Escala de tiempo de la aplicación

En la vista de detalles de la cronología, puede encontrar información como el tipo de actividad o el elemento de la interfaz de usuario involucrado, junto con la duración de la actividad. Por ejemplo, en la ilustración, un evento Layout para un control Grid toma 57,53 ms.

Para obtener más información, vea Application Timeline (Escala de tiempo de la aplicación).

Examinar el rendimiento de la interfaz de usuario y los eventos de accesibilidad (UWP)

En las aplicaciones de UWP, puede habilitar Análisis de UI en la ventana Herramientas de diagnóstico. La herramienta busca problemas comunes de rendimiento o de accesibilidad y los muestra en la vista Eventos durante la depuración. Las descripciones de eventos proporcionan información que puede ayudar a resolver problemas.

Ver eventos de análisis de IU en las herramientas de diagnóstico

Ver eventos de análisis de IU en las herramientas de diagnóstico

Análisis del uso de GPU (Direct3D)

En las aplicaciones de Direct3D (los componentes de Direct3D deben estar en C++), puede examinar la actividad en la GPU y analizar los problemas de rendimiento. Para obtener más información, consulte Uso de GPU. Para usar la herramienta, seleccione Uso de GPU en el Generador de perfiles de rendimiento y, después, elija Iniciar. En la aplicación, recorra el escenario del que le interesa generar un perfil y, después, seleccione Detener recolección para generar un informe.

Al seleccionar un período de tiempo en los gráficos y elegir ver detalles, aparece una vista detallada en el panel inferior. En la vista detallada, puede examinar la cantidad de actividad que se está produciendo en cada CPU y GPU. Seleccione los eventos en el panel inferior para que aparezcan elementos emergentes en la escala de tiempo. Por ejemplo, seleccione el evento Presente para ver elementos emergentes de llamada Presente. (Las líneas VSync verticales de color gris claro se pueden usar como referencia para entender si ciertas llamadas Present fallaron al sincronizarse con VSync. Debe haber una llamada Present entre cada dos VSyncs para que la aplicación mantenga constantemente 60 FPS).

Herramienta de generación de perfiles de uso de GPU

Herramienta de generación de perfiles de uso de GPU diagnóstico de uso de GPU

También puede utilizar los gráficos para determinar si hay limitaciones de rendimiento de la CPU o de la GPU.

Análisis del rendimiento (herramientas heredadas)

En Visual Studio 2019, el Explorador de rendimiento heredado y las herramientas de generación de perfiles relacionadas, como el Asistente de rendimiento, se han incorporado al Generador de perfiles de rendimiento, que se puede abrir mediante Depurar>Generador de perfiles de rendimiento. En el Generador de perfiles de rendimiento, las herramientas de diagnóstico disponibles dependen del destino elegido y del proyecto de inicio abierto actual. La herramienta Uso de CPU proporciona la capacidad de muestreo anteriormente admitida en el Asistente de rendimiento. La herramienta de Instrumentación proporciona la funcionalidad de perfilado instrumentado (para recuentos y duraciones precisos de llamadas) que estaba disponible en el Asistente de Rendimiento. Las herramientas de memoria adicionales también aparecen en el Generador de perfiles de rendimiento.

Herramienta Explorador de rendimiento