Aracılığıyla paylaş


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.