我想增加(或减少)R 可用的内存量。实现此目的的方法是什么?
从:
http://gking.harvard.edu/zelig/docs/How_do_I2.html (mirror)
Windows 用户可能会收到 R 内存不足的错误。如果您已经安装了 R 并随后安装了更多 RAM,则可能必须重新安装 R 才能利用额外的容量。您也可以手动设置可用内存量。关闭 R,然后右键单击 R 程序图标(桌面或程序目录中的图标)。选择“属性”,然后选择“快捷方式”选项卡。查找 ``Target'' 字段,在 R 可执行文件位置的右引号之后,添加 --max-mem-size=500M,如下图所示。您可以将此值增加到 2GB 或您已安装的最大物理 RAM 量。如果您收到 R 无法分配长度为 x 的向量的错误,请关闭 R 并将以下行添加到“目标”字段:--max-vsize=500M 或酌情。您始终可以通过在 R 提示符下键入来查看 R 有多少可用内存
memory.limit()
它为您提供了以 MB 为单位的可用内存量。在以前的 R 版本中,您需要使用:round(memory.limit()/2^20, 2)
。
使用 memory.limit()
。您可以使用此命令 memory.limit(size=2500)
增加默认值,其中大小以 MB 为单位。您需要使用 64 位才能真正利用这一点。
另一个建议是尽可能使用内存高效的对象:例如,使用矩阵而不是 data.frame。
对于 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
如果可以,Microsoft Windows 会接受来自进程的任何内存请求。
可以提供给进程的内存没有限制,除了虚拟内存大小。
在 32 位系统中,任何进程的虚拟内存大小为 4GB,无论您运行多少应用程序。在 32 位系统中,任何进程最多可以分配 4GB 内存。
实际上,Windows 会根据进程请求和分页文件机制自动从 RAM 或页面文件中分配部分已分配内存。
但另一个限制是分页文件的大小。如果你有一个小的页面文件,你不能分配大的内存。您可以根据 Microsoft 增加分页文件的大小以获得更多内存空间。
要增加分配给 R 的内存量,您可以使用 memory.limit
memory.limit(size = ...)
或者
memory.size(max = ...)
关于论点
大小 - 数字。如果 NA 报告内存限制,否则请求新的限制,以 Mb 为单位。在 32 位 R 版本上只允许使用高达 4095 的值,但请参阅“详细信息”。
最大 - 合乎逻辑。如果为 TRUE,则报告从操作系统获得的最大内存量,如果为 FALSE,则为当前正在使用的内存量,如果为 NA,则为内存限制。
购买更多内存 切换到 64 位操作系统。结合第 1 点。
在 RStudio 中,增加:
file.edit(file.path("~", ".Rprofile"))
然后在 .Rprofile 中输入并保存
invisible(utils::memory.limit(size = 60000))
减少:打开 .Rprofile
invisible(utils::memory.limit(size = 30000))
保存并重新启动 RStudio。
不定期副业成功案例分享