Saya punya beberapa kode (looking-back … (line-beginning-position))
. Doc string looking-back
menyatakan bahwa lebih baik untuk menghindari fungsi ini karena kelambatan. Saya ingin tahu apakah pendekatan berikut akan lebih cepat?
(save-excursion
(goto-char (line-beginning-position))
(looking-at regexp stuff))
regular-expressions
performance
save-excursion
Geradlus_RU
sumber
sumber
looking-at
versi dengan mudah. Terima kasih.(with-temp-buffer (insert (make-string 10000 ?x)) (looking-back "y"))
Anda akan melihatnya sangat cepat. Sekarang ganti regexp menjadi".*y"
: itu lambat tak tertahankan meskipun jelas bagi pembaca manusia bahwa ini tidak pernah bisa cocok.Jawaban:
Pastinya. Anda terutama akan mendapatkan jika Anda hanya ingin menguji
char-before
atau mencari string literal. Dan jika Anda harus menggunakanlooking-back
maka coba gunakanLIMIT
argumen, jika memungkinkan.Lihat Emacs bug # 17284 sebagai contoh.
sumber