2014-10-31 4 views
12

I maschinelles Lernen in großem Maßstab mache, aber nach einer Weile meiner Rechen wegen R Speicherbelegung so langsam werden.
ich meine Objekte gelöscht und ich habe auch versucht, gc() und das Ergebnis:klare Erinnerung von R-Sitzung zugewiesen (gc() hilft nicht!)

  used (Mb) gc trigger (Mb) max used (Mb) 
Ncells 4460452 231.5 15288838 1116.6 36599071 1954.7 
Vcells 29572776 349.4 324509788 2712.9 350796378 3376.4 

Mein Task-Manager zeigt R-Sitzung noch über 3 GB meinen Speicher zugewiesen und mein Computer ist immer noch langsam.
Wie kann ich loslassen von R genommen Speicher? (Ich möchte den PC nicht neu starten)

+0

Ist nicht die Speicherzuweisung durch das Betriebssystem selbst verwaltet? –

+0

@Pascal, keine R nimmt erforderlichen Speicher und soll es nach Gebrauch freigeben. aber es ist nicht für einige reaseons ich weiß es nicht! – Cina

+1

Haben Sie Ihre R-Sitzung beendet oder neu gestartet? – Roland

Antwort

10

verwenden müssen: mit rm Funktion

Man konnte (fast) alles, was in der Arbeitsumgebung entfernen Die beste Lösung, die ich gefunden habe, ist R-Sitzung neu zu starten. in R-Studio ctr+shft+f10

und wenn Sie nicht Arbeitsplatz

makeActiveBinding("refresh", function() { system(paste0(R.home(),"/bin/i386/R")); q("no") }, .GlobalEnv) 

paste0(R.home(),"/bin/i386/R --no-save") #--save will save workspace 

prost speichern möchten.

+1

Dies scheint auch die einzige Option für mich zu sein. Es ist ziemlich nervig! – RobertMc

1

Wie in dieser Antwort - https://stackoverflow.com/a/8813862/2602477 - "gc löscht keine Variablen, die Sie noch verwenden - es gibt nur den Speicher frei für diejenigen, auf die Sie keinen Zugriff mehr haben" .

rm(list = ls()) 

Beachten Sie, dass, wenn Sie auch versteckte Objekte entfernen möchten Sie

rm(list = ls(all.names = TRUE)) 
+1

bereits versucht. keine große Veränderung – Cina

3

müssen Sie zwei Schritte folgen. Zunächst laufen rm(list = ls()) jedoch, obwohl es alle Objekte in ls() entfernt, müssen Sie neu starten R .rs.restartR()

Diese Verwendung effektiv vollständig den Speicher löschen.