Когда я измеряю пропускную способность моего Java-приложения, я вижу увеличение производительности на 50% со временем:
- Для первых 100K сообщений я получаю ~ 3000 сообщений в секунду
- Для вторых сообщений 100K я получаю ~ 4500 сообщений в секунду.
Я считаю, что производительность улучшается, поскольку JIT оптимизирует путь выполнения.
Причина, указанная для не Сохранение JIT-компиляции заключается в том, что «оптимизация, которую выполняет JVM, является не статической, а скорее динамической, основанной на шаблонах данных, а также шаблонах кода. Вполне вероятно, что эти шаблоны данных изменятся в течение времени жизни приложения, что делаетоптимизация в кеше меньше оптимальной. "
Однако я точно знаю, что эти шаблоны данных не изменятся в течение срока службы моего приложения или даже в течение нескольких периодов жизни приложения.Итак, как мне «сохранить» эти приросты производительности в JSM HotSpot?
См. Также соответствующие вопрос и обсуждение .