Ich mache ein Projekt, bei dem alle API-Aufrufe weniger als 1 Sekunde dauern müssen, aber ich habe ein Problem mit dem ersten Aufruf jeder Route, die langsamer ist als die folgenden.
Derzeit dauert der erste Anruf bei / login 3,6 s und der nächste 170 ms und für alle anderen Routen gleich.
Ich fand heraus, -XX:+TraceClassLoading
dass beim ersten Aufruf die Klassen in den Speicher geladen wurden und dies das Leistungsproblem verursachte.
Ich habe jedoch keine einfache Möglichkeit gefunden, alle Klassen beim Start zu laden, und für jeden neuen Dienst muss ich einen Aufwärmaufruf in einem ApplicationRunner hinzufügen.
Hat jemand eine Lösung, um die Klassen einer SpringBoot-Anwendung automatisch zu laden oder alle Routen aufzuwärmen?
invokedynamic
und wir wissen, dass die Auflösung beim ersten Aufruf für diese langsam ist (wir haben Zehntausende solcher Aufrufe, die sich ohne diesen ersten Aufruf auf Zehntelsekunden summieren).