【问题标题】:R: failure to allocate memory, how to determine how much memory was requestedR:分配内存失败,如何判断申请了多少内存
【发布时间】:2023-04-07 13:18:02
【问题描述】:

我正在使用一个包,该包的算法在某些时候,如果你给它太多输入,就会耗尽内存并给出这个警告:

warning message system call failed cannot allocate memory

有没有办法确定请求了多少内存但无法分配?我正在尝试确定是否应该/可以扩大到更大的盒子。

谢谢。

【问题讨论】:

  • pryr::object_size
  • @AlexW 因为失败的分配深埋在一个包中,我宁愿不必修改那个包。另外如果内存没有分配,会不会没有对象可以获取大小?
  • 您的问题是“我如何确定请求分配多少内存”。我回答了那个问题。如果您有其他问题,请修改您的帖子并提供可重现的示例。
  • (A) 我看不出pryr::object_size(或等效的)对因内存不足而未分配的对象有何帮助。所以问题仍然存在。 (B) 如果可能的话,在问题中添加一个可重复的例子不会有什么坏处。如果它是您正在使用的 CRAN 库,那么提供一个类似崩溃的简短代码示例可能会有所帮助。 (C) 您可以尝试使用browser() 单步执行代码吗?然后您可以检查错误之前的系统状态,并查看代码在崩溃时正在做什么。这可能会让你知道正在寻找多少内存。
  • 其实他在帖子中的问题更多是关于一个未能执行的请求。问题标题并未包含所有可以理解的信息。

标签: r memory system


【解决方案1】:

简单的搜索发现了这些可能的路线:

  1. 如果你使用的是 linux,try to change swap

  2. 如果您使用的是 RStudio,try R console

  3. 如果可能的话,try with different system configurations。我认为尝试不同的 Amazon AWS 实例不会花费太多。

  4. this question 中尝试建议。特别是options(error=recover)debugonce

正如其他人所建议的那样,如果没有可重现的示例,就很难准确回答您的问题。

【讨论】:

    猜你喜欢
    • 2012-08-28
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    • 2011-01-03
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多