Tutorial Addendum on JVM - Debris Accumulating
| |
I aswell approved to ability 7.5 MB, but failed:
java -Xms2m -Xmx8m GCTest 16 44 > tail_16_44.out
Time Absolute Chargeless Chargeless Absolute Act. Asleep Over
sec. Mem. Mem. Per. Obj. Obj. Obj. Head
0 1984 1815 91% 0 0 0 169
0 1984 1682 84% 128 128 0 174
1 1984 1552 78% 256 256 0 176
....
20 5484 390 7% 4992 4992 0 102
20 5484 260 4% 5120 5120 0 104
21 8128 2780 34% 5248 5248 0 100
21 8128 2652 32% 5376 5376 0 100
....
51 8128 272 3% 7680 2432 5248 176
51 8128 270 3% 7680 2304 5376 178
52 8128 268 3% 7680 2176 5504 180
52 8128 266 3% 7680 2048 5632 182
53 8128 136 1% 7808 2176 5632 184
Exception in cilia "main" java.lang.OutOfMemoryError
It is actual absorbing to see that the JVM died out of memory, but there
was 5632KB anamnesis as garbage. Why did the JVM not collect
the garbages at that time?
Comparing with JDK 1.4.0, JDK 1.3.1 did a acceptable job in accession garbages.
JDK 1.3.1 allowed
GCTest to use upto 88% of the absolute memory, while JDK 1.4.0 comatose if GCTest
tring to get 63% of the absolute memory.
Comparison - Applicant vs. Server
I aswell create some tests to analyze amid the applicant adaptation and the server
version of JDK 1.4.0.
java -server -Xms2m -Xmx8m GCTest 16 24 > tail_16_24.out
But the program ran out of anamnesis the aforementioned way as the applicant version:
Time Absolute Chargeless Chargeless Absolute Act. Asleep Over
sec. Mem. Mem. Per. Obj. Obj. Obj. Head
0 1984 1726 86% 0 0 0 258
0 1984 1593 80% 128 128 0 263
1 1984 1463 73% 256 256 0 265
....
19 5260 357 6% 4736 4736 0 167
19 5260 227 4% 4864 4864 0 169
20 8128 2997 36% 4992 4992 0 139
20 8128 2867 35% 5120 5120 0 141
21 8128 2866 35% 5120 4992 128 142
21 8128 2864 35% 5120 4864 256 144
....
41 8128 482 5% 7424 4352 3072 222
42 8128 352 4% 7552 4480 3072 224
42 8128 223 2% 7680 4608 3072 225
Exception in cilia "main" java.lang.OutOfMemoryError
|
total, memory, client, garbage, , obj obj, 35% 5120, thread main java, main java lang, free free total, total free free, xms2m xmx8m gctest, jvm garbage collection, |
Also see ...
OverviewJRockit JVM is developed by BEA Systems, and declared by them as:blockquoteBEA WebLogic JRockit is the alone aboveboard top achievement Java Basic Mach
Installing JRockit JVM 8.0One of the JRockit developers saw my addendum on JRockit 7.0 on the Web, and appropriate me to try JRockit 8.0. So I downloaded the appraisal adaptation of JRockit
Test 3: Active LongWhile with JRockit additional ManagementIn this test, I capital to seewhat s the appulse of active JRockit with the Administration advantage angry on: loc
Test 6: Active LongSleep with HotSpotFor allegory purposes, I launched LongSleep with HotSpot JVM: localj2sdk1.4.1_01injava LongSleep Chargeless memory: 1781480Total
Let s use the afterward simple program to see how the Administration Animate works: /** * LongWhile.java * Absorb (c) 2002 by Dr. Yang */class LongWhile { accessible changeless
OverviewGenerally, a JVM is using the afterward rules to administer memory: When a JVM is invoked to run an application, it will ask the operating arrangement
Output on JRockit JVM with Xms2m Xmx64m Having 0 MB and abacus 10 MB... Chargeless memory: 8717040Total memory: 19419136Having 10 MB and abacus 10 MB... Chargeless memory: 8698800p