Frage

Ich hat vor kurzem über Szenarien gelernt, die eine App erfordert aufwärmen (mit hohen Durchsatzanforderungen), bevor sie real Anfragen dienen starten. Die Logik dahinter war JIT zu ermöglichen, seine Leistung Magie zu tun!

Ist das eine Norm für Java-Anwendungen oder ist dies in der Regel für Speicher schwer getan (Footprint) apps?

War es hilfreich?

Lösung

Wenn Sie sprechen über eine High-Traffic-Webapp / Website dann ist JIT ein sehr kleines Problem. Das größte Problem in der Aufwärmphase (Bestücken), um alle Cache-Ebenen Sie haben müssen. ZB ehcache Regionen, die von Hibernate bevölkert werden . Das ist, weil IO ähnliche Operationen sind um Größenordnungen langsamer als alles, was in der CPU geschieht (das heißt, wenn Sie Fraktale Berechnung:)

Andere Tipps

Die Frage ist, wann würden Sie wollen geht aus dem Weg, , dies zu tun?

Wenn Sie einen Webapp ausrollen, und es ist sofort zu leben, dann, während Sie „warming“ es, du bist das Hinzufügen zusätzliche Last, die kontraproduktiv ist. Ähnliches gilt, wenn eine Desktop-Anwendung startet. Kein Punkt in Erwärmung, wenn der Benutzer wird sofort starten Sie es. Oder schlimmer noch, ohne dass sich der Benutzer zu interagieren, während Sie die App wärmen.

Wenn Sie eine Webapp ausrollen, und Sie die Bereitstellung testen, bevor Sie Ihre Loadbalancer darauf zeigen, dann haben Sie bereits erwärmt es als Nebenergebnis.

Neben cherouvim Antwort , kann ich glaube, von ein paar andere Fragen, die Warm-up benötigen:

  • Objekte Instanziierung (verzögertes Laden, Singletons etc.);
  • Heapzuordnung (wenn Ihr Xms kleiner als Ihre Xmx).

Ich stelle mir vor, dass die OS einstimmt sich auf ein Verhalten der Anwendung als auch, so dass OS Anrufe auch durch eine Aufwärmphase betroffen sein können.

Die meisten der oben (Cache-Population, Objektinitialisierung) sind nicht spezifisch für Java.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top