Что означает JIT-кодирование java-программы и делает ли это выполнение намного более быстрым или есть байт-коды, которые не JIT-обработаны?
Есть ли способ отключить JIT-компилятор и повлияет ли это на производительность?
Ответы (4)
Есть два способа отключить JIT
-Djava.compiler=NONE
или это почти никогда ничего не компилирует
-XX:CompileThreshold=2000000000
или на IBM JVM
-nojit
Отключение JIT может сильно замедлить ваш код, например. 50х, но не всегда. Если вы проводите большую часть своего времени за обновлениями ввода-вывода или графического интерфейса, вы можете обнаружить, что это не имеет большого значения.
person
Peter Lawrey
schedule
16.12.2015
Я изучаю java и у меня так много сомнений по поводу большинства вещей ..... спасибо за ваш ответ. :) Далее я хотел бы знать, какой компилятор вступает в игру, когда мы отключаем JIT?
- person CoDerus; 16.12.2015
@CoDerus отключение JIT означает, что компилятора нет. Вместо этого код запускается только в режиме интерпретатора.
- person Peter Lawrey; 16.12.2015
Для IBM правильная опция -Xnojit или -Xint
person
Sean F
schedule
06.10.2016
Это не дает ответа на вопрос. Чтобы критиковать или запрашивать разъяснения у автора, оставьте комментарий под его сообщением. - Из отзыва
- person Tom Cammann; 12.10.2016
Когда я написал его ответ, мне не разрешили комментировать. В противном случае я бы так и поступил.
- 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