Есть ли способ сохранить информацию JAVA JIT для следующего запуска, чтобы мне не приходилось прогревать код каждый день? - PullRequest
12 голосов
/ 01 февраля 2010

У меня есть процесс JAVA, который выполняется каждый день и занимает около 1000 или 2000 обращений, прежде чем он будет полностью оптимизирован JIT. Я хотел бы сохранить информацию JIT, чтобы на следующий день она могла начаться в оптимизированном состоянии. Кажется, что это должно быть возможно, но я не смог найти какой-либо метод для этого.

Ответы [ 3 ]

2 голосов
/ 01 февраля 2010

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

1 голос
/ 27 июля 2012

Одним из вариантов является управление количеством вызовов, необходимых для того, чтобы метод считался подходящим для JIT-компиляции.

-XX: CompileThreshold (по умолчанию 10000).

Вы можете поиграть с различными значениями, чтобы настроить свое приложение.

Обратите внимание, что установка этого параметра в ZERO НЕ рекомендуется.

0 голосов
/ 01 февраля 2010

Можете ли вы просто оставить приложение запущенным? Что произойдет, если ваше приложение будет просто спать до следующего дня, а не выключаться? После этого вы сэкономите время при запуске JVM, а также при пропуске фазы джиттинга.

...