Compartir a través de


Configuración de compatibilidad del generador de perfiles

De forma predeterminada, en .NET Framework versión 4, el Common Language Runtime (CLR) carga y utiliza únicamente generadores de perfiles que se construyeron para .NET Framework 4. El CLR no carga ni ejecuta generadores de perfiles compilados para las versiones 2.0, 3.0 o 3.5 de .NET Framework a menos que se especifique explícitamente. (En este tema, el término "generador de perfiles de versión 2.0" hace referencia a los generadores de perfiles compilados para las versiones 2.0, 3.0 y 3.5 de .NET Framework.)

Los usuarios del generador de perfiles deben optar explícitamente al uso de los generadores de perfiles de versión 2.0 utilizando la variable de entorno COMPLUS_ProfAPI_ProfilerCompatibilitySetting. Los generadores de perfiles de versión 2.0 que se utilizan en .NET Framework 4 se comportan como sigue:

  • Las API de generación de perfiles versión 2.0 de .NET Framework continúan funcionando en .NET Framework 4 según la documentación de la versión 2.0.

  • No se garantiza en .NET Framework 4 el comportamiento de CLR ni de API de generación de perfiles versión 2.0 sin documentar. No se garantiza que los generadores de perfiles de versión 2.0 que tienen dependencias de un comportamiento no documentado funcionen en .NET Framework 4. Tenga en cuenta que esta configuración de compatibilidad no proporciona compatibilidad con el comportamiento del CLR 2.0.

COMPLUS_ProfAPI_ProfilerCompatibilitySetting

Antes de establecer la variable de entorno COMPLUS_ProfAPI_ProfilerCompatibilitySetting, debe establecer las variables de entorno COR_PROFILER o COR_ENABLE_PROFILING. Para obtener instrucciones, vea Configurar un entorno de generación de perfiles.

Puede establecer la variable de entorno COMPLUS_ProfAPI_ProfilerCompatibilitySetting en uno de tres valores, como se muestra en la siguiente tabla.

NotaNota

En .NET Framework 3.5 y versiones anteriores, el CLR no proporciona admite la variable COMPLUS_ProfAPI_ProfilerCompatibilitySetting.Siempre intenta cargar un generador de perfiles si se han establecido las variables de entorno COR_PROFILER o COR_ENABLE_PROFILING.

Configuración

Comportamiento de CLR

EnableV2Profiler

Carga y activa los generadores de perfiles versión 2.0.

DisableV2Profiler

Deshabilita los generadores de perfiles versión 2.0, pero no los descarga. Los generadores de perfiles de .NET Framework 4 no se ven afectados. Ésta es la configuración predeterminada.

PreventLoad

No carga ningún generador de perfiles, sin tener en cuenta la versión del .NET Framework para la que se escribió el generador de perfiles.

El comportamiento detallado es como sigue:

  • EnableV2Profiler

    El CLR de .NET Framework 4 carga y utiliza el generador de perfiles disponible sin tener en cuenta la versión de .NET Framework para la que se escribió el generador de perfiles. En una generación de perfiles en proceso en paralelo, si el CLR de .NET Framework versión 2.0 carga un generador de perfiles primero en el proceso, el CLR de .NET Framework 4 no recarga esa versión 2.0 del generador de perfiles.

  • DisableV2Profiler (valor predeterminado)

    El CLR de .NET Framework 4 carga el generador de perfiles y determina su versión llamando al método IUnknown::QueryInterface del perfilador para encontrar la interfaz ICorProfilerCallback3

    • Si el generador de perfiles implementa ICorProfilerCallback3, es un generador de perfiles de .NET Framework version 4 y el CLR continúa utilizándolo.

    • Si el generador no implementa ICorProfilerCallback3, es un generador de perfiles de versión 2.0. En este caso, el CLR libera la interfaz del generador de perfiles y no activa el generador de perfiles. Sin embargo, el CLR no descarga la DLL del generador de perfiles, de modo que pueda mantener la compatibilidad con versiones anteriores del CLR de .NET Framework 2.0, versiones en las que no se descargan las DLL del generador de perfiles. (Observe que los generadores de perfiles .NET Framework 4 se descargan en el momento de apagar o desasociar, de modo que si está revisando el generador de perfiles para .NET Framework 4, tendrá que cambiar este comportamiento).

  • PreventLoad

    CLR de .NET Framework 4 omite el generador de perfiles totalmente. Esta configuración es útil en algunos escenarios de proceso en paralelo. Para obtener más información, vea Generación de perfiles en paralelo y en proceso.

Por ejemplo, para indicar a CLR que cargue el generador de perfiles de .NET Framework 2.0, abra una ventana del símbolo del sistema y escriba:

set COMPLUS_ProfAPI_ProfilerCompatibilitySetting=EnableV2Profiler
NotaNota

Este modificador de compatibilidad solo afecta a la ruta de inicio del generador de perfiles.Para generadores de perfiles asociados, el runtime llama a la función IUnknown::QueryInterface para la interfaz ICorProfilerCallback3.Si el generador de perfiles no implementa esta interfaz (algo que es verdad en la versión 2.0 de generadores de perfiles), el runtime no carga el generador de perfiles y registra una entrada de error en la carga del generador de perfiles en el registro de eventos.

Vea también

Conceptos

Información general sobre la generación de perfiles

Otros recursos

Generar perfiles en .NET Framework 4

Referencia de la API no administrada