Элемент <useLegacyJit>

Определяет, использует ли среда CLR устаревший 64-разрядный JIT-компилятор для JIT-компиляции.

<configuration>
  <runtime>
    <useLegacyJit>

Синтаксис

<useLegacyJit enabled=0|1 />

В имени элемента useLegacyJit учитывается регистр.

Элементы и атрибуты

В следующих разделах описаны атрибуты, дочерние и родительские элементы.

Атрибуты

Атрибут Описание
enabled Обязательный атрибут.

Указывает, использует ли среда выполнения устаревший JIT-компилятор 64.

Включенный атрибут

Значение Описание
0 Среда CLR использует новый 64-разрядный компилятор JIT, входящий в платформа .NET Framework 4,6 и более поздних версий.
1 Среда CLR использует устаревший 64-разрядный компилятор JIT.

Дочерние элементы

Нет

Родительские элементы

Элемент Описание
configuration Корневой элемент в любом файле конфигурации, используемом средой CLR и приложениями .NET Framework.
runtime Содержит сведения о параметрах инициализации среды выполнения.

Remarks

Начиная с платформа .NET Framework 4,6, среда CLR по умолчанию использует новый 64-разрядный компилятор для JIT-компиляции. В некоторых случаях это может привести к различию в поведении кода приложения, скомпилированного JIT-компилятором в предыдущей версии 64-разрядного компилятора JIT. Установив enabled атрибут <useLegacyJit> элемента в значение 1 , вы можете отключить новый 64-разрядный компилятор JIT, а вместо этого скомпилировать приложение с помощью устаревшей версии JIT-компилятора с 64.

Примечание

Этот <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, то включен устаревший JIT-компилятор 64. Имя значения реестра обрабатывается без учета регистра.

    Добавление значения в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework ключ влияет на все приложения, выполняющиеся на компьютере. Добавление значения в HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework ключ влияет на все приложения, запущенные текущим пользователем. Если на компьютере настроено несколько учетных записей пользователей, затрагиваются только приложения, запущенные текущим пользователем, если только значение не будет добавлено в разделы реестра для других пользователей. Добавление <useLegacyJit> элемента в файл конфигурации переопределяет параметры реестра, если они есть.

Пример

Следующий файл конфигурации отключает компиляцию с помощью нового 64-разрядного компилятора JIT, а вместо этого использует устаревший JIT-компилятор с 64.

<?xml version ="1.0"?>  
<configuration>  
  <runtime>  
    <useLegacyJit enabled="1" />  
  </runtime>  
</configuration>  

См. также