aboutsummaryrefslogtreecommitdiff
path: root/scripts/lintcommit.lua
diff options
context:
space:
mode:
authorbfredl <bjorn.linse@gmail.com>2023-02-08 16:24:33 +0100
committerbfredl <bjorn.linse@gmail.com>2023-02-08 18:02:55 +0100
commit28e26e05bc4cd2bd8e1abc2dd4d720fd9199456d (patch)
treeb3a2935a3b499d07198dfc07d77c8bc85ecfbe8e /scripts/lintcommit.lua
parent625e990976540a0e2d2bccb98deb57d0919d1e89 (diff)
downloadrneovim-28e26e05bc4cd2bd8e1abc2dd4d720fd9199456d.tar.gz
rneovim-28e26e05bc4cd2bd8e1abc2dd4d720fd9199456d.tar.bz2
rneovim-28e26e05bc4cd2bd8e1abc2dd4d720fd9199456d.zip
perf(ui): mitigate redraw latency regression from TUI refactor
While the new RPC encoder/decoder implementation in general should have less overhead than the deleted UIBridge serializer previously used for the TUI, it regresses on redraw latency in one important aspect. The old bridge implementation allowed the TUI to process a previous screen line internally in parallel with the main thread rendering the next one in win_line etc. As printing the escape sequences in highlighted cells has a considerable hit in profiles, this has a substantial effect on redraw latency. The RPC implementation, however, waits with sending any data until either a flush, or the buffer is full. This change lowers the granularity of communication again, using an adjustable threshold counted in number of cell events (discounting long repeats and clearing as maximum a single extra event). The current value is guesstimated to something simple on a reasonable scale, which should be bigger than a single line, but multiple events for a big multi-window screen.
Diffstat (limited to 'scripts/lintcommit.lua')
0 files changed, 0 insertions, 0 deletions