rhysd / neovim-component

<neovim-editor> WebComponent to embed Neovim to your app with great ease
https://github.com/rhysd/NyaoVim
MIT License
193 stars 18 forks source link

Consider WebGL rendering priority. #2

Closed rhysd closed 8 years ago

rhysd commented 8 years ago

I already implemented all UI events from neovim. Last task is rendering using pixi.js (WebGL). At first, I should check canvas rendering is a bottleneck of this app.

rhysd commented 8 years ago

2015-12-11 1 32 04

rhysd commented 8 years ago

I took profiling while reading a JS file. Neovim renders whole screen to show the file contents with syntax highlight.

Rendering time was from 6830ms to 6860ms so it took 30ms. As the result, most time was taken to decode msgpack value from neovim via stdout. Canvas rendering was performed on Neov...ext at 6854ms (fillText) and Ne...t at 6858ms (fillRect).

As conclusion, it seems that decoding msgpack value is main factor.

rhysd commented 8 years ago

Hmm...

If the way to profile is correct, improving canvas rendering doesn't improve performance so much. It is better to improve decoding msgpack value (neovim client).