有没有可能在 R 中抑制所有 gc() 信息?
通常的方式,如 suppressWarnings(gc())
或 suppressMessages(gc())
不起作用。 gc()
本身有一个 verbose
选项,但它不起作用:
> 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
提前致谢!
gc
的唯一常见原因是查看输出。正如Hadley所写的那样,“除了查看使用了多少内存之外,没有任何理由自己调用gc()。每当需要更多空间时,R都会自动调用运行垃圾回收。”请参阅http://adv-r.had.co.nz/memory.html。 - Aaron left Stack Overflow?gc
文件中提到:“_但是,在删除大对象后调用gc可能会很有用,因为这可能会促使R将内存返回给操作系统_。”特别是当我在a)比较速度时计时函数和b)使用read.xlsx
读取较大电子表格时,我会使用它——如果没有在读入这些对象后使用gc()
,我会遇到内存溢出的问题。 - MichaelChirico