如何在 RStudio(桌面版)中设置内存限制?
Posted
技术标签:
【中文标题】如何在 RStudio(桌面版)中设置内存限制?【英文标题】:How to set memory limit in RStudio (desktop version)? 【发布时间】:2014-07-19 22:48:01 【问题描述】:我知道已经有一个类似的问题here,但答案已经过时了。我在互联网上找到的信息是指 RStudio Server 而不是 Desktop。
我的 Windows 7 x64 电脑上的资源有限。我已经设置了环境变量 R_MAX_MEM_SIZE,它被 RGui 接受(如键入 memory_limit()
时所见)。但是,RStudio(版本 0.98.507)会忽略此设置,并且仍然使用我计算机的整个内存,这有时会导致整个系统崩溃。在 RStudio Desktop 中运行 R 时,如何限制 R 使用的内存量?
【问题讨论】:
你可以使用 cmd 进入 R bin 目录 C:\Program Files\RStudio\bin 然后启动 rstudio.exe --max-mem-size=4GB @rischan 除了每次启动 RStudio 时都需要这样做之外,这与 pops 建议的内容不同吗?这会导致 R 会话或整个 RStudio 的崩溃/错误吗? @hadley 最近几天我遇到了几次操作系统崩溃,因为当我在 RStudio 中运行特定代码时,R 占用了整个 RAM。在设置环境变量并在 RGui 中执行相同的代码后,R 停止并显示错误消息“无法分配向量...”。但是,如果我在 RStudio 中运行完全相同的代码,则不会出现此消息,而是操作系统停止反应。 @hadley 完成:support.rstudio.com/hc/communities/public/questions/… 只是为了让您知道,support.rstudio.com 于 2014/06/10:“我们已将其列入我们要调查的事项清单,并希望尽快找到解决方案” - 2016/ 08/01,RStudio 仍然没有拾取 R_MAX_MEM_SIZE。 【参考方案1】:如果您的问题是如何防止 R 在达到内存限制时崩溃,而不是弄清楚为什么 memory_limit()
不起作用,这里有几个选项。
如果memory_limit()
不允许您限制 Windows 上的内存:
Sys.getenv("R_ARCH")
来完成。
使用 rm(list=ls())
清理您的环境,以删除以前存储的数据集和函数。
关闭 Rstudio 和 R。按 WINDOWS + R
,这将打开一个 Run
窗口。写cmd
并按enter
。导航到此目录C:\Program Files\RStudio\bin
,然后使用cd
启动rstudio.exe
。您可能需要根据您的 RStudio 文件夹在计算机上的位置进行调整。然后写--max-mem-size=4GB
并按回车键。每次要启动 R 会话时都需要重复此操作。这可能不适用于每台计算机。
大多数计算机可以处理比以前安装的更多的内存。检查您的计算机可以处理的最大内存容量,并考虑购买更多物理 RAM。
按Ctrl+Alt+Del
并选择任务管理器。在Processes
下,检查哪个程序正在使用大量内存,以及您是否可以安全地结束它们。 Windows 用户往往会积累不必要的程序。
【讨论】:
【参考方案2】:这适用于我的电脑:
# Check memory limit
memory.limit()
# Change memory limit
memory.limit(size = 15000)
【讨论】:
【参考方案3】:如果我没记错的话,Windows 的默认限制是 4GB。您可以使用@rischan 提出的 cmd,但稍作修改:rstudio.exe --max-mem-size=8GB。
有关信息,请不要忘记在开始执行新脚本时清理缓存。为此,请使用以下 cmd :
rm(list=ls()) --> for clean your environment
gc() --> for launch the ''garbage collection''
【讨论】:
以上是关于如何在 RStudio(桌面版)中设置内存限制?的主要内容,如果未能解决你的问题,请参考以下文章
如何在.htaccess文件中设置PHP最大执行时间和脚本内存限制