【发布时间】:2015-12-14 10:22:38
【问题描述】:
当 R 启动时,内存限制(由 memory.limit 返回)设置为 2GB,而与计算机上的可用内存无关。 (I found that out recently)。我想在启动过程中的某个时刻,这个限制被设置为实际可用的内存。
这可以通过在启动时获取的 .Rprofile 文件中打印 memory.limit() 来查看。它打印“2047”。另一方面,当 R 启动并在控制台中输入 memory.limit() 时,我得到“16289”。
我使用自定义 .Rprofile 文件,并且在启动期间我需要访问超过 2GB 的空间。
如何覆盖此限制?
我目前的解决方法是使用memory.limit(size=16289) 在.Rprofile 中自己设置限制,但是每次在具有不同RAM 量的计算机上工作时我都必须对其进行编辑,这种情况经常发生。
是否有我可以更改的选项、我可以编辑的 .ini 文件,或者我可以做些什么?
操作系统和 R 版本:
> sessionInfo()
R version 3.2.2 (2015-08-14)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
编辑:这不是重复的,至少不是建议问题的重复。这与管理可用内存无关!我有 16GB 的内存,memory.limit() 表明我的限制确实是 16GB。
这一切都始于我收到“已达到 2GB 内存分配”的警告(暗示我有 2GB 内存限制)。经查,似乎是indeed R limits the memory at 2GB during the startup process。
我想在 R 启动时自动加载我的数据,为此我在 .Rprofile 中有一个小的加载脚本。我加载了超过 2GB 的数据,因此我需要访问我的 16GB。我的问题是关于实现这一点。这与提议的副本没有任何共同点,除了关键字......
【问题讨论】:
-
使用的是哪个 R 版本和操作系统?
-
@Vova 不是重复的,问题是完全不同的 IMO。我确实有足够的内存,而且我没有做任何需要内存的操作。我的问题是 R 启动时内存限制设置为 2GB。
-
我必须说,我对“接近”投票的数量感到惊讶......所谓的重复问题是关于某人达到其 PC 上的内存限制。 “解决方案”是优化代码以减少内存。 ---- 我的问题是,在 R 启动期间,内存限制被人为设置得较低,因此阻止我从 .Rprofile 文件中自动加载超过 2GB 的数据。将我推荐给另一篇文章是荒谬的:一旦 R 启动,我就可以加载数据,因为我有足够的内存。我的问题是关于启动时2GB的内存限制,这是完全不同的。
-
写到“重复”的问题:我的记忆不是“碎片化的”,因为 R 刚刚启动并且全局环境是空的。 R 不会与其他程序“竞争”,因为我有超过 10GB 的可用 RAM。我的问题是关于 R 内存限制并没有使它成为一个骗局。