-
Bug
-
Resolution: Won't Fix
-
P4
-
None
-
1.3.0
-
sparc
-
solaris_8
Area's intersect method is computation- and memory-intensive. We have
seen well over 100MB of memory allocated to intersect a 40000 node
Shape. This test program will reproduce large memory and CPU
consumption with either 1.2 or 1.3 VMs.
Optimizeit output is included at the bottom of this file.
Files in gifclient/:
ClipBugExample.java
ASCIIShapeUtil.java
shape.txt
Compile:
javac gifclient/*.java
Usage:
java gifclient.ClipBugExample 400 160 20 10 gifclient/shape.txt
Output, with details of memory usage:
% java -verbose:gc -Xmx128m gifclient.ClipBugExample 400 160 20 10 gifclient/shape.txt
[GC 2047K->148K(3520K), 0.0107659 secs]
[GC 2195K->224K(3520K), 0.0060096 secs]
[GC 2260K->322K(3520K), 0.0023054 secs]
[GC 2370K->444K(3520K), 0.0029046 secs]
[GC 2492K->588K(3520K), 0.0031883 secs]
[GC 2583K->752K(3520K), 0.0036002 secs]
[GC 2733K->936K(3520K), 0.0038260 secs]
[GC 2984K->1138K(3520K), 0.0042750 secs]
[GC 3186K->1361K(3520K), 0.0042826 secs]
[GC 3409K->1599K(3760K), 0.0050657 secs]
[Full GC 3537K->432K(3520K), 0.0379503 secs]
[GC 2449K->733K(3520K), 0.0021912 secs]
[GC 2778K->1018K(3520K), 0.0025819 secs]
[GC 3065K->1318K(3520K), 0.0025774 secs]
Cubic segments: 0
Path close Segments: 1296
Pen Down Segments: 37156
Pen Up Segments: 1296
Quadratic segments: 0
[GC 3300K->2977K(5104K), 0.0700558 secs]
[Full GC 5025K->3734K(7104K), 0.1761301 secs]
[GC 5039K->4959K(7104K), 0.1527277 secs]
[GC 7007K->6533K(8664K), 0.0916195 secs]
[Full GC 8581K->8175K(13608K), 0.3463584 secs]
[GC 9175K->8990K(13608K), 0.1995273 secs]
[GC 11614K->11147K(13864K), 0.1412061 secs]
[Full GC 13771K->13226K(23304K), 0.6868031 secs]
[GC 15783K->15318K(23304K), 0.3574240 secs]
[GC 19926K->19093K(23816K), 0.2360417 secs]
[Full GC 23701K->22880K(39848K), 0.8804036 secs]
[GC 27015K->26277K(39848K), 0.6208483 secs]
[GC 34149K->32724K(40616K), 0.4085534 secs]
[Full GC 40596K->39202K(67976K), 1.4874448 secs]
[GC 45991K->44787K(67976K), 1.0870247 secs]
[GC 58099K->55605K(69000K), 0.6820299 secs]
[Full GC 68917K->66450K(115344K), 2.5816931 secs]
[GC 78023K->75894K(115344K), 1.8344380 secs]
{tpg@surprise:173} java -version
java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0)
Java HotSpot(TM) Client VM (build 1.3.0, mixed mode)
% java -version
java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0)
Java HotSpot(TM) Client VM (build 1.3.0, mixed mode)
% swap -s
total: 132848k bytes allocated + 23736k reserved = 156584k used, 760184k available
% prtconf | grep -i mega
Memory size: 512 Megabytes
% uname -srvmpi
SunOS 5.8 Generic sun4u sparc SUNW,Ultra-5_10
==============================================
Heap dump at end of a Run with a 128MB heap,
from Optimizeit, running with 1.2.2 Reference JVM:
Current heap of application gifclient.ClipBugExample
----------------------------------------------------
Class name Instance count Difference
--------------------------------- -------------- ----------
sun.awt.geom.CurveLink 2000712 + 1217282
sun.awt.geom.Order1 76760 + 38379
sun.awt.geom.Edge 76760 + 38381
sun.awt.geom.Order0 2565 + 1268
Object[] 31 - 622
java.lang.Class 31 + 2
char[] 12 None
java.util.Vector 12 + 5
java.lang.String 9 None
double[] 6 + 1
int[] 4 None
java.util.Vector$1 3 + 3
java.io.FileDescriptor 2 None
java.awt.geom.Area 2 None
float[] 2 None
java.lang.ref.Finalizer 2 None
java.io.FileInputStream 2 None
java.awt.geom.GeneralPathIterator 1 None
sun.awt.geom.AreaOp$IntOp 1 + 1
long[] 1 None
java.lang.ClassNotFoundException 1 None
sun.awt.geom.AreaOp$1 1 None
java.awt.geom.Rectangle2D$Double 1 None
sun.awt.geom.AreaOp$NZWindOp 1 None
byte[] 1 None
java.awt.geom.GeneralPath 1 None
seen well over 100MB of memory allocated to intersect a 40000 node
Shape. This test program will reproduce large memory and CPU
consumption with either 1.2 or 1.3 VMs.
Optimizeit output is included at the bottom of this file.
Files in gifclient/:
ClipBugExample.java
ASCIIShapeUtil.java
shape.txt
Compile:
javac gifclient/*.java
Usage:
java gifclient.ClipBugExample 400 160 20 10 gifclient/shape.txt
Output, with details of memory usage:
% java -verbose:gc -Xmx128m gifclient.ClipBugExample 400 160 20 10 gifclient/shape.txt
[GC 2047K->148K(3520K), 0.0107659 secs]
[GC 2195K->224K(3520K), 0.0060096 secs]
[GC 2260K->322K(3520K), 0.0023054 secs]
[GC 2370K->444K(3520K), 0.0029046 secs]
[GC 2492K->588K(3520K), 0.0031883 secs]
[GC 2583K->752K(3520K), 0.0036002 secs]
[GC 2733K->936K(3520K), 0.0038260 secs]
[GC 2984K->1138K(3520K), 0.0042750 secs]
[GC 3186K->1361K(3520K), 0.0042826 secs]
[GC 3409K->1599K(3760K), 0.0050657 secs]
[Full GC 3537K->432K(3520K), 0.0379503 secs]
[GC 2449K->733K(3520K), 0.0021912 secs]
[GC 2778K->1018K(3520K), 0.0025819 secs]
[GC 3065K->1318K(3520K), 0.0025774 secs]
Cubic segments: 0
Path close Segments: 1296
Pen Down Segments: 37156
Pen Up Segments: 1296
Quadratic segments: 0
[GC 3300K->2977K(5104K), 0.0700558 secs]
[Full GC 5025K->3734K(7104K), 0.1761301 secs]
[GC 5039K->4959K(7104K), 0.1527277 secs]
[GC 7007K->6533K(8664K), 0.0916195 secs]
[Full GC 8581K->8175K(13608K), 0.3463584 secs]
[GC 9175K->8990K(13608K), 0.1995273 secs]
[GC 11614K->11147K(13864K), 0.1412061 secs]
[Full GC 13771K->13226K(23304K), 0.6868031 secs]
[GC 15783K->15318K(23304K), 0.3574240 secs]
[GC 19926K->19093K(23816K), 0.2360417 secs]
[Full GC 23701K->22880K(39848K), 0.8804036 secs]
[GC 27015K->26277K(39848K), 0.6208483 secs]
[GC 34149K->32724K(40616K), 0.4085534 secs]
[Full GC 40596K->39202K(67976K), 1.4874448 secs]
[GC 45991K->44787K(67976K), 1.0870247 secs]
[GC 58099K->55605K(69000K), 0.6820299 secs]
[Full GC 68917K->66450K(115344K), 2.5816931 secs]
[GC 78023K->75894K(115344K), 1.8344380 secs]
{tpg@surprise:173} java -version
java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0)
Java HotSpot(TM) Client VM (build 1.3.0, mixed mode)
% java -version
java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0)
Java HotSpot(TM) Client VM (build 1.3.0, mixed mode)
% swap -s
total: 132848k bytes allocated + 23736k reserved = 156584k used, 760184k available
% prtconf | grep -i mega
Memory size: 512 Megabytes
% uname -srvmpi
SunOS 5.8 Generic sun4u sparc SUNW,Ultra-5_10
==============================================
Heap dump at end of a Run with a 128MB heap,
from Optimizeit, running with 1.2.2 Reference JVM:
Current heap of application gifclient.ClipBugExample
----------------------------------------------------
Class name Instance count Difference
--------------------------------- -------------- ----------
sun.awt.geom.CurveLink 2000712 + 1217282
sun.awt.geom.Order1 76760 + 38379
sun.awt.geom.Edge 76760 + 38381
sun.awt.geom.Order0 2565 + 1268
Object[] 31 - 622
java.lang.Class 31 + 2
char[] 12 None
java.util.Vector 12 + 5
java.lang.String 9 None
double[] 6 + 1
int[] 4 None
java.util.Vector$1 3 + 3
java.io.FileDescriptor 2 None
java.awt.geom.Area 2 None
float[] 2 None
java.lang.ref.Finalizer 2 None
java.io.FileInputStream 2 None
java.awt.geom.GeneralPathIterator 1 None
sun.awt.geom.AreaOp$IntOp 1 + 1
long[] 1 None
java.lang.ClassNotFoundException 1 None
sun.awt.geom.AreaOp$1 1 None
java.awt.geom.Rectangle2D$Double 1 None
sun.awt.geom.AreaOp$NZWindOp 1 None
byte[] 1 None
java.awt.geom.GeneralPath 1 None