我想增加(或减少) R 可用的内存量。实现这一目标的方法是什么?
来自:
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 提示符下键入来获得
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)。
round(memory.limit()/2^20, 2)
如果可以的话,MicrosoftWindows 接受来自进程的任何内存请求。
可以提供给进程的内存没有限制,除了虚拟内存大小。
对于任何进程,无论运行多少应用程序,32位系统中的虚拟内存大小都是4GB。在32位系统中,任何进程都可以分配多达4GB 的内存。
实际上,Windows 根据进程请求和分页文件机制自动分配 RAM 或页文件中分配的内存的某些部分。
但是另一个限制是分页文件的大小。如果分页文件较小,则无法分配较大的内存。您可以根据 微软增加分页文件的大小,以获得更多的内存空间。
使用 memory.limit()。可以使用这个命令 memory.limit(size=2500)增加默认值,其大小为 MB。您需要使用64位才能真正利用这一点。
memory.limit(size=2500)
另一个建议是尽可能使用内存高效的对象: 例如,使用矩阵而不是 data.frame。
要增加分配给 R 的内存量,可以使用 记忆,限制
memory.limit(size = ...)
或者
memory.size(max = ...)
关于争吵
在 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 中的内存使用