<элемент 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>  

См. также раздел