List scrolling is very slow in JavaFX 17

Johan Vos johan.vos at gluonhq.com
Tue Nov 22 08:48:13 UTC 2022


Hi Glavo,

There are more frequent calls to updateItem() since the VirtualFlow tries
to gradually improve its estimation how large the total list size is
(rather than assuming all cells have the same size). The major point is
that if you override updateItem, it should not do more than strictly needed
(e.g. don't create a Node etc). That method should return as fast as
possible.

There are many completely different usecases for VirtualFlow in general,
and it's not trivial to come up with a single implementation that deals
"best" with all usecases. Therefore, I recently solicited for feedback and
it might be good if you can give yours too?
See
https://mail.openjdk.org/pipermail/openjfx-dev/2022-September/035851.html
for the start of the discussion.

- Johan


On Tue, Nov 22, 2022 at 9:24 AM Glavo <zjx001202 at gmail.com> wrote:

> Hi,
>
> I'm one of the maintainers of the open source project HMCL (Hello!
> Minecraft Launcher*)*. This is a Minecraft launcher based on JavaFX.
>
> In the past year, we have received a lot of feedback on performance
> problems. Through performance analysis, I noticed that from JavaFX 17 ea+8,
> the performance of list scrolling is terrible.
>
> I analyzed the method calls and noticed that the updateItem method of
> ListCell is called 8 times more frequently in JavaFX 17 than in JavaFX 16.
>
> I guess this is due to the following commit:
>
>
> https://github.com/openjdk/jfx/commit/8e547571fb3d40df843c27fc11921b5d4765c481
>
> I wonder if this is a bug?
>
> Best regards,
> Glavo
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20221122/c3f7a37c/attachment.htm>


More information about the openjfx-dev mailing list