Compartir a través de


Funciones de la API de generación de perfiles

Actualización: noviembre 2007

La API de generación de perfiles proporciona información sobre diversos eventos y acciones que se producen en Common Language Runtime (CLR). Puede utilizar esta información para supervisar los mecanismos internos de los procesos y para analizar el rendimiento de la aplicación .NET Framework.

Características compatibles

La API de generación de perfiles recupera información sobre los siguientes eventos y acciones que se producen en el CLR:

  • Eventos de inicio y cierre de CLR.

  • Eventos de creación y cierre de dominio de aplicación.

  • Eventos de carga y descarga de ensamblados.

  • Eventos de carga y descarga de módulos.

  • Eventos de creación y destrucción de vtable COM.

  • Eventos de compilación Just-In-Time (JIT) y eliminación de código nativo.

  • Eventos de carga y descarga de clase.

  • Eventos de creación y destrucción de subprocesos.

  • Eventos de entrada y salida de función.

  • Excepciones.

  • Transiciones entre la ejecución de código administrado y no administrado.

  • Transiciones entre diferentes contextos de tiempo de ejecución.

  • Información sobre suspensiones de tiempo de ejecución.

  • Información sobre el montón de memoria de tiempo de ejecución y la actividad de recolección de elementos no utilizados.

Se puede llamar a la API de generación de perfiles desde cualquier lenguaje compatible con COM (no administrado).

La API es eficaz con respecto a CPU y al consumo de memoria. La generación de perfiles no implica cambios en la aplicación para la que se genera el perfil que sean lo bastante significativos como para producir resultados engañosos.

La API de generación de perfiles es útil tanto para los generadores de perfiles de muestreo como no de muestreo. Un generador de perfiles de muestreo inspecciona el perfil a intervalos regulares del reloj de, digamos, 5 milisegundos. Un generador de perfiles de no muestreo se informa sincrónicamente de un evento con el subproceso que produce el evento.

Funcionalidad incompatible

La API de generación de perfiles no admite la funcionalidad siguiente:

  • Código no administrado La API de generación de perfiles de CLR solamente funciona para código administrado. Debe utilizar mecanismos convencionales de Win32 para generar perfiles de código no administrado. Sin embargo, el generador de perfiles de CLR incluye eventos de transición para determinar los límites entre el código administrado y no administrado.

  • Aplicaciones que se modifican a sí mismas. La API de generación de perfiles no es compatible con aplicaciones que modifiquen su propio código para propósitos tales como la programación orientada a aspectos.

  • Comprobación de límites. La API de generación de perfiles no proporciona la información necesaria para comprobar límites. CLR proporciona compatibilidad intrínseca para la comprobación de límites de todo el código administrado.

  • Generación remota de perfiles. Las interfaces del generador de perfiles de código de CLR no admiten la generación remota de perfiles por las razones siguientes:

    • La generación remota de perfiles prolonga el tiempo de ejecución. Cuando utilice las interfaces del generador de perfiles, debe minimizar el tiempo de ejecución de modo que los resultados de la generación de perfiles no se vean excesivamente afectados. Esto es especialmente cierto cuando se supervisa el rendimiento de la ejecución. Sin embargo, la generación remota de perfiles no es una limitación cuando las interfaces del generador de perfiles se utilizan supervisar la utilización de memoria o para obtener información en tiempo de ejecución sobre marcos de pila, objetos, etc.

    • El generador de perfiles del código de CLR debe registrar una o más interfaces de devolución de llamada con el motor en tiempo de ejecución en el equipo local en el que se está ejecutando la aplicación para la que se genera el perfil. Esto limita la capacidad para crear un generador de perfiles de código remoto.

  • Generación de perfiles en entornos de producción con requisitos de alta disponibilidad. La API de generación de perfiles fue creada para admitir diagnósticos en tiempo de desarrollo. No se ha sometido a las rigurosas pruebas exigidas para la compatibilidad de entornos de producción.

Vea también

Otros recursos

Generación de perfiles en .NET Framework

Información general sobre la generación de perfiles