首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当数组计数增加时,得到这个错误“无法分配内存(NoMemoryError) zlib(finalizer):流被过早释放”。

当数组计数增加时,得到这个错误“无法分配内存(NoMemoryError) zlib(finalizer):流被过早释放”。
EN

Stack Overflow用户
提问于 2020-08-24 19:53:12
回答 1查看 79关注 0票数 1

我遇到了一个奇怪的错误

代码语言:javascript
复制
failed to allocate memory (NoMemoryError)
zlib(finalizer): the stream was freed prematurely.

当我尝试这样做时,它与第一次迭代进行得很好

代码语言:javascript
复制
array.each_slice(40000) do |result|
   #writing this result array into the excel
end

但当第二次迭代进行时,就会出现上面提到的错误。这里有什么问题?有人能帮我一下吗?

如果计数为50000,则在第一次迭代中也会出现同样的问题。

EN

回答 1

Stack Overflow用户

发布于 2020-08-24 21:27:32

嗯,正如错误所说,您可能正在耗尽内存。

也许可以尝试在10_000上迭代1000个批次

你最好创建一个文件并写入它,而不是在memory Array中创建一个巨型文件。请注意,只有当您的硬件支持时,写入文件才是最佳的,您可能/可能不具有与生产服务器上的MacBook相同的硬件。所以你可能会想要检查一下。

此外,如果这是每5000条记录的后台工作,那么调用GC.start也不是一个坏主意。

最后,使用类似memory profiler的命令检查内存分配

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63560519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档