Frage

So setzen Sie L1- oder L2-Cache-Größenbegrenzung. Ich besorgt, die Cache-Größe zu erhöhen. Eine Möglichkeit ist die Definition von Zeitlimit für Cache, aber ich möchte wissen, dass es möglich ist, eine Einschränkung für die Cache -Größe zu machen oder nicht.

RGDS Navid

War es hilfreich?

Lösung

So setzen Sie L1-Cache-Größenbegrenzung

Du kannst nicht. Die einzige Option ist zu clear Der Persistenzkontext manuell in regelmäßigen Abständen, wenn Sie "kontrollieren" möchten (eigentlich, clear ist sehr aggressiv, es entfernt es alle Einheiten) seine Größe.

So setzen Sie L2-Cache-Größenbegrenzung

Dies hängt vom zugrunde liegenden Cache -Anbieter ab. Mit anderen Worten, dies geschieht durch die Konfiguration der L2 -Cache -Implementierung. Zum Beispiel hat Ehcache a maxElementInMemory Parameter.


Was passiert in L1?! Wie viel Entitäten werden im Speicher im Gedächtnis sein? w/o irgendwelche Einschränkungen?!

So viel wie Sie einfügen, bis ein späterer Fall OutOfMemoryError, daher die Notwendigkeit zu clear ausdrücklich:

  • bei großen Chargenjobs (auch wenn sie in einer einzigen Transaktion auftreten)
  • Wenn ein langlebiger EntityManager wird genutzt

Das übliche Muster besteht jedoch darin, eine kurzlebige zu verwenden EntityManager Und die meisten Anwendungsfälle sind keine Batch -Jobs, daher ist dies kein Problem.

Siehe auch

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