JDK-8103459 : Introduce smarter pile in VirtualFlow to reduce amount of managed / visible / css state changes
  • Type: Enhancement
  • Component: javafx
  • Sub-Component: controls
  • Affected Version: 8
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2013-05-20
  • Updated: 2015-06-16
  • Resolved: 2013-05-21
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8
8Fixed
Related Reports
Blocks :  
Description
It was noted during our performance review just how costly modifying the managed and visible properties of a cell inside VirtualFlow really is. We should improve how the pile is interacted with to reduce this cost. Additionally, we should act more intelligently when retrieving cells out of the pile so that we can perform as little css state changing as possible.
Comments
Based on the following benchmark, I was able to get good performance gains (especially when the rendering was disabled). java -cp "../../../artifacts/sdk/rt/lib/ext/jfxrt.jar;./dist/Controls.jar;../FXBenchmark/dist/FXBenchmark.jar;./dist/benchmarks-2.1.1.jar" -Djavafx.animation.fullspeed=true -Dquantum.norenderjobs=false jrockit.bm.Main controls.bm.TableViewBenchmark -mode keyboard -usePulse true -keysPerInjection 1 -cells 150 -i 1 -wt 0 -tr 30 Before fix: with rendering: 52.094925 fps no rendering: 95.622932 fps After fix: with rendering: 53.732861 fps (+3.144%) no rendering: 123.376129 fps (+29.425%)
21-05-2013