gpt4 book ai didi

ruby - Spreadsheet Gem 在 Ruby 1.9.2 上慢得令人难以忍受

转载 作者:数据小太阳 更新时间:2023-10-29 08:06:11 27 4
gpt4 key购买 nike

我正在为我的数据团队构建一个 Excel 解析器,我遇到了 Spreadsheet 0.6.5.1 gem 的一些问题。

在 Ruby 1.9.2 中,使用 Spreadsheet.open 方法会立即跳到 700m-1.3g 内存,并无限期地卡在那里,即使是在小型(1 张,300 行)工作簿上也是如此。同时,在 Ruby 1.8.7 中,Spreadsheet.open 是活泼和完美的。

现在我在 irb 中做了很多工作,这样我就可以控制我正在使用的环境,只是基础知识(rubygems/电子表格 gem),但我最终需要将这个解析器移动到 Rails 中3 项目,因此无法选择 1.8.7。

没有关于此问题的文档,甚至没有其他人遇到此问题的证据。每当我中止 Spreadsheet.open 调用时,每次都会出现此错误:

gems/spreadsheet-0.6.5.1/lib/spreadsheet/worksheet.rb:181:in 'call'

我想避免猴子修补这个,或者直接潜入 gem 来破解一个解决方案。还有其他人遇到过这个问题吗?或者类似的东西?

最佳答案

调整你的 GC,看看是否能解决任何问题:

对于 REE:

export RUBY_HEAP_MIN_SLOTS=1000000
export RUBY_HEAP_SLOTS_INCREMENT=1000000
export RUBY_HEAP_SLOTS_GROWTH_FACTOR=1
export RUBY_GC_MALLOC_LIMIT=1000000000
export RUBY_HEAP_FREE_MIN=500000

类似的东西应该适用于 1.9.x,YMMV。

通过这些调整,我们使用电子表格 gem 导出 25,000 行 excel 的时间从 10 多分钟缩短到约 2 分钟。

关于ruby - Spreadsheet Gem 在 Ruby 1.9.2 上慢得令人难以忍受,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4833563/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com