-
Bug
-
Resolution: Fixed
-
P3
-
8
which was integrated into build 8.0-graphics-scrum-h449 caused the following regressions
in Charts.Bubble-series25:
WinXP: -28%, 26.32 fps => 18.9 fps
MacMid: -81%, 13.72 fps => 2.55 fps
JPA profile shows that now we do spend a lot of time in com.sun.prism.impl.Disposer.disposeUnreachables().
For example it is 9 seconds from total 40 seconds on Windows XP performance machine.
Stack trace shows that all objects (textures) are created from NGRegion:481 because we now do caching:
479 if (cache && CACHE.isImageCachable(textureWidth, textureHeight)) {
480 old = g;
481 cached = g.getResourceFactory().createRTTexture(textureWidth, textureHeight,
482 WrapMode.CLAMP_TO_ZERO);
483 g = cached.createGraphics();
484 // Have to move the origin such that when rendering to x=0, we actually end up re
ndering
485 // at x=bounds.getMinX(). Otherwise anything rendered to the left of the origin w
ould be lost
486 g.translate(-outsetShapeBounds.getMinX(), -outsetShapeBounds.getMinY());
487 // TODO need to pass in something like GraphicsConfiguration (RT-26923)
488 CACHE.setImage(cached, null, textureWidth, textureHeight, background, shape);
489 }
Rough instrumentation also shows that the number of disposed objects is about 3000 per second while fps is about 20.
So, we have about 150 objects to dispose per pulse. Note, we just change X and Y values
for 25 BubbleChart objects on every pulse in Charts.Bubble benchmark .
Also note, that it was mentioned in
However, it seems to be too significant for Charts.Bubble-series25.
To run benchmark do:
> cd JFX_WS/tests/performance/Charts/
> ant run-bubble-bm