Я делаю проект, где мне нужно, чтобы все вызовы API занимали меньше 1 с, но я сталкиваюсь с проблемой с первым вызовом на каждый маршрут, который медленнее, чем следующие.
В настоящее время первый вызов / вход в систему занимает 3,6 с, а следующие - 170 мс и то же самое для всех остальных маршрутов.
Я обнаружил, -XX:+TraceClassLoadingчто при первом вызове классы были загружены в память, что вызвало проблему с производительностью.
Однако я не нашел простого способа загрузки всех классов при запуске, и для каждого нового сервиса мне нужно добавить разогревающий вызов в ApplicationRunner.
У кого-нибудь есть решение для автоматической загрузки классов приложения SpringBoot или прогрева всех его маршрутов?
invokedynamicи мы знаем, что разрешение при первом вызове для них медленное (у нас есть десятки тысяч таких вызовов, которые без этого первого вызова накапливаются до десятков секунд).