diff options
author | Bram Moolenaar <Bram@vim.org> | 2014-11-05 14:27:36 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2014-11-05 14:27:36 +0100 |
commit | fda3729a064d6466cec6ac83dd1bfcc437ea4cc9 (patch) | |
tree | 7642145192f29ec2050ac8e9cc890ddc353615af /src/testdir/bench_re_freeze.vim | |
parent | 4f7e821f26019c14f4470deb0867c919548d5cd5 (diff) |
updated for version 7.4.497v7.4.497
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)
Diffstat (limited to 'src/testdir/bench_re_freeze.vim')
-rw-r--r-- | src/testdir/bench_re_freeze.vim | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/testdir/bench_re_freeze.vim b/src/testdir/bench_re_freeze.vim new file mode 100644 index 0000000000..ee8443825f --- /dev/null +++ b/src/testdir/bench_re_freeze.vim @@ -0,0 +1,13 @@ +"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 |