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