load.vim (723B)
1 " Also used by: test/functional/testnvim.lua 2 3 function! s:load_factor() abort 4 let timeout = 200 5 let times = [] 6 7 for _ in range(5) 8 let g:val = 0 9 let start = reltime() 10 call timer_start(timeout, {-> nvim_set_var('val', 1)}) 11 while 1 12 sleep 10m 13 if g:val == 1 14 let g:waited_in_ms = float2nr(reltimefloat(reltime(start)) * 1000) 15 break 16 endif 17 endwhile 18 call insert(times, g:waited_in_ms, 0) 19 endfor 20 21 let longest = max(times) 22 let factor = (longest + 50.0) / timeout 23 24 return factor 25 endfunction 26 27 " Compute load factor only once. 28 let g:test_load_factor = s:load_factor() 29 30 function! LoadAdjust(num) abort 31 return float2nr(ceil(a:num * g:test_load_factor)) 32 endfunction