Delen via


Methode ICorProfilerCallback::JITCachedFunctionSearchStarted

Hiermee wordt aan de profiler aangegeven dat er een zoekopdracht is gestart naar een functie die eerder is gecompileerd met behulp van de Native Image Generator (NGen.exe).

Syntaxis

HRESULT JITCachedFunctionSearchStarted(  
    [in]  FunctionID functionId,  
    [out] BOOL *pbUseCachedFunction);  

Parameters

functionId
[in] De id van de functie waarvoor de zoekopdracht wordt uitgevoerd.

pbUseCachedFunction
[uit] true als de uitvoeringsengine de in de cache opgeslagen versie van een functie moet gebruiken (indien beschikbaar); anders false. Als de waarde is false, compileert de JIT-uitvoeringsengine de functie in plaats van een versie te gebruiken die niet door JIT is gecompileerd.

Opmerkingen

In .NET Framework versie 2.0 worden de callbacks van de JITCachedFunctionSearchStartedmethode en ICorProfilerCallback::JITCachedFunctionSearchFinished niet uitgevoerd voor alle functies in reguliere NGen-installatiekopieën. Alleen NGen-afbeeldingen die zijn geoptimaliseerd voor een profiel genereren callbacks voor alle functies in de afbeelding. Vanwege de extra overhead moet een profiler echter alleen voor profilers geoptimaliseerde NGen-afbeeldingen aanvragen als deze van plan is deze callbacks te gebruiken om af te dwingen dat een functie Just-In-Time (JIT) wordt gecompileerd. Anders moet de profiler een luie strategie gebruiken voor het verzamelen van functie-informatie.

Profilers moeten gevallen ondersteunen waarin meerdere threads van een geprofileerde toepassing tegelijkertijd dezelfde methode aanroepen. Thread A roept JITCachedFunctionSearchStarted bijvoorbeeld aan en de profiler reageert door pbUseCachedFunctionin te stellen op FALSE om JIT-compilatie af te dwingen. Thread A roept vervolgens ICorProfilerCallback::JITCompilationStarted en ICorProfilerCallback::JITCompilationFinished aan.

Thread B roept JITCachedFunctionSearchStarted nu voor dezelfde functie aan. Hoewel de profiler de intentie heeft JIT-compileren van de functie, ontvangt de profiler de tweede callback omdat thread B de callback verzendt voordat de profiler heeft gereageerd op de aanroep van thread A naar JITCachedFunctionSearchStarted. De volgorde waarin de threads aanroepen doen, is afhankelijk van hoe de threads worden gepland.

Wanneer de profiler dubbele callbacks ontvangt, moet de waarde waarnaar wordt verwezen door pbUseCachedFunction instellen op dezelfde waarde voor alle dubbele callbacks. Dat wil dat wanneer JITCachedFunctionSearchStarted meerdere keren wordt aangeroepen met dezelfde functionId waarde, de profiler elke keer hetzelfde moet reageren.

Vereisten

Platforms: Zie Systeemvereisten.

Header: CorProf.idl, CorProf.h

Bibliotheek: CorGuids.lib

.NET Framework versies: beschikbaar sinds 2.0

Zie ook