2013-12-12 12 views
8

Gibt es eine Möglichkeit, alle Nachrichten von gc() in R zu unterdrücken?Unterdrücken der Ausgabe von gc()

Die üblichen wie suppressWarnings(gc()) oder suppressMessages(gc()) funktionieren nicht. gc() selbst hat eine verbose Option, aber dies nicht funktioniert, wie ich es mag:

> gc(verbose=TRUE) 
Garbage collection 375 = 234+40+101 (level 2) ... 
17.9 Mbytes of cons cells used (41%) 
171.2 Mbytes of vectors used (43%) 
used (Mb) gc trigger (Mb) max used (Mb) 
Ncells 334493 17.9  818163 43.7 818163 43.7 
Vcells 22431904 171.2 52178020 398.1 50193465 383.0 
> gc(verbose=FALSE) 
used (Mb) gc trigger (Mb) max used (Mb) 
Ncells 334496 17.9  818163 43.7 818163 43.7 
Vcells 22431916 171.2 52178020 398.1 50193465 383.0 

Vielen Dank im Voraus!

Best, Ruben

+2

Dies scheint ein wenig merkwürdig, da der einzige übliche Grund, 'gc' aufzurufen, diese Ausgabe zu sehen ist. Wie Hadley schreibt, "hat es nie einen Sinn, gc() selbst aufzurufen, abgesehen davon, wie viel Speicher verwendet wird. R ruft automatisch die Garbage Collection auf, wenn mehr Platz benötigt wird." Siehe http://adv-r.had.co.nz/memory.html – Aaron

+1

@Aaron: Wie in '? Gc':' _Allerdings kann es sinnvoll sein, gc aufzurufen, nachdem ein großes Objekt entfernt wurde kann R auffordern, Speicher an das Betriebssystem zurückzugeben._ "Insbesondere verwende ich es, wenn ich a) Timing-Funktionen, um die Geschwindigkeit zu vergleichen und b) wenn ich' read.xlsx' für größere Tabellenkalkulationen benutze - in denen ich schon mal reingekommen bin Probleme des Speicherüberlaufs ohne 'gc()' nach dem Einlesen solcher Objekte. – MichaelChirico

Antwort

18

ich manchmal invisible(gc()) verwenden.

+0

Viel besser als mein "nicht schöner" Ansatz. Könnte immer umbrechen, d. H. 'Mygc <-function (...) unsichtbar (gc (...))' –

+0

Funktioniert perfekt. Vielen Dank! – DrewsRM

0

Nicht hübsch, aber

foo <- gc();rm foo 

wird darum kümmern

Verwandte Themen