मैं एक dimacs पर instaparse उपयोग करने के लिए कोशिश कर रहा हूँ आकार में कम से कम 700k फ़ाइल, निम्नलिखित व्याकरणइंस्टैपर्स को गति देने का कोई तरीका?
<file>=<comment*> <problem?> clause+
comment=#'c.*'
problem=#'p\s+cnf\s+\d+\s+\d+\s*'
clause=literal* <'0'>
<literal>=#'[1-9]\d*'|#'-\d+'
तो
(def parser
(insta/parser (clojure.java.io/resource "dimacs.bnf") :auto-whitespace :standard))
...
(time (parser (slurp filename)))
तरह बुला के साथ और यह एक सौ सेकंड के बारे में ले रहा है। मैं अपेक्षा की तुलना में धीमी गति के तीन आदेश धीमा कर रहा था। क्या इसे गति देने का कोई तरीका है, व्याकरण को बदलने का कोई तरीका या कुछ विकल्प जो मुझे याद आ रहा है?