mihosoft.eu
Programming, Art, Linux, Free Software…
mihosoft.eu
Navigation
  • Home
  • VRL-Studio
  • SonoAir
  • Monochrome Wars
  • About
  • Impressum
  • Datenschutz
You are here: Home › Featured › JavaFX 2.2 Performance

JavaFX 2.2 Performance

September 27, 2012 | Filed under: Featured, JavaFX, VRL and tagged with: Java, JavaFX, Performance, VRL, VRL-Studio

JavaFX is a really powerful UI platform. I noticed a lot of momentum in Java as client technology. As JavaFX is now clearly the successor of Swing I will give it a try.

I have created the Visual Programming Environment VRL-Studio with Swing. I added a lot of features to the rendering/animation/effects pipeline. But for the next version I think of switching to JavaFX. But before I start with the real implementation I want to be sure that the performance is ok. Unfortunately, JavaFX still has some critical issues that are hopefully resolved in the near future.

Issues

Performance seems to heavily depend on the graphics card/driver/OS. Even more important, the framerate of a JavaFX application drops as the size of the application stage increases. This does not only happen if nodes are drawn on the whole application window but also if only a part of the window shows content. If your application runs on a large screen, e.g., a 27″ iMac (2880×2560), this does really matter.

Questions

  • Does JavaFX use dirty region optimization such as Swing?

  • Does it use additional image buffers like JCanvas3D in Java3D does?

    This would be a good explanation for the fps drop. I have the feeling that the delay introduced by increased window size is independent from the number of nodes in the sceenegraph.

The Benchmark

  1. perform the bubblemark (uses only wall collision)
  2. add more balls
  3. increase the window size and start with 1. again

After several runs the benchmark stops and writes the results to statistics.txt.

Screenshot

In the application screenshot you can see that all balls stay in a small box inside the application window.

Screenshot

Benchmark Results

In this figure you can clearly see that the framerate drops if the stage size increases even though all balls stay in the same region. This behavior could be reproduced on Intel HD 4000 (OS X 10.8) and AMD ATI Radeon HD 5750 (openSUSE 12.2).

Framerate for different Window Sizes

The x axis shows the number of runs (window size increased each run). The average framerate is shown on the y axis. For the test the VM flag -Djavafx.animation.fullspeed=true was used to get full performance.

VRL-Workflow for analyzing the statistics.txt file

Download Source

You can download the source from GitHub.com

Did you like this article? Share it with your friends!

Tweet

Written by admin

Visit my Website Follow me on Twitter

Pages

  • About
  • Datenschutz
  • Impressum
  • Seminar 2019

Categories

  • 3D Printing
  • Any-Key
  • Art
  • C/C++
  • Devoxx
  • Digital Painting
  • Featured
  • IoT
  • Java
  • JavaFX
  • Javakurs 2015
  • JavaOne
  • Linux
  • Linux on Apple Hardware
  • Linux: Daily Usage Tips
  • Mobile Apps
  • Mobile Devices
  • Programming Languages
  • Repair Things
  • Science
  • Sonos
  • Teaching
  • Uncategorized
  • Virtual Reality
  • VRL

Tags

3D 3D Printing 3d visualization AirSonos Apple Music Devoxx Devoxx 2013 gradle graph iOS Java Java 8 JavaFX JavaFX 8 JavaOne JavaOne 2013 jdk9 JFXtras JInternalFrame Linux MacBook MDI mobile apps OpenDive OpenJDK OpenJFX Open Source Performance scientific visualization SonoAir Sonos Ultimaker Virtual Reality Virtual World visual programming VPlot VRL VRL-Studio VWorkflows window control Window Node Window System workflow workflows X11

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

JavaOne Rockstar

JavaOne Rockstar
Follow @mihosoft

Recent Posts

  • Native JDK9 Application Bundles
  • Running C code from Java via VTCC
  • SonoAir finally supports macOS High Sierra!
  • JavaOne 2017 Community Keynote Artwork
  • The JGrounds App: better teaching apps for Java 9 [BOF5047]

Recent Comments

  • ¿Ventanas completamente personalizadas de JavaFX? - Fallosweb.com on VFXWindows
  • JavaFX entirely customized windows? – w3toppers.com on VFXWindows
  • Volel Mondesir on Adding Custom Icons to JFXtras Window Control (VFXWindows)
  • Volel Mondesir on Adding Custom Icons to JFXtras Window Control (VFXWindows)
  • Switching between different JDK versions in Windows - ErrorsFixing on JSelect: switch between different JDK versions

Archives

  • February 2018
  • October 2017
  • September 2017
  • February 2017
  • June 2016
  • May 2016
  • November 2015
  • September 2015
  • July 2015
  • March 2015
  • September 2014
  • March 2014
  • February 2014
  • December 2013
  • November 2013
  • October 2013
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • October 2012
  • September 2012
  • August 2012
  • July 2012
  • November 2010
  • February 2010
  • November 2009
  • October 2009
  • February 2009
  • August 2008
  • May 2008
  • April 2008
  • March 2008
Privacy & Cookies: this site uses cookies. By continuing to use this website, you agree to their use.
To find out more, see here: Impressum & Datenschutz

© 2025 mihosoft.eu