Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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