为什么R报告Windows使用的内存比自身多?

时间:2017-09-26 06:25:31

标签: r windows windows-10

> sessionInfo()
R version 3.4.0 (2017-04-21)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

在32G系统上,我在创建距离矩阵时遇到了这个错误:

df <- remove_duplicates_quanteda(dfm, df)
Error: cannot allocate vector of size 1.3 Gb

纵观我的环境,几乎没有理由担心:

print(object.size(x = lapply(ls(), get)), units = "Mb")
96.5 Mb

然而,Windows报告以下数字: 造成这种差异的原因是什么?有没有办法找出来?

1 个答案:

答案 0 :(得分:0)

Hadley在Advanced R中说得非常简单:

  

此数字与您报告的内存量不一致   操作系统有很多原因:

     
      
  1. 它只包含由R创建的对象,而不包括R解释器本身。

  2.   
  3. R和操作系统都很懒:它们不会回收内存   直到它真的需要。 R可能会坚持记忆因为   操作系统尚未要求退回。

  4.   
  5. R计算对象占用的内存,但可能存在间隙   删除的对象。此问题称为内存碎片。

  6.   

有关详细信息,请参阅有关Memory

的部分