1*ad48e6c1SBram Moolenaar" Test for benchmarking the RE engine
2*ad48e6c1SBram Moolenaar
3*ad48e6c1SBram Moolenaarsource check.vim
4*ad48e6c1SBram MoolenaarCheckFeature reltime
5*ad48e6c1SBram Moolenaar
6*ad48e6c1SBram Moolenaarfunc Measure(file, pattern, arg)
7*ad48e6c1SBram Moolenaar  for re in range(3)
8*ad48e6c1SBram Moolenaar    let sstart = reltime()
9*ad48e6c1SBram Moolenaar    let before = ['set re=' .. re]
10*ad48e6c1SBram Moolenaar    let after = ['call search("' .. escape(a:pattern, '\\') .. '", "", "", 10000)']
11*ad48e6c1SBram Moolenaar    let after += ['quit!']
12*ad48e6c1SBram Moolenaar    let args = empty(a:arg) ? '' : a:arg .. ' ' .. a:file
13*ad48e6c1SBram Moolenaar    call RunVim(before, after, args)
14*ad48e6c1SBram Moolenaar    let s = 'file: ' .. a:file .. ', re: ' .. re ..
15*ad48e6c1SBram Moolenaar          \ ', time: ' .. reltimestr(reltime(sstart))
16*ad48e6c1SBram Moolenaar    call writefile([s], 'benchmark.out', "a")
17*ad48e6c1SBram Moolenaar  endfor
18*ad48e6c1SBram Moolenaarendfunc
19*ad48e6c1SBram Moolenaar
20*ad48e6c1SBram Moolenaarfunc Test_Regex_Benchmark()
21*ad48e6c1SBram Moolenaar  call Measure('samples/re.freeze.txt', '\s\+\%#\@<!$', '+5')
22*ad48e6c1SBram Moolenaarendfunc
23*ad48e6c1SBram Moolenaar
24*ad48e6c1SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab
25