इस प्रकार मैं एक पार्सर लिखा है Exception in thread "main" java.lang.StackOverflowError
(मैं भी एक BufferedReader
में लपेटकर की कोशिश की है), लेकिन मैं पहली बार इतनी तरह एक स्ट्रिंग में फ़ाइल को पढ़ने के द्वारा इसे ठीक कर सकते हैं:स्काला पार्सर Combinator, बड़ी फाइल मुद्दा
val input = io.Source.fromFile("path/to/file")
val str = input.mkString
input.close()
val index = parseAll(invertedIndex, str).get
यह मामला क्यों है? क्या स्ट्रिंग के रूप में इसे पढ़ने से बचने का कोई तरीका है, यह एक अपशिष्ट लगता है?
अपने ढेर के वर्तमान आकार क्या है, और कितना बड़ा है कि आप अपने ढेर StackOverflowException से बचने के लिए बनाने के लिए है? स्ट्रिंग संस्करण ओवरफ़्लो बनाने के लिए स्टैक कितना छोटा होना चाहिए? (आप अपना स्टैक 16 एमबी पर लॉन्च करके सेट कर सकते हैं: 'स्कैला-जे-एक्सएसएस 16 एम') – DaoWen
मैं सिर्फ डिफ़ॉल्ट स्टैक आकार का उपयोग कर रहा था, लेकिन जब मैंने इसे 16 एम पर सेट किया था तो प्रोग्राम अभी भी 30 मिनट बाद चल रहा था ... – Robert
स्कैला 2.9.2 बग से संबंधित हो सकता है [एसआई -6520] (https://issues.scala-lang.org/browse/SI-6520)। –