全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
35485 16
2015-04-25
运行R程序会出现以下提示:
Error: cannot allocate vector of size 762.9 Mb
In addition: Warning messages:
1: Reached total allocation of 1535Mb: see help(memory.size)
请问如何解决?
谢谢!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-4-25 20:16:22
cannot allocate vector就是典型的数据太大读不了
方法有三
一、升级硬件
二、改进算法
三、修改操作系统分配给R的内存上限, memory.size(T)查看已分配内存 memory.size(F)查看已使用内存  memory.limit()查看内存上限  memory.limit(2000)可以设置上限为2000MB 前提是你有改它的权限
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-4-26 21:59:41
katymeala 发表于 2015-4-25 20:16
cannot allocate vector就是典型的数据太大读不了
方法有三
一、升级硬件
你好,感谢你的解答,以下是我使用这几个函数的结果:
> memory.limit()
[1] 1535
> memory.size(T)
[1] 16.38
> memory.size(F)
[1] 14.52
> memory.limit(2000)
[1] 2000
既然我的系统可以分配给R1535M的内存,为什么762.9M的向量却没法处理呢,我使用了上限2000分配还是不行,不知道是否有什么好办法。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-4-26 22:12:35
我把内存上限设置成4G,似乎系统也显示成功了:
memory.limit()
[1] 4000
> memory.size(T)
[1] 1212.12
> memory.size(F)
[1] 1140.41
但实际上已分配的是1212.12,已经使用了1140.41,因此剩下的不足以处理762.9的向量,所以你提到了修改权限的问题,实际上R并没有得到4000的内存,请问如何获取修改权限呢?请指示?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-4-26 22:33:10
4G内存太少了,加内存吧。8G起步,16G还好。用数据库更好
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-4-26 23:19:13
harlon1976 发表于 2015-4-26 22:12
我把内存上限设置成4G,似乎系统也显示成功了:
memory.limit()
[1] 4000
memory.limit(2000)可以分配成功,如果执行了这个命令,还是内存不足,那就是系统答应了你分配2000的请求,但是它拿不出那么多可分配的,是硬件问题,不是指令问题
建议改进算法,比如利用内置循环函数而不是手动循环,把所有dataframe换成matrix等等
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群