У меня есть JAVA-процесс, который работает каждый день и занимает около 1000 или 2000 обращений, прежде чем он полностью оптимизируется JIT. То, что я хотел бы сделать, это сохранить информацию JIT, чтобы на следующий день она могла начаться в оптимизированном состоянии. Кажется, что это должно быть возможно, но я не смог найти какой-либо метод для этого.
Есть ли способ сохранить JAVA JIT информацию для следующего запуска, так что мне не нужно разогревать код каждый день?
Ответ 1
Вы можете использовать компилятор с большим количеством времени, например JET или GCJ, но я не верю, что существует стандартный способ сохранения формы JIT. Имейте в виду, что это связывает вашу программу с архитектурой, в которой вы работаете, но похоже, что вы знаете и принимаете это.
Ответ 2
Один из вариантов заключается в том, чтобы контролировать количество вызовов, необходимых для того, чтобы метод считался подходящим для компиляции JIT.
-XX: CompileThreshold (по умолчанию 10000).
Вы можете воспроизводить различные значения, чтобы настроить ваше приложение.
Обратите внимание, что установка этого параметра на ZERO НЕ рекомендуется.
Ответ 3
Можете ли вы просто сохранить приложение? Что произойдет, если вы просто попросите приложение спать до следующего дня, а не закрывать его? Затем вы сэкономите время на запуск JVM, а также сможете пропустить фазу jitting.