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 derlemeye başladığını profil oluşturucuya bildirir.
Sözdizimi
HRESULT JITCompilationStarted(
[in] FunctionID functionId,
[in] BOOL fIsSafeToBlock);
Parametreler
functionId [in] Derlemenin başlatıldığı işlevin kimliği.
fIsSafeToBlock [in] Profil oluşturucuya engellemenin çalışma zamanının çalışmasını etkileyip etkilemeyeceğini belirten bir değer. Engelleme, çalışma zamanının çağıran iş parçacığının bu geri çağırmadan dönmesini beklemesine neden oluyorsa değeridir true ; aksi takdirde , false.
değeri true çalışma zamanına zarar vermese de, profil oluşturma sonuçlarını çarpıtabilir.
Açıklamalar
Çalışma zamanının JITCompilationStarted sınıf oluşturucularını işleme şekli nedeniyle her işlev için birden fazla çift ve ICorProfilerCallback::JITCompilationFinished çağrıları almak mümkündür. Örneğin, çalışma zamanı A JIT derleme yöntemine başlar, ancak B sınıfının sınıf oluşturucusunun çalıştırılması gerekir. Bu nedenle çalışma zamanı JIT, B sınıfı için oluşturucuyu derler ve çalıştırır. Oluşturucu çalışırken A yöntemine bir çağrı yapar ve bu da A yönteminin yeniden JIT ile derlenmiş olmasına neden olur. Bu senaryoda, A yönteminin ilk JIT derlemesi durduruldu. Ancak, A JIT derleme yöntemine yönelik her iki girişim de JIT derleme olaylarıyla bildirilir. Profil oluşturucu, ICorProfilerInfo::SetILFunctionBody yöntemini çağırarak A yöntemi için ortak ara dil (CIL) kodunun yerini alacaksa, bunu her iki olay için de yapmalıdır, ancak her ikisi JITCompilationStarted için de aynı CIL bloğunu kullanabilir.
Profil oluşturucular, iki iş parçacığının aynı anda geri çağırmalar yaptığı durumlarda JIT geri çağırmalarının sırasını desteklemelidir. Örneğin, iş parçacığı A çağrısında bulunur JITCompilationStarted. Ancak, A iş parçacığı çağrılmadan JITCompilationFinishedönce, B iş parçacığı A iş parçacığının geri çağırmasından işlev kimliğiyle ICorProfilerCallback::ExceptionSearchFunctionEnter'ı JITCompilationStarted çağırır. profil oluşturucu tarafından çağrı alınmadığından işlev kimliğinin henüz geçerli JITCompilationFinished olmaması gerektiği görünebilir. Ancak, bunun gibi bir durumda işlev kimliği geçerlidir.
Gereksinimler
Platformlar: Bkz. Sistem Gereksinimleri.
Üst bilgi: CorProf.idl, CorProf.h
Kitaplık: CorGuids.lib
.NET Framework Sürümleri: 2.0 sürümünden itibaren kullanılabilir