我想增加(或减少)R可用的内存量。实现此目的的方法有哪些?
答案 0 :(得分:61)
来自:
http://gking.harvard.edu/zelig/docs/How_do_I2.html(mirror)
Windows用户可能会收到R的错误 已经耗尽内存。
如果你已经安装了R并且 随后安装更多RAM,你可以 必须重新安装R才能拿走 附加容量的优势。
您也可以设置金额 手动可用内存。关闭R, 然后右键单击您的R程序 图标(桌面上或中的图标) 你的程序目录)。选择 ``属性'',然后选择 “快捷方式”标签。寻找 “目标”字段和结束后 报价围绕R的位置 可执行的,添加
- 最大-MEM大小= 500M
如下图所示。你可以 将此值增加到2GB或者 你有多少物理RAM 已安装。
如果你得到R不能的错误 分配长度为x的向量,关闭 退出R并添加以下行 “目标”字段:
- MAX-VSIZE = 500M
或视情况而定。你可以随时 检查R有多少内存 可在R提示符下输入
memory.limit()
,它以MB为单位提供可用内存量。在以前的R版本中,您需要使用:round(memory.limit()/2^20, 2)
。
答案 1 :(得分:44)
使用memory.limit()
。您可以使用此命令memory.limit(size=2500)
增加默认值,其中大小以MB为单位。您需要使用64位才能真正利用这一点。
另一个建议是尽可能使用内存有效的对象:例如,使用矩阵而不是data.frame。
答案 2 :(得分:8)
答案 3 :(得分:6)
如果可以完成,Microsoft Windows会接受来自进程的任何内存请求。
除虚拟内存大小外,可以提供给进程的内存没有限制。
对于任何进程,无论您运行多少个应用程序,虚拟内存大小在32位系统中为4GB。任何进程都可以在32位系统中分配最多4GB内存。
实际上,Windows会根据进程请求和页面文件机制自动从RAM或页面文件中分配已分配内存的某些部分。
但是另一个限制是页面文件的大小。如果您有一个小的分页文件,则无法分配大内存。您可以根据Microsoft增加页面文件的大小以获得更多的内存空间。
答案 4 :(得分:4)
要增加分配给R的内存量,可以使用memory.limit
memory.limit(size = ...)
或
memory.size(max = ...)
关于参数
答案 5 :(得分:1)
在RStudio中,要增加:
file.edit(file.path("~", ".Rprofile"))
然后在.Rprofile中键入并保存
invisible(utils::memory.limit(size = 60000))
要减少: 打开.Rprofile
invisible(utils::memory.limit(size = 30000))
保存并重新启动RStudio。
答案 6 :(得分:0)
对于linux / unix,我可以建议 unix 软件包。
要增加Linux中的内存限制,请执行以下操作:
install.packages("unix")
library(unix)
rlimit_as(1e12) #increases to ~12GB
您还可以使用以下方法检查内存:
rlimit_all()
有关详细信息: https://rdrr.io/cran/unix/man/rlimit.html
您还可以在此处找到更多信息: limiting memory usage in R under linux