Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Уведомляет профилировщика о начале поиска функции, скомпилированной ранее с помощью генератора образов в машинном коде (NGen.exe).
Синтаксис
HRESULT JITCachedFunctionSearchStarted(
[in] FunctionID functionId,
[out] BOOL *pbUseCachedFunction);
Параметры
functionId
[in] Идентификатор функции, для которой выполняется поиск.
pbUseCachedFunction
[out] true Значение , если подсистема выполнения должна использовать кэшированную версию функции (если она доступна); в противном случае false. Если значение равно false, обработчик выполнения JIT-компилирует функцию вместо использования версии, которая не компилируется JIT-скомпилированной.
Комментарии
В платформа .NET Framework версии 2.0 JITCachedFunctionSearchStarted обратные вызовы метода ICorProfilerCallback::JITCachedFunctionSearchFinished не будут выполняться для всех функций в обычных образах NGen. Только образы NGen, оптимизированные для профиля, будут создавать обратные вызовы для всех функций в образе. Однако из-за дополнительных издержек профилировщик должен запрашивать оптимизированные для профилировщика образы NGen только в том случае, если он намерен использовать эти обратные вызовы для принудительной компиляции функции JIT. В противном случае профилировщик должен использовать отложенную стратегию для сбора сведений о функциях.
Профилировщики должны поддерживать случаи, когда несколько потоков профилированного приложения одновременно вызывает один и тот же метод. Например, поток A вызывает JITCachedFunctionSearchStarted , и профилировщик отвечает, устанавливая для pbUseCachedFunctionзначение FALSE, чтобы принудительная JIT-компиляция. Затем поток A вызывает ICorProfilerCallback::JITCompilationStarted и ICorProfilerCallback::JITCompilationFinished.
Теперь поток B вызывает JITCachedFunctionSearchStarted ту же функцию. Несмотря на то, что профилировщик заявил о своем намерении выполнить JIT-компиляцию функции, профилировщик получает второй обратный вызов, так как поток B отправляет обратный вызов до того, как профилировщик ответил на вызов потока A к JITCachedFunctionSearchStarted. Порядок, в котором потоки выполняют вызовы, зависит от того, как запланированы потоки.
Когда профилировщик получает повторяющиеся обратные вызовы, он должен задать для значения, на которое ссылается pbUseCachedFunction параметр , одинаковое значение для всех повторяющихся обратных вызовов. То есть, когда JITCachedFunctionSearchStarted вызывается несколько раз с одинаковым functionId значением, профилировщик должен отвечать один и тот же каждый раз.
Требования
Платформы: см. раздел Требования к системе.
Заголовок: CorProf.idl, CorProf.h
Библиотека: CorGuids.lib
версии платформа .NET Framework: доступно с версии 2.0