假设您在运行Windows 10版本10.0.17134 Build 17134的基于x64的PC上运行Rx64 3.5.1.系统具有16 GB的物理内存.处理器是Intel Core i7-8700K CPU @ 3.70GHz,3696 Mhz,6个核心,12个逻辑处理器.
现在让.
memory.limit(99999)
test1<-rep((1001:2000)/100,60)
Ta<-outer(-test1,test1,"+")
Run Code Online (Sandbox Code Playgroud)
"错误:无法分配大小为26.8 Gb的矢量"
gc()
Tm<-outer(-test1,test1,"*")
length(Tm)
[1] 3.6e+09
Run Code Online (Sandbox Code Playgroud)
为什么会这样?注意,rep中使用的数字60可以减少,以便使用外部和增加成功进行加法和乘法,以便两者均等地失败.为什么存在这种不均匀的阈值,为什么在这种意义上增加使用的内存多于乘法呢?