J2SE 1.5 : Memory Heap and Garbage Collector. Objectives. You will be able to understand the JVM Memory Heap You will be able to know what the Garbage Collector do You will be able to understand the impact of GC on J2EE application performance. JVM Object Garbage Collection.
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
Objectives • You will be able to understand the JVM Memory Heap • You will be able to know what the Garbage Collector do • You will be able to understand the impact of GC on J2EE application performance
JVM Object Garbage Collection • GC shields the developer from the complexity of memory allocation and garbage collection • GC is one of the principal bottleneck of J2EE applications • OutOfMemoryExceptions • Memory Leak
Generations If the garbage collector has become a bottleneck, you may wish to customize the generation sizes. Check the verbose garbage collector output, and then explore the sensitivity of your individual performance metric to the garbage collector parameters.
Throughput Collector • The Throughput Collector is selected by the default if the JVM is runinng in server mode • Can be enabled using the command line flag -XX:+UseParallelGC
Performance Consideration • Throughput: percentage of total time not spent in garbage collection • Pauses: the times when an application appears unresponsive because garbage collection is occurring
Measurement: Command Line • -verbose:gc • -XX:PrintGCDetails • -XX:PrintGCTimeStamp • -XX:+PrintTenuringDistribution • -XX:PrintHeapAtGC • -Xloggc:<filename>
Sizing the Generations • -Xms<size> • -Xmx<size> • -XX:NewSize=<size> • -XX:MaxNewSize=<size> • -XX:MaxPermSize=<size> • -XX:+UseTLAB • -XX:MaxTenuredThreshhold=32
Sizing the Generations JAVA_OPTS=$JAVA_OPTS -Xms1200m –Xmx1200m –XX:NewSize=400M –XX:MaxNewSize=400M –XX:SurvivorRatio=32 –XX:+UseTLAB –XX:TLABSize=64K