An OutOfMemory occurs when the heap has been expanded to the maximum permitted and a GC was unable to free up enough space. I suggest in the first instance observing the results of each GC. Options like -verbose:gc or -Xloggc:<file> give some basic information, but a more detailed understanding about the various regions within the heap can be obtained through a combination of -XX options such as:
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution Short of using a commercial profiling tool, you could also obtain a Heap Allocation Profile to see where large amounts of object data are being allocated but not freed: java -Xrunhprof:heap=all,depth=15 TestApp Further information can be found at the following URLs: http://java.sun.com/docs/hotspot/gc1.4.2/index.html http://java.sun.com/docs/hotspot/gc5.0/gc_tuning_5.html http://java.sun.com/j2se/1.4.2/docs/guide/jvmpi/jvmpi.html http://java.sun.com/j2se/1.5.0/docs/guide/jvmti/jvmti.html -- ============================================================================ ,-_|\ Richard Smith - Technical Specialist / \ Sun Microsystems Australia Phone : +61 3 9869 6200 [EMAIL PROTECTED] Direct : +61 3 9869 6224 \_,-._/ 476 St Kilda Road Fax : +61 3 9869 6290 v Melbourne Vic 3004 Australia =========================================================================== =========================================================================== To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff JAVA3D-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help".