Добрый день коллеги. Сегодня спешу поделиться очередной новинкой от Джоша Лонга. В этом видео Джош рассказывает о том, как можно ускорить старт Java приложения, написанного с использованием Spring Boot.
Честно признаюсь, для меня этот материал несет скорее академический характер. Специфика моих задач не выдвигает таких жестких требований ко времени старта приложения. Все, изложенное в презентации, релевантно скорее для области так называемых пико-сервисов или подходов FaaS (Function as a Service).
И так, какие варианты по ускорению старта у нас существуеют:
- Использование возможностей AOT (Ahead-of-time processing)
Более детально Ahead-of-time processing описан в этой статье. - GraalVM и нативная компиляция
Останавливаться и отдавать предпочтение какому либо из вариантов, я не буду. Во-первых, чтобы не дублировать содержание презентации, во-вторых я не являюсь гуру по оптимизации Java и не хотели бы публиковать очевидные ляпы. Но как видите, нет пределу совершенства, Springboot дает в руки разработчика разные как по сложности использования, так и по приросту производительности варианты "разгона" Java. Смелее экспериментируйте и убыстряйтесь :-)