<элемент useLegacyJit>
Определяет, использует ли среда CLR устаревший 64-разрядный JIT-компилятор для JIT-компиляции.
<Конфигурации>
<Среды выполнения>
<useLegacyJit>
Синтаксис
<useLegacyJit enabled=0|1 />
В имени useLegacyJit
элемента учитывается регистр.
Элементы и атрибуты
В следующих разделах описаны атрибуты, дочерние и родительские элементы.
Атрибуты
Атрибут | Описание |
---|---|
enabled |
Обязательный атрибут. Указывает, использует ли среда выполнения устаревший 64-разрядный JIT-компилятор. |
атрибут enabled
Значение | Описание |
---|---|
0 | Среда CLR использует новый 64-разрядный JIT-компилятор, включенный в платформа .NET Framework 4.6 и более поздних версий. |
1 | Среда CLR использует более старый 64-разрядный JIT-компилятор. |
Дочерние элементы
Нет
Родительские элементы
Элемент | Описание |
---|---|
configuration |
Корневой элемент в любом файле конфигурации, используемом средой CLR и приложениями .NET Framework. |
runtime |
Содержит сведения о параметрах инициализации среды выполнения. |
Комментарии
Начиная с платформа .NET Framework 4.6 среда CLR по умолчанию использует новый 64-разрядный компилятор для JIT-компиляции. В некоторых случаях это может привести к отличию в поведении от кода приложения, скомпилированного в JIT-коде предыдущей версии 64-разрядного JIT-компилятора. Задав enabled
для атрибута <useLegacyJit>
элемента значение 1
, можно отключить новый 64-разрядный JIT-компилятор и вместо этого скомпилировать приложение с помощью устаревшего 64-разрядного JIT-компилятора.
Примечание
Элемент <useLegacyJit>
влияет только на 64-разрядную JIT-компиляцию. Компиляция с помощью 32-разрядного JIT-компилятора не затрагивается.
Вместо использования параметра файла конфигурации можно включить устаревший 64-разрядный JIT-компилятор двумя другими способами:
Указание переменной среды
Задайте для переменной
COMPLUS_useLegacyJit
среды значение0
(используйте новый 64-разрядный JIT-компилятор) или1
(используйте старый 64-разрядный JIT-компилятор):COMPLUS_useLegacyJit=0|1
Переменная среды имеет глобальные область, что означает, что она влияет на все приложения, выполняемые на компьютере. Если этот параметр задан, его можно переопределить параметром файла конфигурации приложения. Имя переменной среды не учитывает регистр.
Добавление раздела реестра
Вы можете включить устаревший 64-разрядный JIT-компилятор, добавив
REG_DWORD
значениеHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
в раздел илиHKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework
в реестре. Значение называетсяuseLegacyJit
. Если значение равно 0, используется новый компилятор. Если значение равно 1, то устаревший 64-разрядный JIT-компилятор включен. Имя значения реестра обрабатывается без учета регистра.Добавление значения к ключу
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
влияет на все приложения, работающие на компьютере. Добавление значения к ключуHKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework
влияет на все приложения, выполняемые текущим пользователем. Если на компьютере настроено несколько учетных записей пользователей, затрагиваются только приложения, выполняемые текущим пользователем, если значение не добавлено в разделы реестра для других пользователей. Добавление элемента в<useLegacyJit>
файл конфигурации переопределяет параметры реестра, если они присутствуют.
Пример
Следующий файл конфигурации отключает компиляцию с помощью нового 64-разрядного JIT-компилятора и вместо этого использует устаревший 64-разрядный JIT-компилятор.
<?xml version ="1.0"?>
<configuration>
<runtime>
<useLegacyJit enabled="1" />
</runtime>
</configuration>