Eu tenho algum código usando (looking-back … (line-beginning-position))
. Doc seqüência de looking-back
estados que é melhor evitar essa função por causa da lentidão. Estou curioso se a abordagem a seguir será mais rápida?
(save-excursion
(goto-char (line-beginning-position))
(looking-at regexp stuff))
regular-expressions
performance
save-excursion
Geradlus_RU
fonte
fonte
looking-at
versão facilmente. Obrigado.(with-temp-buffer (insert (make-string 10000 ?x)) (looking-back "y"))
que verá que é muito rápido. Agora mude o regexp para".*y"
: é insuportavelmente lento, mesmo que esteja claro para o leitor humano que isso nunca pode corresponder.Respostas:
Definitivamente. Você ganhará especialmente se quiser apenas testar
char-before
ou procurar uma string literal para trás. E se você deve usarlooking-back
, tente usar umLIMIT
argumento, se possível.Veja o bug # 17284 do Emacs para um exemplo.
fonte