如何在 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 上的内存:

检查您的 Windows 版本是否与您的 R(不是 Rstudio)版本相匹配。即,如果您有 Windows x64bits,请检查 Rstudio 是否在 R x64bits 上运行。这可以使用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最大执行时间和脚本内存限制

如何在.htaccess文件中设置PHP最大执行时间和脚本内存限制

在htaccess中设置内存限制[关闭]

在.htaccess中设置PHP内存限制

如何在日期选择器对话框中设置日期限制

如何在 Flutter 中设置按钮飞溅效果的边界?