Performance Issues when Scale isn't 1.0

Scott Palmer swpalmer at gmail.com
Sat Sep 22 07:54:03 PDT 2012


I've been investigating more and have found that this issue has something to do with modifying Path objects in my scene.
The ScrollPane content is a Group wrapped in a Group so the ScrollPane uses the visual bounds instead of the layout bounds.  In my Group there are several Path objects that need to be updated - it's updating those Path objects that seems to go over 20 times slower when a scale factor is applied.  It's something about updating the Path objects in a ScrollPane with a scale factor. The Path objects end points are updated via layoutChildren in a class derived from Group. The Paths are simple MoveTo, LineTo straight lines…  but I'm still trying to isolate a test case.  

Scott


On 2012-09-21, at 10:34 PM, Jose Martinez <jmartine_1026 at yahoo.com> wrote:

> I also have reduced performance when scaling not 1.0.  I scale the root node attached to the scene.  The scaling performance problems happen during an animation that occurs often, same labels fading in and out when certain events occur.  I considered this not so much a bug but just a lot of stuff happening on the screen and eventually I will hit the limit.  The fix I am applying is to get rid of the fading animation and replace with another indicator that is not as graphic intensive.
> 
> But if there is a bug somewhere or an effort to improve scaling performance then I will upvote it.  Maybe in the future this will cause a problem that I cannot easily workaround.
> 
> thanks
> jose
> From: Scott Palmer <swpalmer at gmail.com>
> To: Brent Christian <brent.christian at oracle.com> 
> Cc: "openjfx-dev at openjdk.java.net" <openjfx-dev at openjdk.java.net> 
> Sent: Friday, September 21, 2012 2:12 PM
> Subject: Re: Performance Issues when Scale isn't 1.0
> 
> Hi Brent,
> 
> Yes, that is correct, even when the zoom results in less being drawn performance drops.
> 
> It so happens that I had a go at making this into a Stage-based "pure" JavaFX application. I hand
> t tried that code in a while, as there is a lot more to do to migrate the entire app, but what we have in our JFXPanel is mostly functional.
> 
> Here's the bad news.  Performance in the Stage based app is even worse!  I use CTRL+MOUSE_WHEEL for zoom.  In the JFXPanel version the zoom is relatively smooth (we actually animate it a bit via JavaFX to go from one zoom level to another).  In JavaFX I see the zoom happen at about 1 frame per second!.  Dragging the components is at least as bad as with a JFXPanel, but I'm pretty sure it is worse.  I don't quite get how that can be.
> 
> I'm going to do more investigation, as I now suspect an interaction with the scroll pane.  The JFX GUI also has two versions of the document that are always zoomed out and not part of the scroll pane - basically to give a birds-eye view of the entire document.  They don't seem to have any effect on the performance.
> 
> 
> Thanks,
> 
> Scott
> 
> On 2012-09-21, at 1:05 PM, Brent Christian <brent.christian at oracle.com> wrote:
> 
> > Hi, Scott
> > 
> > I'm not aware of any performance issues specific to scaling.
> > 
> > You say the problem happens when you zoom in *or* out, so I assume it's not simply a matter of increased complexity in the visible portion of the graph.
> > 
> > I would be interested to know if performance is different with the UML diagram placed in a Stage instead of a JFXPanel.
> > 
> > I'm guessing a new JIRA will need to be filed.
> > 
> > Thanks,
> > -Brent
> > 
> > On 9/21/12 7:51 AM, Scott Palmer wrote:
> >> I've searched Jira and didn't find anything.  Is there a known issue with scaling causing significant performance degradation?
> >> I have an application that renders something like a UML diagram in a JFXPanel.  Basically it looks like a bunch of rectangles connect by lines.  I can grab and drag those rectangles to layout the document, which can be rather large.  I can also drag new connections between the boxes.  This all works smoothly, until I try to "zoom" in or out on the diagram.
> >> 
> >> If I set a single X & Y scale factor on the parent node of my diagram so that I can see more of it (it's in a scrollpane too), that makes the performance plummet when I drag the boxes or try to drag a new Path to make a connection.  It's at least 5 times slower I figure.  The user experience is horrible as I get less than 5 fps at times vs. 30+ with the scale set to 1.0
> >> 
> >> I know there is ongoing work with performance, I just wondered if this is a known issue in 2.2.0 (Jira #?).  I would file a bug, but it would take a while to isolate a test case from my current app.
> >> 
> >> Regards,
> >> 
> >> Scott
> >> 
> 
> 
> 



More information about the openjfx-dev mailing list