-
-
Notifications
You must be signed in to change notification settings - Fork 2
More sixel renderer optimizations. #13
Description
Hello @jerch,
I don't want to pollute your repos or other active discussion threads with my findings until I can come up with some practical optimization suggestions for your renderer. So I'll put this here.
I've been doing some heavy profiling on my SixelRenderer since last week. Here are some preliminary results:
- I identified both some bottlenecks in my code and the performance sensitive critical parts of sixel rendering in general.
- I achieved some nice progress by some simple tweaks since last week:
- I have managed to sequeze out a steady
42 MiB/s (2.90 secs)(parsing + rendering) on yoursixel-benchanimation, which means ~12 MiB/s gain. for me - There is a small performance penalty associated with displaying the animation due to the gui event handling (latency) of our GUI toolkit, But my SixelViewer app (a small testing and benchmarking app) can display the full
sixel-benchvideo on average38.00 Mib (3.10 secs.). As you can guess, this does not translate 1:1 to final terminal performance, because other variables also effect the vte rendering performance. Still it can achieve slightly higher performance than MLTerm now.
- I have managed to sequeze out a steady
The above improvements are all due to some really simple tricks -one of which I borrowed from you- and the examination of the produced assembly code. I am confident that we can raise the throughput bar even higher, because there is still room for optimization.
In the following days this week I'd like to share my findings (code changes/alterations) with you, which you might find interesting and, hopefully, useful for your c/wasm decoder.
