首先,我必须说,我一直在寻找一个解决我的问题的方法,开始这个线程是一个绝望的尝试。所有的信息(以及它们各自的解决方案)都涉及到当运行几个迭代的代码或处理沉重的文件(> 500Mb)时的内存泄漏。但这不是我的情况。
我的代码-在错误被触发之前-看起来像这样:
library(tidyverse)
library(lubridate)
library(XLConnect)
library(tibble)
library(rJava)
path <- "file_path/file_name.xlsx"
wb <- loadWorkbook(path)
字符串
这将触发以下消息:
错误:OutOfMemoryError(Java):Java堆空间
- file * 的大小只有7Mb。如果我尝试上传一个更小的文件(500Kb),我不会得到任何错误。我已经尝试使用
options(java.parameters = "-Xmx8g")
为Java内存设置更高的值,但它没有解决问题。
垃圾收集器看起来像这样:
used (Mb) gc trigger (Mb) max used (Mb)
型
Ncells 1157125 61.8 2240345 119.7 2240345 119.7
Vcell 1793273 13.7 8388608 64.0 2904659 22.2
有没有人知道是什么原因导致了这个问题?我的环境是完全干净的,我不断地重新启动我的Rstudio会话。该文件只是一个. xlsx文档,我需要加载它以便用来自一个框架的数据填充列。
1条答案
按热度按时间4c8rllxm1#
在初始化JVM之前设置Java选项是很重要的,因此在加载任何与Java相关的包之前也是如此。所以你应该:
字符串