Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Żąda ponownej kompilacji JIT wszystkich wystąpień określonych funkcji.
Składnia
HRESULT RequestReJIT (
[in] ULONG cFunctions,
[in, size_is(cFunctions)] ModuleID moduleIds[],
[in, size_is(cFunctions)] mdMethodDef methodIds[]);
Parametry
cFunctions
[in] Liczba funkcji do ponownego skompilowania.
moduleIds
[in] Określa moduleId część par (module, methodDef), które identyfikują funkcje do ponownego skompilowania.
methodIds
[in] Określa methodId część par (module, methodDef), które identyfikują funkcje do ponownego skompilowania.
Wartość zwracana
Ta metoda zwraca następujące specyficzne wartości HRESULTs, a także błędy HRESULT wskazujące niepowodzenie metody.
| HRESULT | Opis |
|---|---|
| S_OK | Podjęto próbę oznaczenia wszystkich metod ponownej kompilacji JIT. Profiler musi zaimplementować metodę ICorProfilerCallback4::ReJITError , aby określić, które metody zostały pomyślnie oznaczone do ponownej kompilacji JIT. |
| CORPROF_E_CALLBACK4_REQUIRED | Profiler musi zaimplementować interfejs ICorProfilerCallback4 , aby to wywołanie było obsługiwane. |
| CORPROF_E_REJIT_NOT_ENABLED | Ponowna kompilacja trybu JIT nie została włączona. Aby ustawić flagęCOR_PRF_ENABLE_REJIT, należy włączyć ponowną kompilację trybu JIT podczas inicjowania przy użyciu metody ICorProfilerInfo::SetEventMask. |
| E_INVALIDARG |
cFunctions ma wartość 0 lub moduleIdsmethodIds ma NULLwartość . |
| E_OUTOFMEMORY | ClR nie może ukończyć żądania, ponieważ zabrakło pamięci. |
Uwagi
Wywołanie RequestReJIT metody w celu ponownego skompilowania określonego zestawu funkcji przez środowisko uruchomieniowe. Profiler kodu może następnie użyć interfejsu ICorProfilerFunctionControl , aby dostosować kod generowany podczas ponownego kompilowania funkcji. Nie ma to wpływu na aktualnie wykonywane funkcje, tylko wywołania przyszłych funkcji. Jeśli którakolwiek z określonych funkcji została wcześniej skompilowana w trybie JIT, żądanie ponownej kompilacji jest równoważne przywracaniu i ponownej kompilacji funkcji. Aby zachować odwracalność, gdy kompilator trybu JIT kompiluje oryginalną wersję funkcji, uwzględnia tylko oryginalne wersje swoich wywołań w celu podejmowania decyzji w zakresie tworzenia konspektu. Gdy kompilator trybu JIT ponownie skompiluje funkcję, uwzględnia bieżące wersje (ponownie skompilowane lub oryginalne) jego wywołań na potrzeby tworzenia podkreślenia.
Profiler zwykle wywołuje RequestReJIT w odpowiedzi na dane wejściowe użytkownika, żądając, aby profiler instrumentować jedną lub więcej metod.
RequestReJIT zwykle zawiesza środowisko uruchomieniowe w celu wykonania niektórych zadań i może potencjalnie wyzwolić odzyskiwanie pamięci. W związku z tym profiler powinien wywołać RequestReJIT z wcześniej utworzonego wątku, a nie z utworzonego wątku CLR, który obecnie wykonuje wywołanie zwrotne profilera.
Wymagania
Platformy: Zobacz Wymagania systemowe.
Nagłówka: CorProf.idl, CorProf.h
Biblioteki: CorGuids.lib
wersje .NET Framework: dostępne od wersji 4.5