增加(或减少) R 进程可用的内存

我想增加(或减少) R 可用的内存量。实现这一目标的方法是什么?

290294 次浏览
  1. 多买点羊肉
  2. 切换到64位操作系统。与点1结合。

来自:

Http://gking.harvard.edu/zelig/docs/how_do_i2.html (镜子)

Windows 用户可能会得到 R 已经没有内存了。

如果您已经安装了 R,并且 随后,你可以安装更多内存 必须重新安装 R 才能使用 额外容量的优势。

你亦可设定 手动关闭 R, 然后右键点击你的 R 程序 图标(在您的桌面或在 您的程序目录)。选择 “属性”,然后选择 “捷径”标签,查找 “目标”字段和结束后 引用 R 的位置 可执行,添加

—— max-mem-size = 500M

下图所示 将此值增加到2GB 或 物理 RAM 的最大数量 已安装。

如果你得到了 R 不能得到的错误 分配一个长度为 x 的向量,关闭 并将以下行添加到 “目标”栏:

—— max-vsize = 500M

或者合适的时候,你可以随时 检查 R 有多少内存 可通过在 R 提示符下键入来获得

memory.limit()

它为您提供了以 MB 为单位的可用内存量。在 R 的早期版本中,您需要使用: round(memory.limit()/2^20, 2)

如果可以的话,MicrosoftWindows 接受来自进程的任何内存请求。

可以提供给进程的内存没有限制,除了虚拟内存大小。

对于任何进程,无论运行多少应用程序,32位系统中的虚拟内存大小都是4GB。在32位系统中,任何进程都可以分配多达4GB 的内存。

实际上,Windows 根据进程请求和分页文件机制自动分配 RAM 或页文件中分配的内存的某些部分。

但是另一个限制是分页文件的大小。如果分页文件较小,则无法分配较大的内存。您可以根据 微软增加分页文件的大小,以获得更多的内存空间。

使用 memory.limit()。可以使用这个命令 memory.limit(size=2500)增加默认值,其大小为 MB。您需要使用64位才能真正利用这一点。

另一个建议是尽可能使用内存高效的对象: 例如,使用矩阵而不是 data.frame。

要增加分配给 R 的内存量,可以使用 记忆,限制

memory.limit(size = ...)

或者

memory.size(max = ...)

关于争吵

  • 大小 -数值。如果 NA 报告内存限制,则请求一个新的限制,单位为 Mb。在32位 R 构建上只允许最高为4095的值,但请参阅“详细信息”。
  • Max -逻辑。如果为 TRUE,则报告从操作系统获得的最大内存量; 如果为 FALSE,则报告当前使用的内存量; 如果为 NA,则报告内存限制。

在 RStudio 中,增加:

file.edit(file.path("~", ".Rprofile"))

然后输入。 Rprofile 键入这个并保存

invisible(utils::memory.limit(size = 60000))

减少: 打开,侧写

invisible(utils::memory.limit(size = 30000))

保存并重新启动 RStudio。

对于 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

你也可以在这里找到更多的信息: 在 Linux 下限制 R 中的内存使用