R中的内存问题

时间:2013-09-06 15:38:30

标签: r

我知道有很多关于R的记忆问题,但为什么它有时会找到一个对象的空间,但有时候它不能。例如,我在Linux上运行64位R,在具有15GB内存的交互式节点上运行。我的工作区几乎是空的:

 dat <- lsos()
 dat$PrettySize
[1] "87.5 Kb"  "61.8 Kb"  "18.4 Kb"  "9.1 Kb"   "1.8 Kb"   "1.4 Kb"   "48 bytes"

我第一次将CD加载到所需的目录后,我可以加载一个Rdata罚款。 BUt然后有时我需要重新加载它我得到通常:

> load("PATH/matrix.RData")
Error: cannot allocate vector of size 2.9 Gb

如果我可以加载一次,并且有足够的(我假设是连续的)房间,那么发生了什么?我错过了一些明显的东西吗

1 个答案:

答案 0 :(得分:1)

基本答案是内存分配函数需要找到用于构造对象(永久和临时)的连续内存,而其他进程(R进程或其他进程)可能已经分割了可用空间。在加载过程完成之前,R不会删除被覆盖的对象,因此即使您认为可能在旧数据之上放置新数据,也不是。