楼主: harlon1976
35672 16

[程序分享] 关于内存的问题 [推广有奖]

  • 2关注
  • 27粉丝

版主

院士

54%

还不是VIP/贵宾

-

威望
1
论坛币
33781 个
通用积分
135.1232
学术水平
25 点
热心指数
39 点
信用等级
17 点
经验
59249 点
帖子
1928
精华
0
在线时间
4352 小时
注册时间
2005-8-27
最后登录
2025-12-9

楼主
harlon1976 发表于 2015-4-25 17:05:25 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
运行R程序会出现以下提示:
Error: cannot allocate vector of size 762.9 Mb
In addition: Warning messages:
1: Reached total allocation of 1535Mb: see help(memory.size)
请问如何解决?
谢谢!

二维码

扫码加我 拉你入群

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

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

关键词:ALLOCATION Location messages addition Message allocation addition cannot Error 程序

沙发
katymeala 发表于 2015-4-25 20:16:22
cannot allocate vector就是典型的数据太大读不了
方法有三
一、升级硬件
二、改进算法
三、修改操作系统分配给R的内存上限, memory.size(T)查看已分配内存 memory.size(F)查看已使用内存  memory.limit()查看内存上限  memory.limit(2000)可以设置上限为2000MB 前提是你有改它的权限
已有 2 人评分经验 论坛币 收起 理由
李会超 + 80 + 20 热心帮助其他会员
admin_kefu + 20 热心帮助其他会员

总评分: 经验 + 80  论坛币 + 40   查看全部评分

藤椅
harlon1976 发表于 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分配还是不行,不知道是否有什么好办法。

板凳
harlon1976 发表于 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的内存,请问如何获取修改权限呢?请指示?

报纸
nuomin 发表于 2015-4-26 22:33:10
4G内存太少了,加内存吧。8G起步,16G还好。用数据库更好

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

7
harlon1976 发表于 2015-4-27 08:10:00
谢谢两位好心人的指导,其实数据已经是放在矩阵中了,看来要加内存了!

8
harlon1976 发表于 2015-4-27 08:17:48
我刚才在64位机上运行了,可以解决了,再次谢谢两位!

9
tyaer 发表于 2015-11-3 09:57:01
有讨论很好

10
wwqiao 发表于 2016-9-8 20:40:17
楼主你的数据是多少行的,多少个属性。我的csv数据不到3万行,23个属性,在32和64位的软件中都读不进去。数据文件只有不到6M,怎么读到R语言里面提示 无法分配6.2G的矢量。。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-21 17:35