gpt4 book ai didi

r - 强制 R(和 Rstudio)在 Windows 上使用虚拟内存

转载 作者:IT王子 更新时间:2023-10-28 23:37:23 25 4
gpt4 key购买 nike

我正在处理大型数据集,并且 R 经常会产生错误,告诉它无法分配该大小的向量或者它没有足够的内存。

我的计算机有 16GB RAM (Windows 10),我正在处理大约 4GB 的数据集,但某些操作需要大量内存,例如将数据集从宽格式转换为长格式。在某些情况下,我可以使用 gc() 来释放一些内存,但很多时候这还不够。

有时我可以将数据集拆分成更小的 block ,但有时我需要同时处理所有表。

我听说 Linux 用户没有这个问题,但是 Windows 呢?

我尝试在 SSD (200GB) 上设置一个大页面文件,但我发现 R 根本不使用它。

我可以看到任务管理器,当内存消耗达到 16GB 时,R 停止工作。页面文件的大小似乎没有任何区别。

如何强制 R 使用页面文件?我需要自己编译一些特殊的标志吗?

PD:我的经验是删除对象 rm() 并稍后使用 gc() 不会恢复所有内存。当我对大型数据集执行操作时,无论我是否使用 gc(),我的计算机在每一步的可用内存都越来越少。

PD2:我希望不会听到诸如“您需要更多 RAM 内存”之类的琐碎解决方案

PD3:我一直在测试,问题只发生在 Rstudio。如果我直接使用 R 效果很好。有谁知道如何在 RStudio 中做到这一点。

最佳答案

为了让它在您每次启动 RStudio 时自动运行,使用 R_MAX_MEM_SIZE 的解决方案将被忽略,无论是作为环境变量创建还是在 .Rprofile 中创建。

写入 memory.limit(64000) 也会被忽略。

正确的方法是在文件.Rprofile中添加以下行

invisible(utils::memory.limit(64000))

或任何你想要的数字。

当然,您需要有一个足够大的页面文件。该数字包括可用 RAM 和可用页面文件空间。

使用页面文件速度较慢,但​​只会在需要时使用。

我发现有些奇怪的是,它只能让你增加要使用的最大内存,但不允许你减少它。

关于r - 强制 R(和 Rstudio)在 Windows 上使用虚拟内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39876328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com