Empfang von OutOfMemoryError-Ausnahmebedingungen
Eine OutOfMemoryError -Ausnahme tritt auf, wenn der Speicherplatz auf dem Java™-Heap oder dem nativen Heap knapp wird.
Wenn der Java-Heap erschöpft ist, wird eine Fehlermeldung angezeigt, die auf einen OutOfMemoryError -Zustand mit dem Java-Heap hinweist. Wenn der Prozessadressraum (also der native Heapspeicher) erschöpft ist, erhalten Sie eine Fehlernachricht mit der Erklärung, dass eine native Zuordnung fehlgeschlagen ist. In jedem Fall kann es sein, dass das Problem nicht auf ein Speicherleck zurückzuführen ist, sondern lediglich auf die Tatsache, dass die erforderliche Speicherbelegung stetig über dem verfügbaren Speicher liegt. Daher müssen Sie zunächst herausfinden, welcher Heapspeicher erschöpft ist, und dann die Größe dieses Heapspeichers erhöhen.
Ist das Problem tatsächlich auf ein Speicherleck zurückzuführen, lässt es sich zwar nicht durch die Erhöhung der Größe des Heapspeichers beheben, das Eintreten der OutOfMemoryError-Ausnahmebedingung oder Fehlerbedingungen wird jedoch verzögert. Diese Verzögerung kann auf Produktionssystemen hilfreich sein.
Die maximale Größe eines Objekts, das zugeordnet werden kann, ist nur durch den verfügbaren Speicher begrenzt. Die maximale Anzahl der unterstützten Array-Elemente ist 2 ^ 31-1, der gemäß der Spezifikation der Java Virtual Machine maximal zulässige Wert. In der Praxis kann es vorkommen, dass große Arrays aufgrund des verfügbaren Hauptspeichers nicht zugeordnet werden können. Konfigurieren Sie mit der Befehlszeilenoption -Xmx die Gesamtmenge des Speichers, der für Objekte zur Verfügung steht. Diese Grenzwerte gelten für 32 -Bit-und 64-Bit-JVMs.