Kraft volle garbage collection, wenn der Speicher Besatzung geht über eine bestimmte Schwelle

Habe ich eine server-Anwendung, die, in seltenen Fällen können genügend große Speicherbereiche.

Ist es nicht ein Speicher-Leck, als diese Abschnitte können zurückgefordert werden, vom garbage collector durch ausführen einer full garbage collection. Normale garbage collection befreit Mengen an Speicher, die sind zu klein: es ist nicht ausreichend, in diesem Zusammenhang.

Den garbage collector führt diese full GCs, wenn Sie es für angemessen hält, und zwar dann, wenn der Speicherbedarf der Anwendung nähert sich der vorgegebenen maximum angegeben mit -Xmx.

Das wäre ok, wenn es nicht für die Tatsache, dass diese problematischen Speicher-Zuweisungen kommen in bursts, und kann zu OutOfMemoryErrors aufgrund der Tatsache, dass ist die jvm nicht in der Lage, eine GC-schnell genug, um die erforderlichen Speicher. Wenn ich manuell aufrufen System.gc() vorab, ich kann diese situation verhindert.

Trotzdem würde ich es vorziehen, nicht mit monitor meine jvm memory allocation mich (oder legen Sie den Speicher-management in meine Anwendung Logik); es wäre schön, wenn es war ein Weg, um die Ausführung der virtuellen Maschine mit einer memory-Schwelle, über die volle GCs würde automatisch ausgeführt werden, um Sie zu lösen, sehr früh den Speicher brauche ich noch.

Lange Geschichte kurz: ich brauche eine Möglichkeit (ein Befehlszeilen-option?) zum konfigurieren der jvm-um-release Anfang eine gute Menge an Speicher (d.h. führen Sie eine vollständige GC), wenn der Speicher Besatzung einen bestimmten Schwellenwert erreicht, ist mir egal, wenn das verlangsamt meine Anwendung nach unten jeder einmal in eine Weile.

Alle die ich gefunden habe, bis jetzt sind die Möglichkeiten zum ändern der Größe der Generationen, aber das ist nicht das, was ich brauche (zumindest nicht direkt).

Ich würde schätzen Ihre Anregungen,

Silvio

P. S. ich arbeite an einem Weg, um zu vermeiden, große Zuweisungen, aber es kann verlangen, eine lange Zeit, und inzwischen ist meine app braucht ein wenig Stabilität

UPDATE: Analyse der app mit jvisualvm, ich kann sehen, dass das problem in der alten generation

Schreibe einen Kommentar