feuerte ich meine JRuby irb Konsole und tippte:JRuby - Wie starte ich den Garbage Collector?
irb(main):037:0* GC.enable
(irb):37 warning: GC.enable does nothing on JRuby
=> true
irb(main):038:0> GC.start
=> nil
irb(main):039:0>
Wie kann ich manuell aktivieren oder die JVM Müll während eines Programms starten?
Ich frage, weil ich ein Programm habe, das etwa 500 MByte Testdaten generieren und in MySQL speichern soll. Das Programm verwendet ungefähr 5 Ebenen verschachtelter Schleifen und stürzt mit einer JVM-Speicher-Heap-Ausnahme ab, nachdem ungefähr 100 MB Testdaten generiert wurden, da kein Heap-Speicher mehr vorhanden ist. Ich möchte den Garbage Collector nach jedem Durchlauf der äußeren Schleife laufen lassen, damit alle in den inneren Schleifen erstellten verwaisten Objekte aufgeräumt werden können.
Es ist unwahrscheinlich, dass es hilft, denn wenn die JVM nicht mehr genügend Arbeitsspeicher hat, wird der GC ausgeführt, bevor er aufgibt. Möglicherweise müssen Sie sicherstellen, dass Sie Referenzen nicht länger halten, als sie benötigt werden, und/oder die Heap-Größe erhöhen. – theglauber