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