Skip to content

Communication performance difference between denops v5 and v6

Λlisue (Ali sue・ありすえ) edited this page Jan 8, 2024 · 1 revision

To find performance improvement from denops v5 to denops v6, operations per milliseconds (OPMS) has measured with denops-benchmark.vim on the following environment.

Key Value
OS macOS Sonoma 14.2.1
CPU Apple M1 Max
Memory 64 GB
Vim 9.1
Neovim 0.9.5
Alacritty 0.13.0 (78fa3d6)

Results

denops.call()

image

Vim (v5) Neovim (v5) Vim (v6) Neovim (v6)
Average 7.6 8 8.2 8.8
Stderr 0 0.1 0 0

Approx. x1.08 improvement is observed for Vim and x1.10 improvement is observed for Neovim.

denops.batch()

image

Vim (v5) Neovim (v5) Vim (v6) Neovim (v6)
Average 218.1 458.7 265.3 824.6
Stderr 1.3 5.5 1.5 8.9

Approx. x1.21 improvement is observed for Vim and x1.80 improvement is observed for Neovim.

Details

v5

Vim
info
  size:   64 bytes
  count:  1000
  n:      100
denops.call()
  sum:     13177 ms
  mean:    131.8 ms
  median:  128.7 ms
  stddev:  11.3
  stderr:  1.1 ms
  opms:    7.6±0.0 ops/ms
  cpms:    488.4±3.2 chars/ms
denops.batch()
  sum:     461 ms
  mean:    4.6 ms
  median:  4.5 ms
  stddev:  0.4
  stderr:  0.0 ms
  opms:    218.1±1.3 ops/ms
  cpms:    13959.0±80.4 chars/ms
Neovim
info
  size:   64 bytes
  count:  1000
  n:      100
denops.call()
  sum:     12637 ms
  mean:    126.4 ms
  median:  122.4 ms
  stddev:  10.2
  stderr:  1.0 ms
  opms:    8.0±0.1 ops/ms
  cpms:    509.0±3.2 chars/ms
denops.batch()
  sum:     225 ms
  mean:    2.3 ms
  median:  2.1 ms
  stddev:  0.7
  stderr:  0.1 ms
  opms:    458.7±5.5 ops/ms
  cpms:    29355.5±350.3 chars/ms

v6

Vim
info
  size:   64 bytes
  count:  1000
  n:      100
denops.call()
  sum:     12189 ms
  mean:    121.9 ms
  median:  120.3 ms
  stddev:  5.8
  stderr:  0.6 ms
  opms:    8.2±0.0 ops/ms
  cpms:    526.2±2.3 chars/ms
denops.batch()
  sum:     379 ms
  mean:    3.8 ms
  median:  3.7 ms
  stddev:  0.3
  stderr:  0.0 ms
  opms:    265.3±1.5 ops/ms
  cpms:    16980.4±98.2 chars/ms
Neovim
info
  size:   64 bytes
  count:  1000
  n:      100
denops.call()
  sum:     11342 ms
  mean:    113.4 ms
  median:  111.5 ms
  stddev:  6.9
  stderr:  0.7 ms
  opms:    8.8±0.0 ops/ms
  cpms:    566.1±3.0 chars/ms
denops.batch()
  sum:     124 ms
  mean:    1.2 ms
  median:  1.2 ms
  stddev:  0.3
  stderr:  0.0 ms
  opms:    824.6±8.9 ops/ms
  cpms:    52774.0±570.2 chars/ms