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