Есть ли способ отключить JIT-компилятор и повлияет ли это на производительность?

Что означает JIT-кодирование java-программы и делает ли это выполнение намного более быстрым или есть байт-коды, которые не JIT-обработаны?


person CoDerus    schedule 16.12.2015    source источник


Ответы (4)


Есть два способа отключить JIT

-Djava.compiler=NONE 

или это почти никогда ничего не компилирует

-XX:CompileThreshold=2000000000

или на IBM JVM

-nojit

Отключение JIT может сильно замедлить ваш код, например. 50х, но не всегда. Если вы проводите большую часть своего времени за обновлениями ввода-вывода или графического интерфейса, вы можете обнаружить, что это не имеет большого значения.

person Peter Lawrey    schedule 16.12.2015
comment
Я изучаю java и у меня так много сомнений по поводу большинства вещей ..... спасибо за ваш ответ. :) Далее я хотел бы знать, какой компилятор вступает в игру, когда мы отключаем JIT? - person CoDerus; 16.12.2015
comment
@CoDerus отключение JIT означает, что компилятора нет. Вместо этого код запускается только в режиме интерпретатора. - person Peter Lawrey; 16.12.2015

Из документа,

-Xint

Запускает приложение только в режиме интерпретации. Компиляция в машинный код отключена, и весь байт-код выполняется интерпретатором.

Системное свойство java.compiler известно классу Compiler. до Java 9. В Java 9 он отмечен как @Deprecated.

person Hong    schedule 03.06.2019

Для IBM правильная опция -Xnojit или -Xint

person Sean F    schedule 06.10.2016
comment
Это не дает ответа на вопрос. Чтобы критиковать или запрашивать разъяснения у автора, оставьте комментарий под его сообщением. - Из отзыва - person Tom Cammann; 12.10.2016
comment
Когда я написал его ответ, мне не разрешили комментировать. В противном случае я бы так и поступил. - person Sean F; 12.10.2016

В HotSpot VM JIT-компиляцию можно отключить с помощью параметра _ 1_, который пропускает инициализацию потоков компилятора.

Это true от по умолчанию:

product(bool, UseCompiler, true,                                          
        "Use Just-In-Time compilation")   
person St.Antario    schedule 26.09.2019