Wie behebt man OutOfMemoryError (Java): GC Overhead Limit in r überschritten? [Duplikat]

8

Ich muss eine Datei in einer Liste von Ordnern lesen und Daten in R speichern. Ich verwende folgenden Code für meine Testdaten und es funktioniert. Wenn ich den Code dann für die eigentlichen Daten nutze  Ich bekomme diesen Fehler Fehler: OutOfMemoryError (Java): GC-Overhead-Limit überschritten Abgerufen von: oberste Ebene

Das habe ich für meine Testdaten getan

%Vor%     
poshan 26.11.2014, 16:16
quelle

1 Antwort

20

Dies ist ein typisches Problem in rJava. Dies wird in der XLConnect-Dokumentation beantwortet, in der auch rJava verwendet wird, um eine Verbindung zu Excel herzustellen, genauso wie die xlsx-Bibliothek. Ich zitiere hier :

"Dies liegt daran, dass XLConnect (gleich für xlsx) Ihr gesamtes Datenobjekt der Reihe nach in die JVM kopieren muss Um es in eine Datei zu schreiben, muss die JVM mit einer festen Obergrenze für ihre Speichergröße initialisiert werden. Wechseln Mit dieser Menge können Sie Parameter an die JVM des R übergeben, genau wie Sie es von einem Befehlszeilen-Java-Prozess via rJavas Optionen unterstützen:

%Vor%

Beachten Sie jedoch, dass diese Parameter genau einmal pro R-Sitzung ausgewertet werden, wenn die JVM initialisiert wird - Dies ist in der Regel, sobald Sie das erste Paket, das Java-Unterstützung verwendet, laden, so sollten Sie dies bereits tun wie möglich. "

Wie oben erwähnt, führen Sie die options-Funktion am Anfang Ihres Skripts aus, bevor Sie Bibliotheken laden . Wenn Sie es über Rstudio ausführen, stellen Sie sicher, dass Sie es neu starten, bevor Sie das Skript ausführen.

Bitte beachten Sie auch, dass es immer noch nicht sicher ist, ob das auch funktioniert, abhängig von der Größe der Datei, die Sie analysieren wollen.

    
LyzandeR 26.11.2014 17:45
quelle

Tags und Links