R引导时是否有2GB内存使用限制?

R引导时是否有2GB内存使用限制?,r,memory,memory-management,R,Memory,Memory Management,我有以下代码用于在.Rprofile中加载一些数据(这是我的项目文件夹中的一个R脚本,当我切换到使用Rstudio的项目时会自动运行) 但我有16 GB,我可以分配: > memory.limit() [1] 16289 当我的数据没有那么大的时候,我没有任何问题。我最近在data.rda中保存了更多的数据帧,并且我的R会话在启动时突然失败(当我切换到Rstudio中的项目并且执行.Rprofile时): 我怀疑出于某种原因,启动时内存限制设置为2GB?我能改变吗 编辑:添加操作系统和软

我有以下代码用于在.Rprofile中加载一些数据(这是我的项目文件夹中的一个R脚本,当我切换到使用Rstudio的项目时会自动运行)

但我有16 GB,我可以分配:

> memory.limit()
[1] 16289
当我的数据没有那么大的时候,我没有任何问题。我最近在data.rda中保存了更多的数据帧,并且我的R会话在启动时突然失败(当我切换到Rstudio中的项目并且执行.Rprofile时):

我怀疑出于某种原因,启动时内存限制设置为2GB?我能改变吗

编辑:添加操作系统和软件版本

> 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

Edit2:我只是想澄清一下,我可以通过运行代码自己加载数据,我有足够的可用内存,而R进程在我的日常工作中通常使用高达10GB的内存。问题是,当R启动并执行.Rprofile时,显然存在2GB内存限制…

是的,当R启动时,至少在执行用户配置文件(.Rprofile文件和.First()函数时,存在2GB内存限制

证明:

Rprofile的内容: 一旦R启动,
memory.limit的输出

系统通常不允许单个程序或进程分配所有内存。由于答案是特定于系统的,请添加您正在使用的操作系统可能相关:@RHertel:似乎与我无关,我确实有足够的内存(12-14 GB的可用空间…)。我认为这仍然有些相关。您可以使用
memory.limit()
查看可以分配的最大内存。您也可以使用相同的函数来增加最大值。@SamDickson正如您在我的帖子中所看到的,我知道这个函数,它确实表明16GB是可用的。我的系统监视器显示我正在使用16GB中的4GB,因此可用内存不是问题。此外,我能够在R启动后加载数据。我的问题是,当加载代码写入.Rprofile文件时,为什么加载代码似乎达到2GB内存限制。
> memory.limit()
[1] 16289
Error: cannot allocate vector of size 26.2 Mb
In addition: Warning messages:
1: Reached total allocation of 2047Mb: see help(memory.size) 
2: Reached total allocation of 2047Mb: see help(memory.size) 
3: Reached total allocation of 2047Mb: see help(memory.size) 
4: Reached total allocation of 2047Mb: see help(memory.size) 
> 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
message("Available memory when .Rprofile is sourced: ", memory.limit())

.First <- function() {
  message("Available memory when .First() is called: ", memory.limit())
}
Available memory when .Rprofile is sourced: 2047
Available memory when .First() is called: 2047
> memory.limit()
[1] 16289