Introducción a los métodos de generación de perfiles
Las Herramientas de generación de perfiles de Microsoft Visual Studio Premium proporcionan cinco métodos para recopilar datos de rendimiento.En este tema se describen los distintos métodos y se sugieren algunos escenarios en los que puede resultar apropiado recopilar datos con un método determinado.
Requisitos
- Visual Studio Ultimate, Visual Studio Premium, Visual Studio Professional
[!NOTA]
Las características de seguridad mejoradas en Windows 8 y Windows Server 2012 requerían cambios significativos en la forma en que el generador de perfiles de Visual Studio recopila datos en las plataformas.Las aplicaciones del almacén de Windows también requieren nuevas técnicas de colección.Vea Generar perfiles de aplicaciones de Windows 8 y Windows Server 2012.
Método |
Descripción |
---|---|
Muestreo |
Recopila datos estadísticos sobre el trabajo realizado por una aplicación. |
Instrumentación |
Recopila información de tiempo detallada sobre cada llamada a una función. |
Simultaneidad |
Recopila información detallada sobre las aplicaciones multiproceso. |
Memoria de .NET |
Recopila información detallada sobre la asignación de memoria de .NET y la recolección de elementos no utilizados. |
Interacción de capas |
Recopila información sobre las llamadas de funciones ADO.NET sincrónicas a una base de datos de SQL Server. La generación de perfiles de interacción de capas se puede obtener utilizando Visual Studio Ultimate, Visual Studio Premium, o Visual Studio Professional.Sin embargo, la generación de perfiles de interacción de capas datos se puede ver sólo en Visual Studio Premium o Visual Studio Ultimate. |
Con algunos de los métodos de generación de perfiles también es posible recopilar datos adicionales, como contadores de rendimiento del software y el hardware.Para obtener más información, vea Recopilar datos de rendimiento adicionales.
Muestreo
El método de generación de perfiles de muestreo recopila datos estadísticos sobre el trabajo realizado por una aplicación durante una generación de perfiles.El método de muestreo consume pocos recursos y afecta poco a la ejecución de los métodos de la aplicación.
El muestreo es el método predeterminado de las Herramientas de generación de perfiles de Microsoft Visual Studio Premium.Es útil para lo siguiente:
Exploraciones iniciales del rendimiento de la aplicación.
Investigación de problemas de rendimiento que implican la utilización del procesador (CPU).
El método de generación de perfiles de muestreo interrumpe el procesador del equipo a intervalos establecidos y recopila la pila de llamadas a función.Los recuentos de muestras exclusivos se incrementan para la función que se está ejecutando, mientras que los recuentos inclusivos se incrementan para todas las funciones de llamada de la pila de llamadas.Los informes de muestreo presentan los totales de estos recuentos para el módulo, la función, la línea de código fuente y la instrucción cuyos perfiles se están generando.
De forma predeterminada, el generador de perfiles establece el intervalo de muestreo en los ciclos de la CPU.Puede cambiar el tipo de intervalo a otro contador de rendimiento de la CPU y establecer el número de eventos de contador del intervalo.También puede recopilar datos de generación de perfiles de interacción de capa (TIP) que proporcionen información sobre las consultas realizadas a una base de datos de SQL Server a través de ADO.NET.
Recopilar estadísticas de rendimiento mediante el muestreo
Introducción a los valores de datos de muestreo en las herramientas de generación de perfiles
Vistas de datos del método de muestreo del generador de perfiles
Instrumentación
El método de generación de perfiles de instrumentación recopila información de tiempo detallada de las llamadas a funciones en una aplicación cuyos perfiles se están generando.La generación de perfiles de instrumentación es útil para:
Investigación de cuellos de botella de entrada o salida, como E/S de disco.
Examen exhaustivo de un módulo determinado o un conjunto de funciones.
El método de instrumentación inserta código en un archivo binario que captura información de tiempo de cada función en el archivo instrumentado y de cada llamada de función realizada por esas funciones.La instrumentación también identifica cuando una función llama al sistema operativo para operaciones como la escritura en un archivo.Los informes de instrumentación emplean cuatro valores para representar el tiempo total invertido en una función o una línea de código fuente:
Inclusivo transcurrido: tiempo total dedicado a la ejecución de la función o la línea de código.
Inclusivo de aplicación: tiempo dedicado a ejecutar la función o la línea de código fuente, excluyendo el tiempo invertido en llamadas al sistema operativo.
Exclusivo transcurrido: tiempo dedicado a ejecutar el código del cuerpo de la función o la línea de código fuente.Se excluye el tiempo dedicado a ejecutar funciones llamadas por la función o la línea de código fuente.
Exclusivo de aplicación: tiempo dedicado a ejecutar el código del cuerpo de la función o la línea de código fuente.Se excluye el tiempo dedicado a ejecutar llamadas al sistema operativo y el tiempo dedicado a ejecutar funciones llamadas por la función o la línea de código fuente.
Con el método de instrumentación también puede recopilar contadores de rendimiento de la CPU y el software.
Introducción a los valores de datos de instrumentación en las herramientas de generación de perfiles
Recolección de datos de control de tiempo detallados utilizando instrumentación
Vistas de datos del método de instrumentación del generador de perfiles
Simultaneidad
La generación de perfiles de simultaneidad recopila información sobre las aplicaciones multiproceso.La generación de perfiles de contención recopila información detallada de la pila de llamadas cada vez que los subprocesos paralelos se ven obligados a esperar para obtener acceso a un recurso compartido.La visualización de simultaneidad también recopila información más general sobre la interacción de su aplicación multiproceso consigo misma, el hardware, el sistema operativo y otros procesos del equipo host.
Los informes de contención de recursos muestran el número total de contenciones y el tiempo total invertido esperando a un recurso por los módulos, funciones, líneas del código fuente e instrucciones en los que se produjo la espera.Los gráficos de escala de tiempo también muestran las contenciones a medida que se produjeron.
El visualizador de simultaneidad muestra información gráfica que se puede utilizar para buscar cuellos de botella de rendimiento, infrautilización de la CPU, contención de subprocesos, migración de subprocesos, retrasos de sincronización, áreas de E/S superpuestas y otra información.Cuando resulta posible, el gráfico vincula a los datos de la pila de llamadas y del código fuente.Solo se pueden recopilar datos de visualización de simultaneidad de la línea de comandos y las aplicaciones Windows.
Recopilar datos de simultaneidad de subprocesos y procesos
Vistas de datos de contención de recursos
Memoria de .NET
El método de generación de perfiles de asignación de memoria de .NET interrumpe el procesador del equipo en cada asignación de un objeto de .NET Framework en una aplicación cuyos perfiles se están generando.Cuando también se recopilan datos de duración de objetos, el generador de perfiles interrumpe el procesador después de cada recolección de elementos no utilizados de .NET Framework.
El generador de perfiles recopila información sobre el tipo, tamaño y número de objetos que se crearon en una asignación o se destruyeron en una recolección de elementos no utilizados.
Cuando se produce un evento de asignación, el generador de perfiles recopila información adicional sobre la pila de llamadas a funciones.Los recuentos de asignación exclusivos se incrementan para la función que se está ejecutando en ese momento, mientras que los recuentos inclusivos se incrementan para todas las funciones de llamada de la pila de llamadas.Los informes de .NET presentan los totales de estos recuentos de los tipos, módulos, funciones, líneas de código fuente e instrucciones cuyos perfiles se están generando.
Cuando se produce una recolección de elementos no utilizados, el generador de perfiles recopila datos sobre los objetos que se destruyeron y sobre los objetos de cada generación de recolección de elementos no utilizados.Al término de la generación de perfiles, el generador de perfiles registra datos sobre los objetos que no se destruyeron de forma explícita.El informe Duración del objeto muestra los totales de cada tipo asignado en la generación de perfiles.
La generación de perfiles de memoria de .NET se puede utilizar en el modo de muestreo o de instrumentación.El modo que seleccione no afecta a los informes Asignación y Duración del objeto, que son exclusivos de la generación de perfiles de memoria de .NET:
Al ejecutar la generación de perfiles de memoria de .NET en modo de muestreo, el generador de perfiles de .NET utiliza los eventos de asignación de memoria como el intervalo y muestra el número de objetos que se asignaron y los bytes totales que se asignaron como los valores inclusivo y exclusivo de los informes.
Al ejecutar la generación de perfiles de memoria de .NET en modo de instrumentación, se recopila información de tiempo detallada junto con los valores de asignación inclusivo y exclusivo.
Recopilar datos referentes a la asignación y duración de memoria de .NET
Vistas de datos de memoria de .NET de las herramientas de generación de perfiles
Interacción de capas
La generación de perfiles de interacción de capas agrega información a un archivo de datos de generación de perfiles sobre llamadas ADO.NET sincrónicas entre una página de ASP.NET u otra aplicación y una base de datos de SQL Server.Los datos incluyen el número y tiempo de llamadas y los tiempos máximo y mínimo.Los datos de interacción de capas se pueden agregar a los datos de generación de perfiles recopilados con los métodos de muestreo, instrumentación, memoria de .NET o simultaneidad.
Datos de interacción de capas recopilados por las Herramientas de generación de perfiles
Recopilar datos de interacción de capas mediante el IDE de Visual Studio
Vistas de interacción de capas
Vea también
Tareas
Cómo: Perfilar un sitio web o una aplicación web mediante el Asistente de rendimiento