我正在为我的数据团队构建一个 Excel 解析器,但在使用电子表格 0.6.5.1 gem 时遇到了一些问题。
在 Ruby 1.9.2 中,Spreadsheet.open 方法的使用会立即跳转到 700m-1.3g 的内存,并无限期地挂在那里,即使在小型(1 张,300 行)工作簿上也是如此。同时,在 Ruby 1.8.7 中,Spreadsheet.open 快速且完美无缺。
现在我在 irb 中做了很多工作,这样我就可以控制我正在使用的环境(rubygems/spreadsheet gem),但我最终需要将此解析器移动到 Rails 3 项目中,所以解决 1.8.7 不是一个选项。
没有关于此问题的文档,甚至没有其他人遇到此问题的证据。每当我中止 Spreadsheet.open 调用时,每次都会留下这个错误溢出:
gems/spreadsheet-0.6.5.1/lib/spreadsheet/worksheet.rb:181:in 'call'
我想避免猴子修补这个,或者直接潜入 gem 来破解一个分辨率。有没有其他人遇到过这个问题?或者类似的东西?