JavaFX performance for complex visualisations

Dr. Michael Paus mp at jugs.org
Fri Nov 16 04:00:36 PST 2012


According to my experience JavaFX is currently not able to handle 
graphically intensive
applications. One reason for this is that all drawing of path based 
primitives is done
in software and not in hardware. That means that everything with the 
exception of
single lines, circles and rectangles is not hardware accelerated. If you 
want to draw a simple
filled triangle for example you have to use a polygon for that because 
there is no
explicit triangle primitive. But a polygon is a path and thus is 
rendered in software
and this software renderer is in many cases even 2-3 times slower than 
the one
used in AWT. You can currently render 100_000 lines without problem but 
if you
put them in a path you can only use less than 1000 if you want the same 
performance.
I hope this will change with the upcoming 3D support where we will also 
get more
hardware accelerated drawing primitives which will hopefully also be 
usable in 2D.
Sometimes you can get around the above mentioned problems by clever caching
but sometimes you just need the raw performance which currently is not 
available.

LG, Michael

Am 16.11.2012 10:14, schrieb John C. Turnbull:
> I am under the impression that JavaFX 2.x can be used to develop reasonably
> complex and demanding visualisations including games, animations etc. and
> that JavaFX 8+ will enable such visualisations to be 3D.
>
>   
>
> However, as of yet, I have not seen any such advanced visualisations
> anywhere.  The animation samples in Ensemble are obviously very rudimentary
> (probably intentionally) and I have not been able to find anything that I
> would classify as complex, demanding or advanced anywhere on the internet.
>
>   
>
> And this brings me to ask a few questions:
>
>   
>
> 1. Do any such games, animations or visualisations exist yet?
>
> 2. If not, how does Oracle or anyone else actually know that JavaFX is
> capable of supporting such applications?
>
> 3. Do I have the wrong understanding that JavaFX is supposed to support such
> applications?
>
> 4. Is it possible that, for whatever reason, JavaFX is simply not capable of
> supporting such applications?
>
>   
>
> My feeling that JavaFX can indeed support such applications is based on the
> fact that it is hardware accelerated and therefore it should be limited
> mostly by the capabilities of the graphics card and also because it is often
> talked about in this way.  However, I have observed varying levels of
> performance that don't quite follow these principles such as JavaFX
> performing poorly with choppy/jittery animations and transitions on my most
> powerful machine with an NVIDIA GeForce GTX 690 (the current fastest
> graphics card in the world) but performing quite well on machines with much
> lower specifications.
>
>   
>
> So I guess I am curious to know what kinds of testing and evaluations Oracle
> has undertaken to determine the performance characteristics of JavaFX and
> exactly what kinds of applications it is actually suitable for.  For
> example, I am yet to see any JavaFX application with even the sophistication
> of a Flash electronic greeting card or banner ad and yet I assume JavaFX
> will be used for such purposes eventually.
>
>   
>
> I'd appreciate comments from Oracle and anyone who has in fact developed
> more complex visualisations/animations/games with JavaFX that aren't
> publicly accessible.
>
>   
>
> Thanks,
>
>   
>
> -jct
>


-- 
--------------------------------------------------------------------------------------
Dr. Michael Paus, Chairman of the Java User Group Stuttgart e.V. (JUGS).
For more information visit www.jugs.de.



More information about the openjfx-dev mailing list