On Thu, 20 Apr 2023 07:17:39 GMT, Johan Vos <j...@openjdk.org> wrote:

>> modules/javafx.controls/src/main/java/javafx/scene/control/skin/VirtualFlow.java
>>  line 858:
>> 
>>> 856: 
>>> 857:         @Override protected void invalidated() {
>>> 858:             int oldIndex = computeCurrentIndex();
>> 
>> I wonder if we can cache the old index somewhere since the _compute..._ 
>> methods can take some time on big tables.
>
> I think an instance variable makes sense, as the current index is a property 
> of a specific VirtualFlow instance.
> That won't help with performance though, as we still need to compute the 
> current index in a number of cases. Instead of calling the 
> `computeCurrentIndex()` we would then just update the instance variable. 
> To fix the issue, we need to reduce the cases where the current index is 
> recomputed (or bring it to zero in case the current index can't theoretically 
> change) , and this is what #1098 is about -- so your comment probably belongs 
> to #1098?
> I'll experiment with instance fields, and try to reduce the computations even 
> more.

Agreed. And good idea! I will also do a bunch of tests when I have time. :)

-------------

PR Review Comment: https://git.openjdk.org/jfx/pull/1099#discussion_r1172228207

Reply via email to