> so speed of compilation could also matter for large scripts.

Yes, first time scripts are run they're slower, but I discarded those.


> Note that even when Vim script is a bit slower than Lua I'm still 
satisfied.

I wrote my statusline in both lua and vim9, lua is 1.5x-2x faster there. 
Not a huge plugin, but still.
So I expect luajit to be at least a bit faster in most situations.

Anyway, repeating tests in linux I get very different results, btw (very 
close execution times for vim9 and luajit).

neovim:

After setting lines to range:   0.020408
After setting modified lines:   0.094530
888890

----------------------------------------
vim:
----------------------------------------
VimTest1
----------------------------------------
After setting lines to range:   0.024622
After processing loop:          0.097223
888890
----------------------------------------
VimTest2
----------------------------------------
After setting lines to range:   0.027620
After processing loop:          0.055139
After setting modified lines:   0.101768
888890

Il giorno martedì 11 gennaio 2022 alle 17:12:53 UTC+1 Dominique Pelle ha 
scritto:

> Bram Moolenaar <[email protected]> wrote:
> >
> >
> > Gianmaria Bajo wrote:
> >
> > > Even getting/setting lines in one go (as in the lua version) doesn't=20
> > > improve it for me:
> > >
> > > vim9script
> > >
> > > def g:VimTest(): void
> > > var totallen = 0
> > > var start = reltime()
> > > new
> > > setline(1, range(100000))
> > > var lines = getline(1, 100000)
> > > for i in range(100000)
> > > lines[i] = ' ' .. lines[i]
> > > totallen += len(lines[i])
> > > endfor
> > > setline(1, lines)
> > > echom totallen
> > > echom reltimestr(reltime(start))
> > > bwipe!
> > > enddef
> > >
> > > Result:
> > >
> > > :call VimTest()
> > > 888890
> > > 0.330822
> >
> > You are taking it in the wrong direction. The benchmark is for a plugin
> > that would go over the text and make changes here and there, e.g. adjust
> > the indent. That would only change some lines, but to get it do more
> > work for a more reliable measurement the benchmark changes many lines.
> > Changing this to take all lines at once, change them, then set all lines
> > at once, is changing what it is trying to measure.
> >
> > It is no surprise Lua would be faster with list manipulations. Thus if
> > you shift work from interacting with the buffer lines to string
> > manipulations it can be expected that using Lua is faster. In practice
> > plugins do have to manipulate buffer lines, so I rather do more of that
> > to have a representative benchmark.
> >
> > Note that even when Vim script is a bit slower than Lua I'm still
> > satisfied. I expect Lua was already tweaked for performance, Vim9 is
> > still young, there probably is a performance gain if we put some effort
> > into it. If Vim script was ten times slower I would wonder if we are
> > doing something wrong.
>
> The 2 benchmarks in README_VIM9.md (sum and indent) have
> loops with many iterations. So they only benchmark execution time
> of compiled code as opposed to measuring the time to compile
> the script.
>
> I suppose that often, some functions are executed only
> a few times (sometimes only once) and so speed of compilation
> could also matter for large scripts. It's harder to compare
> compilation time between Vim9 and LuaJIT though.
>
> Dominique
>

-- 
-- 
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_use/0ff5fe44-7318-4750-a9dd-93dd4e7f371an%40googlegroups.com.

Reply via email to