ICorProfilerInfo4::RequestReJIT Yöntemi
Belirtilen işlevlerin tüm örneklerinin JIT yeniden derlemesini istemektedir.
Sözdizimi
HRESULT RequestReJIT (
[in] ULONG cFunctions,
[in, size_is(cFunctions)] ModuleID moduleIds[],
[in, size_is(cFunctions)] mdMethodDef methodIds[]);
Parametreler
cFunctions
[in] Yeniden derlene işlevlerin sayısı.
moduleIds
[in] moduleId
Yeniden derlenecek işlevleri tanımlayan (module
, methodDef
) çiftlerinin bölümünü belirtir.
methodIds
[in] methodId
Yeniden derlenecek işlevleri tanımlayan (module
, methodDef
) çiftlerinin bölümünü belirtir.
Dönüş Değeri
Bu yöntem, aşağıdaki belirli HRESULTs ve yöntem hatasını gösteren HRESULT hatalarını döndürür.
HRESULT | Description |
---|---|
S_OK | JIT yeniden derlemesi için tüm yöntemleri işaretleme girişiminde bulunuldu. Profil oluşturucunun JIT yeniden derlemesi için hangi yöntemlerin başarıyla işaretlendiğini belirlemek için ICorProfilerCallback4::ReJITError yöntemini uygulaması gerekir. |
CORPROF_E_CALLBACK4_REQUIRED | Bu çağrının desteklenmesi için profil oluşturucunun ICorProfilerCallback4 arabirimini uygulaması gerekir. |
CORPROF_E_REJIT_NOT_ENABLED | JIT yeniden derleme etkinleştirilmedi. Bayrağı ayarlamak için ICorProfilerInfo::SetEventMask yöntemini kullanarak başlatma sırasında JIT yeniden derlemesini COR_PRF_ENABLE_REJIT etkinleştirmeniz gerekir. |
E_INVALIDARG | cFunctions 0 veya moduleIds veya methodIds şeklindedir NULL . |
E_OUTOFMEMORY | CLR, bellek yetersiz olduğundan isteği tamamlayamadı. |
Açıklamalar
Çalışma zamanının belirli bir işlev kümesini yeniden derlemesini sağlamak için çağrısında RequestReJIT
bulunun. Daha sonra bir kod profili oluşturucu, işlevler yeniden derlendiğinde oluşturulan kodu ayarlamak için ICorProfilerFunctionControl arabirimini kullanabilir. Bu, şu anda yürütülen işlevleri etkilemez, yalnızca gelecekteki işlev çağrılarını etkiler. Belirtilen işlevlerden herhangi biri daha önce JIT ile yeniden derlenmişse, yeniden derleme isteğinde bulunmak işlevin geri döndürülmesi ve yeniden derlenmesiyle eşdeğerdir. Geri çevrilebilirliği korumak için, JIT derleyicisi bir işlevin özgün sürümünü derlediğinde, iç kararlar için çağrılarının yalnızca özgün sürümlerini dikkate alır. JIT derleyicisi bir işlevi yeniden derlediğinde, hat oluşturma için çağıranlarının geçerli sürümlerini (yeniden derlenmiş veya özgün) dikkate alır.
Profil oluşturucu genellikle profil oluşturucunun bir veya daha fazla yöntemi izlemesini isteyen kullanıcı girişine yanıt olarak çağrısır RequestReJIT
. RequestReJIT
genellikle çalışma zamanının bir kısmını yapmak için askıya alır ve potansiyel olarak bir çöp toplamayı tetikleyebilir. Bu nedenle, profil oluşturucu, şu anda bir profil oluşturucu geri çağırması yürüten CLR tarafından oluşturulmuş bir iş parçacığından değil, daha önce oluşturduğu bir iş parçacığından çağrısı RequestReJIT
yapmalıdır.
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
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin