`देख-पीछे` प्रदर्शन


10

मैं कुछ कोड का उपयोग कर (looking-back … (line-beginning-position))। डॉक्टर का looking-backकहना है कि सुस्ती के कारण इस समारोह से बचना बेहतर है। मैं उत्सुक हूँ निम्नलिखित दृष्टिकोण तेजी से होगा?

(save-excursion
  (goto-char (line-beginning-position))
  (looking-at regexp stuff))

यह और तेज होगा। लेकिन यह एक समान कोड नहीं है।
abo-abo

@ अबो-अबो, हाँ, यह नहीं है। लेकिन मेरे मामले में मेरा मानना ​​है कि मैं looking-atआसानी से संस्करण पेश कर सकता हूं । धन्यवाद।
गेराल्ड्स_RU

2
लुक-बैक का सबसे बड़ा प्रदर्शन मुद्दा तब है जब इसकी कोई सीमा नहीं है (या एक सीमा जो बहुत दूर है)। अगर आपको लगता है कि (with-temp-buffer (insert (make-string 10000 ?x)) (looking-back "y"))आप देखेंगे तो यह बहुत तेज़ है। अब ".*y"इसके बजाय regexp को बदलें : यह असहनीय रूप से धीमा है, भले ही यह मानव पाठक के लिए स्पष्ट है कि यह कभी भी मेल नहीं खा सकता है।
यंगफ्रॉग

जवाबों:


9

निश्चित रूप से। आप विशेष रूप से हासिल करेंगे अगर आप सिर्फ char-beforeएक शाब्दिक स्ट्रिंग के लिए पिछड़ा परीक्षण या खोज करना चाहते हैं । और यदि उपयोग करना ही है तो संभव हो तो looking-backएक LIMITतर्क का उपयोग करने का प्रयास करें ।

एक उदाहरण के लिए Emacs Bug # 17284 देखें ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.