ICorProfilerCallback4::ReJITCompilationStarted Yöntemi
Tam zamanında (JIT) derleyicisinin bir işlevi yeniden derlemeye başladığını profil oluşturucuya bildirir.
Sözdizimi
HRESULT ReJITCompilationStarted(
[in] FunctionID functionId,
[in] ReJITID rejitId,
[in] BOOL fIsSafeToBlock);
Parametreler
functionId
[in] JIT derleyicisinin yeniden derlemeye başladığı işlevin kimliği.
rejitId
[in] İşlevin yeni sürümünün yeniden derleme kimliği.
fIsSafeToBlock
[in] true
engellemenin çalışma zamanının çağıran iş parçacığının bu geri çağırmadan dönmesini beklemesine neden olabileceğini belirtmek için; false
engellemenin çalışma zamanının çalışmasını etkilemeyeceğini belirtmek için. değeri true
çalışma zamanına zarar vermez, ancak profil oluşturma sonuçlarını etkileyebilir.
Açıklamalar
Çalışma zamanının ReJITCompilationStarted
sınıf oluşturucularını işleme şekli nedeniyle her işlev için birden fazla çift ve ReJITCompilationFinished yöntemi çağrıları almak mümkündür. Örneğin, çalışma zamanı A yöntemini yeniden derlemeye başlar, ancak B sınıfı için sınıf oluşturucunun çalıştırılması gerekir. Bu nedenle, çalışma zamanı B sınıfı için oluşturucuyu yeniden derler ve çalıştırır. Oluşturucu çalışırken A yöntemine çağrı yapar ve bu da A yönteminin yeniden derlenmelerine neden olur. Bu senaryoda, A yönteminin ilk yeniden derlemesi durduruldu. Ancak, A yöntemini yeniden derleme girişimlerinin her ikisi de JIT yeniden derleme olaylarıyla bildirilir.
Profil oluşturucular, iki iş parçacığının aynı anda geri çağırmalar yaptığı durumlarda JIT yeniden derleme geri çağırmalarının sırasını desteklemelidir. Örneğin, iş parçacığı A çağırırReJITCompilationStarted
; ancak A iş parçacığı ReJITCompilationFinished çağrısı yapmadan önce, B iş parçacığı A iş parçacığının geri çağırmasından ReJITCompilationStarted
işlev kimliğiyle ICorProfilerCallback::ExceptionSearchFunctionEnter'ı çağırır. Profil oluşturucu tarafından ReJITCompilationFinished çağrısı henüz alınmadığından işlev kimliğinin henüz geçerli olmaması gerektiği görünebilir. Ancak bu durumda işlev kimliği geçerlidir.
Gereksinimler
Platform: Bkz. Sistem Gereksinimleri.
Üstbilgi: CorProf.idl, CorProf.h
Kitaplığı: CorGuids.lib
.NET Framework Sürümleri: 4.5 sürümünden itibaren kullanılabilir