Partager via


ICorProfilerCallback::JITCachedFunctionSearchStarted, méthode

Informe le profileur qu'une recherche a été lancée pour une fonction qui a été compilée précédemment à l'aide du générateur d'images natives (NGen.exe).

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

Paramètres

  • functionId
    [in] ID de la fonction pour laquelle la recherche est exécutée.

  • pbUseCachedFunction
    [out] true si le moteur d'exécution doit utiliser la version mise en cache d'une fonction (si elle est disponible) ; sinon false. Si la valeur est false, le moteur d'exécution traite la fonction avec le compilateur JIT au lieu d'utiliser une version qui n'est pas compilée juste-à-temps (JIT, Just-In-Time).

Notes

Dans le .NET Framework version 2.0, les rappels JITCachedFunctionSearchStarted et ICorProfilerCallback::JITCachedFunctionSearchFinished Method ne seront pas effectués pour toutes les fonctions dans les images NGen normales. Seules les images NGen optimisées pour un profil généreront des rappels pour toutes les fonctions dans l'image. Toutefois, en raison d'une charge supplémentaire, un profileur ne doit demander des images NGen optimisées par un profileur que s'il prévoit d'utiliser ces rappels pour forcer la compilation JIT d'une fonction. Sinon, le profileur doit utiliser une stratégie minimale pour rassembler les informations de fonction.

Les profileurs doivent prendre en charge les situations dans lesquelles plusieurs threads d'une application profilée appellent simultanément la même méthode. Par exemple, le thread A appelle JITCachedFunctionSearchStarted et le profileur répond en affectant à pbUseCachedFunctionla valeur FALSE afin de forcer la compilation JIT. Le thread A appelle alors ICorProfilerCallback::JITCompilationStarted et ICorProfilerCallback::JITCompilationFinished.

Maintenant, le thread B appelle JITCachedFunctionSearchStarted pour la même fonction. Bien que le profileur ait déclaré son intention de traiter la fonction avec le compilateur JIT, il reçoit le deuxième rappel, car le thread B envoie le rappel avant que le profileur ait répondu à l'appel du thread A à JITCachedFunctionSearchStarted. L'ordre dans lequel les threads effectuent des appels dépend de la manière dont ils sont planifiés.

Lorsque le profileur reçoit des rappels en double, il doit affecter à la valeur référencée par pbUseCachedFunction la même valeur pour tous les rappels en double. Autrement dit, lorsque JITCachedFunctionSearchStarted est appelé plusieurs fois avec la même valeur functionId, le profileur doit répondre de la même manière à chaque fois.

Configuration requise

Plateformes : consultez Configuration requise du .NET Framework.

En-tête : CorProf.idl, CorProf.h

Bibliothèque : CorGuids.lib

Versions du .NET Framework : 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Voir aussi

Référence

ICorProfilerCallback, interface