This content has been marked as final. Show 1 reply
There are some preliminary performance numbers for JavaFX 8:
The fxexperience post also includes descriptions of some of the work to improve performance in JavaFX8.
Also there is a note on memory consumption:
I would have to check our performance numbers to be certain, but I believe actually we have also reducedI think some of the major work involves allowing the JavaFX rendering thread and JavaFX application thread to execute concurrently.
the memory usage over the same period, primarily due to making Control a Region and removing one extra
node for most Controls (for example, a Button is now a Button -> Text, instead of Button -> StackPane -> Text).
i read in Jira that the developers where thinking of pre-rendering nodes as bitmaps and cache thosePerhaps it has. Have you tried out the Node setCache and setCacheHint APIs?
to gain some performance wins.
I didn't find this discussion again, but i think that this hasn't been implemented yet.
Additionally, you can manually do this by using node.snapshot and then rendering the resulting image in an ImageView rather than the original node.
Depending on the usage situation, the caching APIs can make a huge difference to application performance.
Running a grep for the word performance on the JavaFX 8 issue tracker gave =>
RT-5130 Mechanism to report FPS of an arbitrary app (app doesn't call PerformanceTracker) in Prism RT-5475 RT-5474 Optimize picking performance RT-6475 Need new hints to control how Text node is rendered RT-8037 Need to complete a temporarily performance fix on filter effects (DropShadow, InnerShadow and SepiaTone) RT-8243 Memory Leak (sun.awt.geom.CurveLink) RT-10753 prism-sw: ColorfulCircle bm performance drop in case circle radius is equal 2 or 4 for Inner & Outer Stroke positions RT-13324 Text needs to support letter spacing RT-13365 poor performance running "colorful circles" RT-14065 DirtyRegions: different performance results for equivalent dirty regions RT-14122 Camera Style Transform RT-14867 b35: 20% (-2.47 fps) performance regression in TextBox-text100k run with hw pipeline comparing to b34 RT-15566 too big area repainted if the test updates more than 12 checkboxes RT-15687 TreeItem expand/collapse performance in hardware pipeline is almost 20 fps worse than in j2d pipeline RT-16725 API to manipulate scrollbar on TableView RT-16853 TextArea: performance issue RT-16924 WebNode reload test can't work in sandbox mode RT-17510 Improve performance of rendering a TRANSPARENT stage on Windows 7 RT-17551 MacOS: Optimize using of lockFocusIfCanDraw RT-17960 Transparent stage resize flickers on Mac RT-18067 fx2.1-15 (b01): up to 90% regression in Controls.TextArea-select_all-255x1000 in j2d pipeline RT-18354 Animation perform down observably when i add the dropdown effect to root RT-18612 Glass Mac: ClipboardAssistance.actionPerformed() RT-19106 LCD text blending isn't accounting for over-lapping glyphs. RT-19271 J2D pipeline does not implement proper handling of the subimage "isolate mask" control RT-19305 Animation performance may be very unstable on Mac RT-19605 The fix for RT-19532 results in 65% (317 fps) performance regression in Controls.Buttons-adhoc-mouse-nodes1008-skipAll in fx2.1-controls-scrum-b345 build RT-20356 PresentingPainter and UploadingPainter disregarding dirty clip rect RT-20405 Improve Path rendering performance RT-20475 Allow to select videocard (or choose the best one automatically) RT-20616 TreeView creates new cells every time root is changed RT-20978 fx2.2-graphics-scrum-h175: performance regression on Mac (initially 50% but now unknown) RT-21672 Implement Occlusion Culling RT-22076 CSS: Treat style class as a bit mask in Selector for better performance on selector matching. RT-22244 Pisces Renderer shows huge performance win when coded in C RT-22422 Cannot sign JAR files RT-22567 Minor tweaks to FX/Swing painting RT-22913 Implement and enable accelerated compositing to improve WebView rendering performance RT-23413 FXMLLoader should be able to cache imports and properties between to load() calls RT-23450 Improve performance of Prism rendering and clipping RT-23458 Improve ellipses performance RT-23459 Reduce node count in Controls by allowing a Skin to manipulate the Control's children and layout directly RT-23463 Implement Region image based caching RT-23467 Evaluate Native Text Engines RT-23469 Analyze Layout Performance RT-23562 Optimize Region by using immutable State, caching on CSS level RT-23574 Add support for tiled rendering of textures (both for performance and functional reasons) RT-23582 Update Caspian CSS to use better performing selectors RT-23588 Investigate using less precise but faster min, pref, max size computations for controls RT-23616 Avoid processing CSS for VirtualFlow cells that are CSS clean RT-23621 Check use of HIGHP with es shaders. RT-23704 Use DirectX 9Ex mechanism to avoid calling cv.save() RT-23725 Beagleboard: Execute fragment shader on the GPU causes significant drop in performance RT-23738 fx3.0-graphics-scrum-h45: Webkit synchronization for 3.0 caused -55% performance regression in WebNode.ColorfulShapes-Blur2Circle RT-23743 Evaluate the performance of computing and uploading individual glyphs one at a time versus in a batch RT-23746 Consider optimizing libjepg for performance rather than quality (using already existing build flags) RT-23773 Improve caspian.css to use child selectors where possible, rather than require css engine to perform needless busy-work RT-23839 Lists,Trees and Tables do not work with wrapped text RT-23873 Investigate (and improve) ListView / TreeView / TableView performance RT-23879 Mac: Clicking in a Popup/ContextMenu/ComboBox steals the focus from the primary stage in applet RT-23905 SQE: Provide JavaFX CSS3 support RT-23913 SQE: Optional FX Packages RT-24010 WebNode.GUIMark2-Vector fails with NullPointerException in multithreaded mode RT-24012 Text performance of the hardware pipeline must be equal or better than the software pipeline RT-24013 Multi-Core scalability RT-24017 3.0-controls-scrum-58: 100% regression in NodeMemory.TreeItem and 96% in Controls.TreeView-Expand RT-24018 3.0-controls-scrum-60: Controls.ListView-Keyboard and Controls.TableView-Keyboard benchmarks are broken RT-24143 Ant task fx:deploy expectes all JARs to have a MANIFEST.MF and fails with NPE if at least one doesn't RT-24148 Private controls Weak* classes should clean up in more situations RT-24298 3.0-graphics-scrum-h142: memory usage of ColorfulShapes.Blur2Circle-Transparent has been increased by 625% (246,890.67 kb) RT-24320 WebView draws entire back buffer on screen upon every repaint RT-24437 X11Pixels and LensPixels are ill-implemented wrt managing the native object RT-24480 Use FilteredList for Parent.unmodifiableManagedChildren RT-24557 ImagePattern is slow on embedded systems RT-24582 High frequency refresh and Heavy but low priority updates in the same app (multithreading render, multiinstance...) RT-24587 Changing a single child of FlowLayout is slower than changing all children RT-24624 prism-sw pipeline is up to 90% worse than j2d pipeline RT-24741 WebView is not using accelerated compositing for http://javaweb.sfbay.sun.com/~epavlova/Performance/JavaFX2/mexsantos opacity transitions RT-24965 8.0-graphics-scrum-h82: Controls.TableView-XmasTree and DirtyArea performance regressions caused by RT-23725 fix. RT-24966 8.0-graphics-scrum-h99: up to 30% regression in Guimark2.Bitmap RT-24992 8.0-controls-scrum-h51: Controls.CheckBox and Controls.RadioButton benchmarks are broken RT-24997 8.0-controls-scrum-h44: up to 35% regression in Controls.TableView and Controls.Buttons benchmarks RT-25036 8.0-h26-b56: Controls.TableView-XmasTree benchmark crashes with SIGSEGV on MacOS in sw pipeline RT-25078 Mac: dirChooser.showDialog() returns immediately "null" but somehow remains open and appears to work (...when being executed from a Button onAction Eventhandler in new Stage) RT-25118 8.0-controls-scrum-h51: -23% performance regression in Controls.TreeView-Expand.adhoc-items1000-wide benchmark RT-25120 8.0-graphics-scrum-h99: up to -24% performance regression in Controls.ListView and Controls.TableView RT-25166 Path updates in a ScrollPane where content has a Scale transform are 100 times slower RT-25233 Javafx applet with preloader crashes under Windows / Java7u7 / Chrome RT-25350 poor animation performance on PathTransition when part of the Stage sits outside of desktop screen RT-25382 8.0-h38-b58: up to 30% performance regression in Image rendering in sw pipeline RT-25403 8.0-h38-b58: 67% (-21.7 fps) performance regression in Charts.Bubble in hw pipeline on MacOS-Low end machines RT-25486 Debian policy requirement for 'Installed-Size' not set -- users get warning when installing: NetBeans built JavaFX .deb package for Ubuntu RT-25684 GridPane.layoutChildren() hangs when wrapText is true RT-25685 GridPane.layoutChildren() hangs when wrapText is setup in CSS style class RT-25801 8.0-controls-scrum-h81: 25% performance regression in Controls.RadioButton on mac-low end machine RT-25864 New "shared textures" do not share pixel update flags as well as they should RT-25919 8.0-graphics-scrum-h242: 48% (16.70 fps) performance regression in GUIMark2.Bitmap on MacOS RT-26024 Scene Builder hangs when adding column RT-26113 8.0-graphics-scrum-h278: disabled accessibility feature triggers dependency on uiautomationcore.dll RT-26140 Node Orientation - API issue: Should effective orientation be a property? RT-26221 8.0-graphics-scrum-h276: 33% regression in NodeMemory.TableColumn-rendering-on benchmark RT-26438 8.0-graphics-scrum-h342: up to 30% of memory usage increase in bunch of performance benchmarks RT-26537 8.0-graphics-scrum-349: deadloack in WebNode.GUIMark2-Bitmap benchmark RT-26702 Poor DisplacementMap effect performance on Mac RT-26716 Performance of scrolling TreeView tail is much more slowly when scrolling TreeView head RT-26894 String rendering is less performant than java2D one RT-26909 Regions are being cached even when extremely tall RT-26999 8.0-controls-scrum-h122: up to 20% regression in some Controls.TableView benchmarks RT-27073 8.0-graphics-scrum-h458: more than 50% regression in Controls.TextField benchmark RT-27079 8.0-graphics-scrum-h449: RT-25055 caused up to 80% regression in Charts.Bubble benchmark RT-27111 8.0-controls-scrum-h138: up to 30% regression in Controls.TreeViewExpand benchmarks RT-27143 8.0-graphics-scrum-h471: TableView-Keyboard fails with NullPointerException RT-27508 8.0-h96-b68: 68% regression in SpiralText in hw pipeline caused by enabling DirectX 9Ex RT-27667 [TreeTableView] Multiple cell selection issue. RT-27982 Mac: 8.0-graphics-scrum-h595: JavaFX crashes on MacOS RT-27985 8.0-graphics-scrum-h595: 42% performance regression in Guimark2.BitmapCanvas on Windows-Mid-Range machine RT-28064 A new Scene accumulates all PointLight's from previous Scene's