स्प्रेडशीट जेम रूबी 1.9.2 पर असहनीय रूप से धीमा - रूबी, रूबी-ऑन-रेल -3, स्प्रेडशीट, एक्सएलएस, स्प्रेडशीट-मणि

मैं अपनी डेटा टीम के लिए एक्सेल पार्सर का निर्माण कर रहा हूं, और मैंने स्प्रेडशीट 0.6.5.1 मणि के साथ किसी समस्या के कुछ भाग में भाग लिया है।

In Ruby 1.9.2, use of the Spreadsheet.खुली विधि तुरंत 700m-1.3g स्मृति तक हो जाती है, और यहां तक ​​कि छोटी (1 शीट, 300 पंक्ति) कार्यपुस्तिकाओं पर भी अनिश्चित काल तक लटकती है। इस बीच, रूबी 1.8.7 में, स्प्रेडशीट.ओपेन स्नैपी और दोषपूर्ण है।

अभी मैं irb में अपने बहुत सारे काम कर रहा हूँ, तोकि मैं पर्यावरण को नियंत्रित कर सकता हूं जिसका उपयोग मैं मूलभूत (रूबीजम्स / स्प्रेडशीट मणि) के लिए कर रहा हूं, लेकिन मुझे अंततः इस पार्सर को रेल 3 प्रोजेक्ट में ले जाने की आवश्यकता है, इसलिए 1.8.7 के साथ बसने का विकल्प नहीं है।

इस समस्या का सामना करने वाले अन्य लोगों के इस मुद्दे या यहां तक ​​कि साक्ष्य पर कोई दस्तावेज नहीं है। जब भी मैं स्प्रेडशीट.ऑपेन कॉल को रोकता हूं, तो मुझे हर बार इस त्रुटि के साथ छोड़ दिया जाता है:

रत्न / स्प्रेडशीट-0.6.5.1 / lib / स्प्रेडशीट / वर्कशीट.आरबी: 181: "कॉल" में

मैं एक बंदरगाह को पकड़ने के लिए सीधे मणि में डाइविंग से छुटकारा पाने से बचाना चाहता हूं। क्या किसी और ने इस समस्या का अनुभव किया है? या कुछ भी समान है?

उत्तर:

जवाब के लिए 2 № 1

आपको जीसी ट्विक करें और देखें कि क्या यह कुछ भी हल करता है:

आरईई के लिए:

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.एक्स, वाईएमएमवी पर काम करना चाहिए।

इन tweaks के साथ, स्प्रेडशीट मणि का उपयोग कर एक 25k लाइन एक्सेल निर्यात हमारे लिए 10 + मिनट से ~ 2 मिनट तक चला गया।


जवाब के लिए 0 № 2

दो विचार:


जवाब के लिए 0 № 3

एक बार जब आप आईआरबी का उपयोग नहीं कर रहे हैं तो यह ठीक काम करेगा

आईआरबी में परीक्षण करते समय इसका उपयोग करें:

2.1.0: 003> पुस्तक = स्प्रेडशीट.ओपेन "myfile.xls"; शून्य

=> शून्य


संबंधित सवाल
सबसे लोकप्रिय