Mercurial > vim
comparison src/testdir/bench_re_freeze.vim @ 6328:adfbffe1e642 v7.4.497
updated for version 7.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)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Wed, 05 Nov 2014 14:27:36 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
6327:896d12bf73c1 | 6328:adfbffe1e642 |
---|---|
1 "Test for benchmarking the RE engine | |
2 | |
3 so small.vim | |
4 if !has("reltime") | finish | endif | |
5 func! Measure(file, pattern, arg) | |
6 for re in range(3) | |
7 let sstart=reltime() | |
8 let cmd=printf("../vim -u NONE -N --cmd ':set re=%d'". | |
9 \ " -c 'call search(\"%s\", \"\", \"\", 10000)' -c ':q!' %s", re, escape(a:pattern, '\\'), empty(a:arg) ? '' : a:arg) | |
10 call system(cmd. ' '. a:file) | |
11 $put =printf('file: %s, re: %d, time: %s', a:file, re, reltimestr(reltime(sstart))) | |
12 endfor | |
13 endfunc |