【发布时间】:2012-07-26 08:03:33
【问题描述】:
我发现了以下行为。假设我创建了以下多维数组:
spam = array(runif(96*48*60*360), dim = c(96,48,60,360))
R 应该为此使用多少内存是完全可以预测的,即 (96*48*60*360) * 4 字节 = 759.4 Mbyte。使用lsos 函数很好地证实了这一点(参见this post):
> lsos()
Type Size PrettySize Rows Columns
spam array 796262520 759.4 Mb 96 48
lsos function 776 776 bytes NA NA
R 作为一个进程但是使用更多的内存,大约是大小的两倍:
$ top | grep rsession
82:17628 hiemstra 20 0 1614m **1.5g** 8996 S 0.3 40.4 0:04.85 rsession
为什么 R 会这样做?我假设分配额外的保留内存是为了让 R 可以更快地访问它?有什么想法吗?
【问题讨论】:
标签: r memory-management