前段时间跑了一个R脚本,在运行过程中出现先这个报错信息:
Error: cannot allocate vector of size 1.6GB
咦?这是怎么了?内存不足!数据太大!(我的硬件只有8G运行内存)
怎么办怎么办?着急跑脚本呢
01
计策一
加装内存条?虽说是一个办法,但是内存条要在快递途中几天才能送达,于是弃了这个策略。
02
计策二
找内存大的小伙伴帮忙跑,或者自己在服务器上跑?嗯,这个想法不错,but 在服务器上或小伙伴电脑上配置R版本以及依赖的R包有点麻烦(我用的R包依赖的R包有点多…)试了一下,又要装软件又要配R包,好麻烦,好吧,弃了这个方案!
03
计策三:(我最终使用的策略)
你内存不足是吧,那我分配一些虚拟内存给你试试,于是我给系统增加了虚拟内存
https://jingyan.baidu.com/article/0bc808fc6e3ac71bd485b9fa.html
又跑了一遍,还是出现“Error: cannot allocate vector of size 1.6GB”的报错信息。
不应该呀?到底啥毛病?
原来操作系统会给R自动分配内存上限,这个上限一般是你运行内存大小
memory.size(F)查看已使用内存memory.limit()查看内存上限
虽然我分配了虚拟内存,但内存上限依旧是我的内存条内存大小。
于是我就调整了系统分配给R的内存上限
memory.limit(新上限)
例如我一在R命令行中执行命令memory.limit() ,返回值是8138,(即内存上限8138MB);于是我在R命令窗输入memory.limit(18138).之后又执行了一下我要跑的代码。哈哈完美运行
领取专属 10元无门槛券
私享最新 技术干货