【发布时间】: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()单步执行代码吗?然后您可以检查错误之前的系统状态,并查看代码在崩溃时正在做什么。这可能会让你知道正在寻找多少内存。 -
其实他在帖子中的问题更多是关于一个未能执行的请求。问题标题并未包含所有可以理解的信息。