共用方式為


ICorProfilerCallback::JITCachedFunctionSearchStarted 方法

通知分析工具,搜尋已開始先前使用 Native Image Generator (NGen.exe) 編譯的函式。

語法

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

參數

functionId
[in] 執行搜尋的函式的識別碼。

pbUseCachedFunction
[out] 如果執行引擎應該使用函式的快取版本 (如果有的話),則為 true;否則,為 false。 如果值為 false,則執行引擎 JIT 會編譯函式,而不是使用非 JIT 編譯的版本。

備註

在 .NET Framework 2.0 版中, JITCachedFunctionSearchStartedICorProfilerCallback::JITCachedFunctionSearchFinished 方法回呼將不會針對一般 NGen 映射中的所有函式進行。 只有針對分析工具最佳化的 NGen 映像會產生映像中所有函式的回呼。 不過,由於會造成額外負荷,分析工具應該只有在要使用這些回呼來強制 Just-In-Time (JIT) 編譯函式時,才要求針對分析工具最佳化的 NGen 映像。 否則,分析工具應該使用簡單策略來收集函式資訊。

分析工具必須支援所分析之應用程式的多個執行緒同時呼叫相同方法的情況。 例如,執行緒 A 呼叫 JITCachedFunctionSearchStarted 和分析工具會藉由將 pbUseCachedFunction 設定為 FALSE 來回應,以強制 JIT 編譯。 接著,執行緒 A 會呼叫 ICorProfilerCallback::JITCompilationStartedICorProfilerCallback::JITCompilationFinished

現在執行緒 B 會為了相同的函式呼叫 JITCachedFunctionSearchStarted。 即使分析工具已指出其對 JIT 編譯函式的意圖,分析工具仍會收到第二個回呼,因為執行緒 B 會在分析工具回應執行緒 A 對 JITCachedFunctionSearchStarted 的呼叫之前傳送回呼。 執行緒進行呼叫的順序取決於執行緒的排程方式。

當分析工具收到重複的回呼時,必須將 pbUseCachedFunction 所參考的值設定為所有重複回呼的相同值。 也就是說,使用相同 functionId 值多次呼叫 JITCachedFunctionSearchStarted 時,分析工具每次都必須回應相同。

規格需求

平台:請參閱系統需求

標頭: CorProf.idl、CorProf.h

程式庫:CorGuids.lib

.NET Framework版本:自 2.0 起提供

另請參閱