NatTable Drawing FPS / Performance vs SWT table [message #1744125] |
Thu, 22 September 2016 10:03  |
Eclipse User |
|
|
|
Hello Dirk,
We are using NatTable in an editor in an eclipse RCP application, and for that Use Case it is indispensable because we need all the extra features like layers, grouped rows/columns, various row size, cell formatting and column handling, filter, sort, group by and so on. And the performance hasn't been a problem so far (there is no alternative to compare though; or is there?), or we just have to live with it.
However. We now wanted to move another use case for a table to NatTable, which currently uses JFace TableViewer and SWT Tree; it's a simple 3 columns by 100 to 500 rows tree table. Unfortunately, comparing the draw performance of the two technologies we had to find out that NatTable has a slight lag and lower FPS (visible when scrolling), compared to the SWT table which uses native rendering. This is on a Windows 7 machine (16GB RAM, 4 cores...). Obviously doing the rendering with SWT will be slower, but the problem is that it becomes noticeable slow.
I have also tried the example application (web start jar), and noticed the same small delay / low FPS (so that it becomes visible to the eye) in the example tables there. The size of the table doesn't really seem to matter (except for very small tables).
In today's age with super smooth scrolling on iPhones, the user can easily get annoyed by such lag and "low" FPS. My question is; is this a known but accepted "problem"? Are there any plans on improving that? Because for us this is a blocker to refactor our second use case.
And maybe related to that I read you are working on native JavaFX support. Would that have a better rendering performance?
How about moving to HTML5, any plans?
Thanks for your candid answer,
Bernhard
|
|
|
|
Re: NatTable Drawing FPS / Performance vs SWT table [message #1744140 is a reply to message #1744132] |
Thu, 22 September 2016 12:18   |
Eclipse User |
|
|
|
Hi Dirk!
Thanks a lot for your answer, in fact, lowering the number
org.eclipse.nebula.widgets.nattable.conflation.EventConflaterChain.DEFAULT_REFRESH_INTERVAL
from 100ms to 40ms does the trick! This is really good news for us using NatTable!
I also tried 20ms, and it does actually even get smoother. 100ms interval is 10fps, 40ms is 25fps (~ movie framerate of 24), 20ms is 50fps (~ framerate 48 of The Hobbit movie, and at which video games are also considered smooth).
I would suggest to set it to 20ms. If the PC is slow, then I guess the events will be conflated at the fastest rate possible. If the PC is faster, well the eye wouldn't notice a higher FPS anymore.
This is for the scrolling event. I am not sure which kind of event or use case can cause the flickering you mentioned to appear. If some events have a problem with such a low interval, maybe the conflation interval can be made dependent on the events gathered.
Oh by the way, we are using NatTable 1.3 with eclipse 3.7, but I guess you have the same setting in your newest version as well.
Are you still patching that version?
Cheers,
Bernhard
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.05218 seconds