Udostępnij za pośrednictwem


ICorProfilerCallback::JITCachedFunctionSearchStarted — Metoda

Powiadamia profilera, że rozpoczęto wyszukiwanie funkcji, która została skompilowana wcześniej przy użyciu generatora obrazów natywnych (NGen.exe).

Składnia

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

Parametry

functionId
[in] Identyfikator funkcji, dla której jest wykonywane wyszukiwanie.

pbUseCachedFunction
[out] true jeśli aparat wykonywania powinien używać buforowanej wersji funkcji (jeśli jest dostępna); w przeciwnym razie false. Jeśli wartość to false, aparat wykonywania JIT kompiluje funkcję zamiast używać wersji, która nie jest kompilowana w trybie JIT.

Uwagi

W .NET Framework wersji 2.0 JITCachedFunctionSearchStarted wywołania zwrotne metod i ICorProfilerCallback::JITCachedFunctionSearchFinished metody nie zostaną wykonane dla wszystkich funkcji w zwykłych obrazach NGen. Tylko obrazy NGen zoptymalizowane pod kątem profilu będą generować wywołania zwrotne dla wszystkich funkcji na obrazie. Jednak ze względu na dodatkowe obciążenie profiler powinien zażądać obrazów NGen zoptymalizowanych pod kątem profilera tylko wtedy, gdy zamierza używać tych wywołań zwrotnych, aby wymusić skompilowanie funkcji just in time (JIT). W przeciwnym razie profiler powinien używać strategii leniwej do zbierania informacji o funkcjach.

Profileery muszą obsługiwać przypadki, w których wiele wątków profilowanej aplikacji wywołuje jednocześnie tę samą metodę. Na przykład wątek A wywołania JITCachedFunctionSearchStarted i profiler odpowiada przez ustawienie pbUseCachedFunctionwartości FALSE w celu wymuszenia kompilacji JIT. Wątek A wywołuje element ICorProfilerCallback::JITCompilationStarted i ICorProfilerCallback::JITCompilationFinished.

Teraz wątek B wywołuje JITCachedFunctionSearchStarted tę samą funkcję. Mimo że profiler zadeklarował zamiar skompilowania funkcji JIT, profiler odbiera drugie wywołanie zwrotne, ponieważ wątek B wysyła wywołanie zwrotne, zanim profiler odpowiedział na wywołanie wątku A do JITCachedFunctionSearchStarted. Kolejność, w jakiej wątki tworzą wywołania, zależy od sposobu planowania wątków.

Gdy profiler odbiera zduplikowane wywołania zwrotne, musi ustawić wartość przywołyną przez pbUseCachedFunction wartość dla wszystkich zduplikowanych wywołań zwrotnych. Oznacza to, że gdy JITCachedFunctionSearchStarted jest wywoływany wiele razy z tą samą functionId wartością, profiler musi odpowiadać tak samo za każdym razem.

Wymagania

Platformy: Zobacz Wymagania systemowe.

Nagłówka: CorProf.idl, CorProf.h

Biblioteki: CorGuids.lib

wersje .NET Framework: dostępne od wersji 2.0

Zobacz też