JDK-8128280 : Big footprint of es2 pipeline on mac
  • Type: Bug
  • Component: javafx
  • Sub-Component: graphics
  • Affected Version: fx2.0.2
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2011-09-29
  • Updated: 2015-06-17
  • Resolved: 2012-06-12
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 7
7u6Fixed
Related Reports
Blocks :  
Description
es2 pipeline footprint on Mac is ~40Mb bigger comparing to j2d pipeline.

I have run guimark2.BitmapTest on my 10.6.8 mac using fx2.0.2-b02 with hw and sw pipelines and I see
that java heap usage is pretty much the same but total process memory usage is bigger for j2d.
According to memory monitor (our max_memory_counter counter shows pretty much the same) the data are:
 hw/es2: ~150 Mb
 sw/j2d: ~100 Mb

More detailed analysis (using vmmap) shows that the difference is mostly coming from:

     REGION TYPE             [ VIRTUAL/RESIDENT]
     ===========             [ =======/========]
es2: IOKit                   [  326.3M/   63.6M]
es2: Java                    [  300.5M/   45.3M]
es2: MALLOC                  [   68.9M/   36.3M]
es2: OpenGL GLSL             [   2048K/   1152K]
es2: __DATA                  [   14.0M/   10.4M]
es2: __TEXT                  [  106.5M/   50.1M]

j2d: IOKit                   [  256.0M/      0K]
j2d: Java                    [  300.5M/   50.3M]
j2d: MALLOC                  [   66.0M/   33.6M]
j2d: __DATA                  [   10.5M/    7.7M]
j2d: __TEXT                  [   95.3M/   45.6M]


IOKit is a collection of system frameworks, libraries, tools, and other resources for creating device drivers in Mac OS X.
I guess it is used by es2/jogl.

The difference in __DATA and __TEXT is mostly contributed by reading /System/Library/Extensions/GeForceGLDriver
(I see the same on our Lab machines).


You can observe pretty much the same memory usage difference by running any FX demo application
with es2 and jd2 pipelines.

Would be nice to consider possibility to reduce footprint if possible.

Comments
Much have changed in the new es2 pipe, the move to not use OpenGL binding should greatly reduce memory footprint. We believe this problem no longer exists please file a new issue if this is otherwise.
12-06-2012

Hi Katya, Much has changed with the new rewrite es2 pipe. Is it possible for you to verify that this is still an issue worth addressing?
08-06-2012

Assign to Chien to verify where we are after the elimination of JOGL, RT-19034
27-04-2012

well, footprint is pretty much the same. Here are the results of max_memory_usage for guimark2.bitmap: fx2.0.2-b02: 137 Mb fx2.1-graphics-scrum-b302(b08): 134 Mb I guess this is because RT-18877 "Mac: MacWindow instances aren't garbage collected when their respective stage get destroyed" is not yet addressed.
16-01-2012

I doubt the JOGL change I did will have much impact on the process memory footprint. However the recent fix I did on a memory leak issue, RT-17304, may help. RT-17304: MacView instances aren't garbage collected due to existing references from ES2/Prism It will be helpful for the performance team to verify this again.
13-01-2012

Could we get another footprint measurement as Chien's JOGL changes might have affected our results.
13-01-2012