Realizuję projekt, w którym potrzebuję wszystkich wywołań interfejsu API, aby trwały krócej niż 1s, ale mam problem z pierwszym wywołaniem każdej trasy, który jest wolniejszy niż kolejne.
Obecnie pierwsze połączenie z logowaniem trwa 3,6 sekundy, a kolejne 170 ms i tak samo dla wszystkich pozostałych tras.
Dowiedziałem się, -XX:+TraceClassLoading
że przy pierwszym wywołaniu klasy zostały załadowane do pamięci, co spowodowało problem z wydajnością.
Jednak nie znalazłem łatwego sposobu na załadowanie wszystkich klas podczas uruchamiania i do każdej nowej usługi muszę dodać wywołanie rozgrzewające w ApplicationRunner.
Czy ktoś ma rozwiązanie, aby automatycznie załadować klasy aplikacji SpringBoot lub rozgrzać wszystkie jej trasy?
invokedynamic
i wiemy, że rozdzielczość przy pierwszym wywołaniu jest powolna (mamy dziesiątki tysięcy takich wywołań, które bez tego pierwszego połączenia kumulują się do dziesiątek sekund).