データチーム用のExcelパーサを作成していますが、Spreadsheet 0.6.5.1 gemで問題が発生しました。Ruby 1.9.2でひじょうに遅い宝石
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呼び出しを中止するときはいつでも、私はこのエラー流出とするたびに左にしています:
宝石/スプレッドシート-0.6.5.1/libに/スプレッドシート/ worksheet.rb:181: 'コール'
で
私はこれにパッチを当てるのを避けたいですし、解像度をハックアウトするために宝石に直接潜ってください。他の誰かがこの問題を経験しましたか?それとも似たようなもの?
プロファイリングリンクをありがとうございます。私はすぐにそこでリードを使用して調査します。 – ironchamber