forked from aniani/vim
Problem: With some regexp patterns the NFA engine uses many states and
becomes very slow. To the user it looks like Vim freezes.
Solution: When the number of states reaches a limit fall back to the old
engine. (Christian Brabandt)
14 lines
487 B
VimL
14 lines
487 B
VimL
"Test for benchmarking the RE engine
|
|
|
|
so small.vim
|
|
if !has("reltime") | finish | endif
|
|
func! Measure(file, pattern, arg)
|
|
for re in range(3)
|
|
let sstart=reltime()
|
|
let cmd=printf("../vim -u NONE -N --cmd ':set re=%d'".
|
|
\ " -c 'call search(\"%s\", \"\", \"\", 10000)' -c ':q!' %s", re, escape(a:pattern, '\\'), empty(a:arg) ? '' : a:arg)
|
|
call system(cmd. ' '. a:file)
|
|
$put =printf('file: %s, re: %d, time: %s', a:file, re, reltimestr(reltime(sstart)))
|
|
endfor
|
|
endfunc
|