-
Bug
-
Resolution: Cannot Reproduce
-
P4
-
6
-
sparc
-
solaris_10
During the Solaris Desktop Summit I wrote a simple script which
compares two running java vms by getting all kinds of footprint-related
information. (the script is very crude, make sure you don't run
java processes with "Test" somewhere in their class name prior to starting
it as it kills thos java processes at the end - modify as needed).
Here's the output for mustang b63, for a simple test containing an empty
JFrame, with the default Ocean L&F and the gtk L&F (I used clearlooks theme),
on Solaris 10 on Sparc.
The summary report is below. Notice a huge (> 50M) increase in virtual
memory of the process, as well as the resident size.
Most of the increase can be attributed to the loaded gtk libraries
(see the attached detailed report files for more information) - the GTK
L&F causes 25 additional libraries to be loaded. (For example, on solaris-sparc
the mediallib library uses about 4M of resident size).
It's not clear if we can do much about this, but I wanted this information
to be at leat logged.
------------- Testing Java Processes ---------------------
21979 Test Ocean
21980 Test GTK -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
--------------- prstat for Java Processes ----------------
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
21980 tdv 102M 35M sleep 59 0 0:00:01 2.4% java/13
21979 tdv 48M 28M sleep 59 0 0:00:01 1.6% java/13
Total: 2 processes, 26 lwps, load averages: 0.15, 0.07, 0.09
-------Memory mapping differences between the processes ----
Process Kbytes RSS Anon
21979 49008 32608 18496 -
21980 104352 44608 20496 -
----------------- Newly loaded libraries -----------------
29144 /usr/lib/cpu/sparcv9+vis2/libmlib.so.2
216 /usr/lib/gtk-2.0/2.4.0/engines/libclearlooks.so
34 /usr/lib/gtk-2.0/2.4.0/immodules/im-xim.so
7 /usr/lib/iconv/UTF-8%8859-1.so
152 /usr/lib/libatk-1.0.so.0.700.3
312 /usr/lib/libfontconfig.so.1
136 /usr/lib/libgdk_pixbuf-2.0.so.0.400.9
592 /usr/lib/libgdk-x11-2.0.so.0.400.9
768 /usr/lib/libglib-2.0.so.0.400.1
15 /usr/lib/libgmodule-2.0.so.0.400.1
432 /usr/lib/libgobject-2.0.so.0.400.1
3544 /usr/lib/libgtk-x11-2.0.so.0.400.9
19816 /usr/lib/libmlib.so.2
280 /usr/lib/libpango-1.0.so.0.400.1
184 /usr/lib/libpangoft2-1.0.so.0.400.1
56 /usr/lib/libpangox-1.0.so.0.400.1
21 /usr/lib/libpangoxft-1.0.so.0.400.1
60 /usr/lib/libz.so.1
9 /usr/lib/pango/1.4.0/modules/pango-basic-fc.so
92 /usr/openwin/lib/libXft.so.2
40 /usr/openwin/sfw/lib/libXrender.so.1
312 /usr/sfw/lib/libexpat.so.0.5.0
768 /usr/sfw/lib/libfreetype.so.6
46 /usr/sfw/lib/libgcc_s.so.1
22 /usr/X11/lib/libXrandr.so.2
Total size: 57058
Total new files: 25
--------------- Java Heap usage difference summary ----------
1c1
< Attaching to process ID 21979, please wait...
---
> Attaching to process ID 21980, please wait...
24,26c24,26
< used = 1326640 (1.2651824951171875MB)
< free = 704976 (0.6723175048828125MB)
< 65.29974168346774% used
---
> used = 1305224 (1.2447586059570312MB)
> free = 726392 (0.6927413940429688MB)
> 64.24560546875% used
29,31c29,31
< used = 1326640 (1.2651824951171875MB)
< free = 508368 (0.4848175048828125MB)
< 72.296142578125% used
---
> used = 1305224 (1.2447586059570312MB)
> free = 529784 (0.5052413940429688MB)
> 71.12906319754464% used
49,51c49,51
< used = 6066528 (5.785491943359375MB)
< free = 6516384 (6.214508056640625MB)
< 48.212432861328125% used
---
> used = 6266864 (5.9765472412109375MB)
> free = 6316048 (6.0234527587890625MB)
> 49.80456034342448% used
--------------- Difference in loaded classes-----------------
7a8,29
> com.sun.java.swing.plaf.gtk.GTKCachingPainter
> com.sun.java.swing.plaf.gtk.GTKColorType
> com.sun.java.swing.plaf.gtk.GTKConstants$StateType
> com.sun.java.swing.plaf.gtk.GTKConstants$StateType[]
> com.sun.java.swing.plaf.gtk.GTKEngine$Settings
> com.sun.java.swing.plaf.gtk.GTKEngine$Settings[]
> com.sun.java.swing.plaf.gtk.GTKGraphicsUtils
> com.sun.java.swing.plaf.gtk.GTKLookAndFeel
> com.sun.java.swing.plaf.gtk.GTKLookAndFeel$1
> com.sun.java.swing.plaf.gtk.GTKLookAndFeel$1FontLazyValue
> com.sun.java.swing.plaf.gtk.GTKLookAndFeel$2
> com.sun.java.swing.plaf.gtk.GTKLookAndFeel$WeakPCL
> com.sun.java.swing.plaf.gtk.GTKNativeEngine
> com.sun.java.swing.plaf.gtk.GTKNativeEngine$WidgetType
> com.sun.java.swing.plaf.gtk.GTKNativeEngine$WidgetType[]
> com.sun.java.swing.plaf.gtk.GTKNativeStyle
> com.sun.java.swing.plaf.gtk.GTKPainter
> com.sun.java.swing.plaf.gtk.GTKRegion
> com.sun.java.swing.plaf.gtk.GTKStyleFactory
> com.sun.java.swing.plaf.gtk.GTKStyle$GTKLazyValue
> com.sun.java.swing.plaf.gtk.GTKStyle$GTKStockIcon
> com.sun.java.swing.plaf.gtk.resources.gtk
9c31
< com.sun.swing.internal.plaf.metal.resources.metal
---
> com.sun.swing.internal.plaf.synth.resources.synth
130a153
> java.lang.Double
316d338
< javax.swing.plaf.basic.BasicPanelUI
323d344
< javax.swing.plaf.FontUIResource[]
326,338c347,358
< javax.swing.plaf.metal.DefaultMetalTheme$FontDelegate
< javax.swing.plaf.metal.MetalLookAndFeel
< javax.swing.plaf.metal.MetalLookAndFeel$AATextListener
< javax.swing.plaf.metal.MetalLookAndFeel$FontActiveValue
< javax.swing.plaf.metal.MetalLookAndFeel$MetalLazyValue
< javax.swing.plaf.metal.MetalRootPaneUI
< javax.swing.plaf.metal.OceanTheme
< javax.swing.plaf.metal.OceanTheme$1
< javax.swing.plaf.metal.OceanTheme$2
< javax.swing.plaf.metal.OceanTheme$3
< javax.swing.plaf.metal.OceanTheme$4
< javax.swing.plaf.metal.OceanTheme$5
< javax.swing.plaf.metal.OceanTheme$6
---
> javax.swing.plaf.synth.ColorType
> javax.swing.plaf.synth.DefaultSynthStyleFactory
> javax.swing.plaf.synth.Region
> javax.swing.plaf.synth.SynthBorder
> javax.swing.plaf.synth.SynthContext
> javax.swing.plaf.synth.SynthDefaultLookup
> javax.swing.plaf.synth.SynthGraphicsUtils
> javax.swing.plaf.synth.SynthLookAndFeel$AATextListener
> javax.swing.plaf.synth.SynthLookAndFeel$Handler
> javax.swing.plaf.synth.SynthPainter$1
> javax.swing.plaf.synth.SynthPanelUI
> javax.swing.plaf.synth.SynthRootPaneUI
366a387
> sun.awt.event.IgnorePaintEvent
406a428
> sun.awt.SunToolkit$3
430a453
> sun.awt.X11.XComponentPeer$1
431a455
> sun.awt.X11.XConfigureEvent
436a461
> sun.awt.X11.XExposeEvent
445a471
> sun.awt.X11.XMapEvent
465a492
> sun.awt.X11.XTranslateCoordinates
608c635,636
< sun.swing.PrintColorUIResource
---
> sun.swing.BakedArrayList
> sun.swing.CachedPainter$Cache
Total classes:
614 results/histo.21979.log
642 results/histo.21980.log
1256 total
-------------------------------------------------------------
Another data point. Here's a part of a summary of 1.5.0_06 vs 1.6.0
GTK L&F run. Not too good either. Note that in 1.5 we mmapp-ed
rt.jar and in 1.6 we don't so it's even worse than it looks.
The first process is 1.5.0_06, the second is 1.6 b63.
------------- Testing Java Processes ---------------------
10366 Test GTK -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
10367 Test GTK -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
--------------- prstat for Java Processes ----------------
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
10366 tdv 92M 40M sleep 59 0 0:00:02 3.9% java/12
10367 tdv 110M 50M sleep 59 0 0:00:02 4.2% java/13
Total: 2 processes, 25 lwps, load averages: 0.20, 0.10, 0.10
-------Memory mapping differences between the processes ----
Process Kbytes RSS Anon
10366 94480 47888 23464 -
10367 113104 80128 24336 -
-------------------------------------------------------------
Another point of reference. I've compared similar java and native gtk
applications.
I've attached the native gnome c apps to the bugreport, gtk_test.c and
gtk_button.c along with the results and updated "run" script, see
compare_footprint_native.zip file.
First, the applications which only put up an empty frame:
------------- Testing Java Processes ---------------------
8509 gtk_test
8510 Test GTK -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
--------------- prstat for Java Processes ----------------
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
8510 tdv 110M 49M sleep 59 0 0:00:02 3.3% java/13
8509 tdv 59M 14M sleep 59 0 0:00:00 0.2% gtk_test/1
Total: 2 processes, 14 lwps, load averages: 0.16, 0.12, 0.07
-------Memory mapping differences between the processes ----
Process Kbytes RSS Anon
8509 60160 40776 1168 -
8510 112912 77088 24160 -
----------------- Newly loaded libraries -----------------
51 /lib/libaio.so.1
24 /lib/libm.so.1
48 /lib/librt.so.1
14 /lib/libsendfile.so.1
25 /lib/libthread.so.1
6640 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/client/libjvm.so
1576 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libawt.so
648 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libfontmanager.so
208 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libjava.so
1048 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libmlib_image.so
80 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libnet.so
33 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libnio.so
57 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libverify.so
80 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libzip.so
45 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/native_threads/libhpi.so
288 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/xawt/libmawt.so
34 /usr/lib/gtk-2.0/2.4.0/immodules/im-xim.so
6 /usr/lib/iconv/UTF-32%UTF-8.so
6 /usr/lib/iconv/UTF-8%UTF-32.so
63 /usr/lib/libCrun.so.1
3 /usr/lib/libsched.so.1
9 /usr/lib/pango/1.4.0/modules/pango-basic-fc.so
31 /usr/openwin/lib/libXtst.so.1
Total size: 11017
Total new files: 23
And here's the result for applications with only a button:
------------- Testing Java Processes ---------------------
8758 gtk_button
8759 ButtonTest GTK -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
--------------- prstat for Java Processes ----------------
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
8759 tdv 103M 49M sleep 59 0 0:00:02 4.7% java/13
8758 tdv 59M 16M sleep 59 0 0:00:00 0.4% gtk_button/1
Total: 2 processes, 14 lwps, load averages: 0.25, 0.15, 0.09
-------Memory mapping differences between the processes ----
Process Kbytes RSS Anon
8758 60888 41248 1736 -
8759 105160 74880 24680 -
----------------- Newly loaded libraries -----------------
51 /lib/libaio.so.1
24 /lib/libm.so.1
48 /lib/librt.so.1
14 /lib/libsendfile.so.1
25 /lib/libthread.so.1
6640 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/client/libjvm.so
1576 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libawt.so
648 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libfontmanager.so
208 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libjava.so
1048 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libmlib_image.so
80 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libnet.so
33 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libnio.so
57 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libverify.so
80 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libzip.so
45 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/native_threads/libhpi.so
288 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/xawt/libmawt.so
34 /usr/lib/gtk-2.0/2.4.0/immodules/im-xim.so
6 /usr/lib/iconv/UTF-32%UTF-8.so
6 /usr/lib/iconv/UTF-8%UTF-32.so
63 /usr/lib/libCrun.so.1
3 /usr/lib/libsched.so.1
31 /usr/openwin/lib/libXtst.so.1
Total size: 11008
Total new files: 22
compares two running java vms by getting all kinds of footprint-related
information. (the script is very crude, make sure you don't run
java processes with "Test" somewhere in their class name prior to starting
it as it kills thos java processes at the end - modify as needed).
Here's the output for mustang b63, for a simple test containing an empty
JFrame, with the default Ocean L&F and the gtk L&F (I used clearlooks theme),
on Solaris 10 on Sparc.
The summary report is below. Notice a huge (> 50M) increase in virtual
memory of the process, as well as the resident size.
Most of the increase can be attributed to the loaded gtk libraries
(see the attached detailed report files for more information) - the GTK
L&F causes 25 additional libraries to be loaded. (For example, on solaris-sparc
the mediallib library uses about 4M of resident size).
It's not clear if we can do much about this, but I wanted this information
to be at leat logged.
------------- Testing Java Processes ---------------------
21979 Test Ocean
21980 Test GTK -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
--------------- prstat for Java Processes ----------------
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
21980 tdv 102M 35M sleep 59 0 0:00:01 2.4% java/13
21979 tdv 48M 28M sleep 59 0 0:00:01 1.6% java/13
Total: 2 processes, 26 lwps, load averages: 0.15, 0.07, 0.09
-------Memory mapping differences between the processes ----
Process Kbytes RSS Anon
21979 49008 32608 18496 -
21980 104352 44608 20496 -
----------------- Newly loaded libraries -----------------
29144 /usr/lib/cpu/sparcv9+vis2/libmlib.so.2
216 /usr/lib/gtk-2.0/2.4.0/engines/libclearlooks.so
34 /usr/lib/gtk-2.0/2.4.0/immodules/im-xim.so
7 /usr/lib/iconv/UTF-8%8859-1.so
152 /usr/lib/libatk-1.0.so.0.700.3
312 /usr/lib/libfontconfig.so.1
136 /usr/lib/libgdk_pixbuf-2.0.so.0.400.9
592 /usr/lib/libgdk-x11-2.0.so.0.400.9
768 /usr/lib/libglib-2.0.so.0.400.1
15 /usr/lib/libgmodule-2.0.so.0.400.1
432 /usr/lib/libgobject-2.0.so.0.400.1
3544 /usr/lib/libgtk-x11-2.0.so.0.400.9
19816 /usr/lib/libmlib.so.2
280 /usr/lib/libpango-1.0.so.0.400.1
184 /usr/lib/libpangoft2-1.0.so.0.400.1
56 /usr/lib/libpangox-1.0.so.0.400.1
21 /usr/lib/libpangoxft-1.0.so.0.400.1
60 /usr/lib/libz.so.1
9 /usr/lib/pango/1.4.0/modules/pango-basic-fc.so
92 /usr/openwin/lib/libXft.so.2
40 /usr/openwin/sfw/lib/libXrender.so.1
312 /usr/sfw/lib/libexpat.so.0.5.0
768 /usr/sfw/lib/libfreetype.so.6
46 /usr/sfw/lib/libgcc_s.so.1
22 /usr/X11/lib/libXrandr.so.2
Total size: 57058
Total new files: 25
--------------- Java Heap usage difference summary ----------
1c1
< Attaching to process ID 21979, please wait...
---
> Attaching to process ID 21980, please wait...
24,26c24,26
< used = 1326640 (1.2651824951171875MB)
< free = 704976 (0.6723175048828125MB)
< 65.29974168346774% used
---
> used = 1305224 (1.2447586059570312MB)
> free = 726392 (0.6927413940429688MB)
> 64.24560546875% used
29,31c29,31
< used = 1326640 (1.2651824951171875MB)
< free = 508368 (0.4848175048828125MB)
< 72.296142578125% used
---
> used = 1305224 (1.2447586059570312MB)
> free = 529784 (0.5052413940429688MB)
> 71.12906319754464% used
49,51c49,51
< used = 6066528 (5.785491943359375MB)
< free = 6516384 (6.214508056640625MB)
< 48.212432861328125% used
---
> used = 6266864 (5.9765472412109375MB)
> free = 6316048 (6.0234527587890625MB)
> 49.80456034342448% used
--------------- Difference in loaded classes-----------------
7a8,29
> com.sun.java.swing.plaf.gtk.GTKCachingPainter
> com.sun.java.swing.plaf.gtk.GTKColorType
> com.sun.java.swing.plaf.gtk.GTKConstants$StateType
> com.sun.java.swing.plaf.gtk.GTKConstants$StateType[]
> com.sun.java.swing.plaf.gtk.GTKEngine$Settings
> com.sun.java.swing.plaf.gtk.GTKEngine$Settings[]
> com.sun.java.swing.plaf.gtk.GTKGraphicsUtils
> com.sun.java.swing.plaf.gtk.GTKLookAndFeel
> com.sun.java.swing.plaf.gtk.GTKLookAndFeel$1
> com.sun.java.swing.plaf.gtk.GTKLookAndFeel$1FontLazyValue
> com.sun.java.swing.plaf.gtk.GTKLookAndFeel$2
> com.sun.java.swing.plaf.gtk.GTKLookAndFeel$WeakPCL
> com.sun.java.swing.plaf.gtk.GTKNativeEngine
> com.sun.java.swing.plaf.gtk.GTKNativeEngine$WidgetType
> com.sun.java.swing.plaf.gtk.GTKNativeEngine$WidgetType[]
> com.sun.java.swing.plaf.gtk.GTKNativeStyle
> com.sun.java.swing.plaf.gtk.GTKPainter
> com.sun.java.swing.plaf.gtk.GTKRegion
> com.sun.java.swing.plaf.gtk.GTKStyleFactory
> com.sun.java.swing.plaf.gtk.GTKStyle$GTKLazyValue
> com.sun.java.swing.plaf.gtk.GTKStyle$GTKStockIcon
> com.sun.java.swing.plaf.gtk.resources.gtk
9c31
< com.sun.swing.internal.plaf.metal.resources.metal
---
> com.sun.swing.internal.plaf.synth.resources.synth
130a153
> java.lang.Double
316d338
< javax.swing.plaf.basic.BasicPanelUI
323d344
< javax.swing.plaf.FontUIResource[]
326,338c347,358
< javax.swing.plaf.metal.DefaultMetalTheme$FontDelegate
< javax.swing.plaf.metal.MetalLookAndFeel
< javax.swing.plaf.metal.MetalLookAndFeel$AATextListener
< javax.swing.plaf.metal.MetalLookAndFeel$FontActiveValue
< javax.swing.plaf.metal.MetalLookAndFeel$MetalLazyValue
< javax.swing.plaf.metal.MetalRootPaneUI
< javax.swing.plaf.metal.OceanTheme
< javax.swing.plaf.metal.OceanTheme$1
< javax.swing.plaf.metal.OceanTheme$2
< javax.swing.plaf.metal.OceanTheme$3
< javax.swing.plaf.metal.OceanTheme$4
< javax.swing.plaf.metal.OceanTheme$5
< javax.swing.plaf.metal.OceanTheme$6
---
> javax.swing.plaf.synth.ColorType
> javax.swing.plaf.synth.DefaultSynthStyleFactory
> javax.swing.plaf.synth.Region
> javax.swing.plaf.synth.SynthBorder
> javax.swing.plaf.synth.SynthContext
> javax.swing.plaf.synth.SynthDefaultLookup
> javax.swing.plaf.synth.SynthGraphicsUtils
> javax.swing.plaf.synth.SynthLookAndFeel$AATextListener
> javax.swing.plaf.synth.SynthLookAndFeel$Handler
> javax.swing.plaf.synth.SynthPainter$1
> javax.swing.plaf.synth.SynthPanelUI
> javax.swing.plaf.synth.SynthRootPaneUI
366a387
> sun.awt.event.IgnorePaintEvent
406a428
> sun.awt.SunToolkit$3
430a453
> sun.awt.X11.XComponentPeer$1
431a455
> sun.awt.X11.XConfigureEvent
436a461
> sun.awt.X11.XExposeEvent
445a471
> sun.awt.X11.XMapEvent
465a492
> sun.awt.X11.XTranslateCoordinates
608c635,636
< sun.swing.PrintColorUIResource
---
> sun.swing.BakedArrayList
> sun.swing.CachedPainter$Cache
Total classes:
614 results/histo.21979.log
642 results/histo.21980.log
1256 total
-------------------------------------------------------------
Another data point. Here's a part of a summary of 1.5.0_06 vs 1.6.0
GTK L&F run. Not too good either. Note that in 1.5 we mmapp-ed
rt.jar and in 1.6 we don't so it's even worse than it looks.
The first process is 1.5.0_06, the second is 1.6 b63.
------------- Testing Java Processes ---------------------
10366 Test GTK -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
10367 Test GTK -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
--------------- prstat for Java Processes ----------------
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
10366 tdv 92M 40M sleep 59 0 0:00:02 3.9% java/12
10367 tdv 110M 50M sleep 59 0 0:00:02 4.2% java/13
Total: 2 processes, 25 lwps, load averages: 0.20, 0.10, 0.10
-------Memory mapping differences between the processes ----
Process Kbytes RSS Anon
10366 94480 47888 23464 -
10367 113104 80128 24336 -
-------------------------------------------------------------
Another point of reference. I've compared similar java and native gtk
applications.
I've attached the native gnome c apps to the bugreport, gtk_test.c and
gtk_button.c along with the results and updated "run" script, see
compare_footprint_native.zip file.
First, the applications which only put up an empty frame:
------------- Testing Java Processes ---------------------
8509 gtk_test
8510 Test GTK -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
--------------- prstat for Java Processes ----------------
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
8510 tdv 110M 49M sleep 59 0 0:00:02 3.3% java/13
8509 tdv 59M 14M sleep 59 0 0:00:00 0.2% gtk_test/1
Total: 2 processes, 14 lwps, load averages: 0.16, 0.12, 0.07
-------Memory mapping differences between the processes ----
Process Kbytes RSS Anon
8509 60160 40776 1168 -
8510 112912 77088 24160 -
----------------- Newly loaded libraries -----------------
51 /lib/libaio.so.1
24 /lib/libm.so.1
48 /lib/librt.so.1
14 /lib/libsendfile.so.1
25 /lib/libthread.so.1
6640 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/client/libjvm.so
1576 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libawt.so
648 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libfontmanager.so
208 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libjava.so
1048 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libmlib_image.so
80 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libnet.so
33 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libnio.so
57 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libverify.so
80 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libzip.so
45 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/native_threads/libhpi.so
288 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/xawt/libmawt.so
34 /usr/lib/gtk-2.0/2.4.0/immodules/im-xim.so
6 /usr/lib/iconv/UTF-32%UTF-8.so
6 /usr/lib/iconv/UTF-8%UTF-32.so
63 /usr/lib/libCrun.so.1
3 /usr/lib/libsched.so.1
9 /usr/lib/pango/1.4.0/modules/pango-basic-fc.so
31 /usr/openwin/lib/libXtst.so.1
Total size: 11017
Total new files: 23
And here's the result for applications with only a button:
------------- Testing Java Processes ---------------------
8758 gtk_button
8759 ButtonTest GTK -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
--------------- prstat for Java Processes ----------------
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
8759 tdv 103M 49M sleep 59 0 0:00:02 4.7% java/13
8758 tdv 59M 16M sleep 59 0 0:00:00 0.4% gtk_button/1
Total: 2 processes, 14 lwps, load averages: 0.25, 0.15, 0.09
-------Memory mapping differences between the processes ----
Process Kbytes RSS Anon
8758 60888 41248 1736 -
8759 105160 74880 24680 -
----------------- Newly loaded libraries -----------------
51 /lib/libaio.so.1
24 /lib/libm.so.1
48 /lib/librt.so.1
14 /lib/libsendfile.so.1
25 /lib/libthread.so.1
6640 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/client/libjvm.so
1576 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libawt.so
648 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libfontmanager.so
208 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libjava.so
1048 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libmlib_image.so
80 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libnet.so
33 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libnio.so
57 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libverify.so
80 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/libzip.so
45 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/native_threads/libhpi.so
288 /net/jre.sfbay/p/v08/jdk/6.0/rc/b63/binaries/solaris-sparc/jre/lib/sparc/xawt/libmawt.so
34 /usr/lib/gtk-2.0/2.4.0/immodules/im-xim.so
6 /usr/lib/iconv/UTF-32%UTF-8.so
6 /usr/lib/iconv/UTF-8%UTF-32.so
63 /usr/lib/libCrun.so.1
3 /usr/lib/libsched.so.1
31 /usr/openwin/lib/libXtst.so.1
Total size: 11008
Total new files: 22