【问题标题】:What are the risks of "Reached total allocation of 31249Mb: see help(memory.size)"“达到 31249Mb 的总分配:请参阅帮助(memory.size)”的风险是什么
【发布时间】:2017-06-29 16:09:42
【问题描述】:

在处理修改大型对象 (5gb) 时,在具有 30gb RAM 的 Windows 机器上,我收到了一个错误 Reached total allocation of 31249Mb: see help(memory.size)。然而,这个过程似乎已经完成,即我得到了一个 看起来 像正确值的文件。通过切割大文件并将其与正确的部分进行比较来检查大文件的每一位是否完全正确的返回非常耗时,但是当我这样做时,返回的对象似乎与我的期望是正确的。

我可以从这个错误中得到什么风险/副作用?我应该检查什么?该过程是否会自动恢复,因为我得到了我期望的回报,还是错误会更加微妙?我的整个分析过程都是使用tidyverse 编写的,这是否意味着我可以依靠 Hadley 等人的良好错误处理,这就是为什么我的过程会发出警告,但也完成了?

注意我没有对 MWE 进行任何尝试,因为每台机器对可用内存的限制都不同,但如果有建议,我很乐意展示这种过程的 MWE。

【问题讨论】:

    标签: r memory-management out-of-memory


    【解决方案1】:

    使用memory.limit(x),其中x 是分配给它的MB 内存量。

    查看链接了解更多详情: Increasing (or decreasing) the memory available to R processes

    【讨论】:

    • 谢谢,但我知道这一点。我的问题特别是关于错误检查是否发生此错误,但返回了一个明显正确处理的对象。此外,我的内存限制似乎设置正确:30Gb 大约 == 31249Mb
    • 抱歉,没有看到问题的第二部分。一些函数在读取和使用它们时极大地扩展了数据,这就是我相信发生在这里的事情。我用过的最大对象是 2.2GB,我没有遇到这个问题。将流程分成块而不是块中的错误检查是否有意义?
    猜你喜欢
    • 2011-07-20
    • 2011-03-14
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 2010-11-19
    • 2017-06-17
    • 2015-04-01
    • 2010-09-20
    相关资源
    最近更新 更多