RFR: 8185886: Improve scrolling performance of TableView and TreeTableView
github.com+6702882+dannygonzalez at openjdk.java.net
Wed Aug 26 14:10:58 UTC 2020
On Fri, 17 Apr 2020 10:46:51 GMT, dannygonzalez <github.com+6702882+dannygonzalez at openjdk.org> wrote:
>> The problem is that there are usually many nodes, but only very few scenes and windows, so registering a listener for
>> each node on a scene or window is pretty bad design (also consider the amount of notifications that a scene change
>> would trigger in such scenarios). As far as I can see, this is the only such listener and only needed for two very
>> limited cases, and its addition in the past may have slipped through the cracks. Adding a performance unit test that
>> specifically checks add/remove performance of nodes may prevent such future regressions.
> @hjohn, agreed regards the issues of adding a listener to each node.
> Would it be worth doing the additional work of updating PopupWindow and ProgressIndicatorSkin to add their own
> listeners to make this a pull request that can be reviewed officially?
> I await any further comments from @kevinrushforth et al.
I have attached a code sample. If you use OpenJFX 16-ea+1 and run visual VM and look at the hotspots in the JavaFX
thread, you can see that about 45% of the time in the JavaFX thread is spent in removeListener calls.
Note: In CPU settings of VisualVM, I removed all packages from the "Do not profile packages section".
More information about the openjfx-dev