71 "-Xmx128M",
72 "-Xmn16M",
73 "-XX:G1HeapRegionSize=1M",
74 "-XX:+PrintGC",
75 "-XX:+UnlockExperimentalVMOptions",
76 "-XX:G1LogLevel=finest",
77 "-XX:+G1TraceReclaimDeadHumongousObjectsAtYoungGC",
78 GCWithHumongousObjectTest.class.getName());
79
80 OutputAnalyzer output = new OutputAnalyzer(pb.start());
81
82 // As G1ReclaimDeadHumongousObjectsAtYoungGC is set(default), below logs should be displayed.
83 output.shouldContain("[Humongous Reclaim");
84 output.shouldContain("[Humongous Total");
85 output.shouldContain("[Humongous Candidate");
86 output.shouldContain("[Humongous Reclaimed");
87
88 // As G1TraceReclaimDeadHumongousObjectsAtYoungGC is set and GCWithHumongousObjectTest has humongous objects,
89 // these logs should be displayed.
90 output.shouldContain("Live humongous");
91 output.shouldContain("Reclaim humongous region");
92 output.shouldHaveExitValue(0);
93 }
94
95 static class GCTest {
96 private static byte[] garbage;
97
98 public static void main(String [] args) {
99 System.out.println("Creating garbage");
100 // create 128MB of garbage. This should result in at least one GC
101 for (int i = 0; i < 1024; i++) {
102 garbage = new byte[128 * 1024];
103 }
104 System.out.println("Done");
105 }
106 }
107
108 static class GCWithHumongousObjectTest {
109
110 public static final int M = 1024*1024;
111 public static LinkedList<Object> garbageList = new LinkedList<Object>();
|
71 "-Xmx128M",
72 "-Xmn16M",
73 "-XX:G1HeapRegionSize=1M",
74 "-XX:+PrintGC",
75 "-XX:+UnlockExperimentalVMOptions",
76 "-XX:G1LogLevel=finest",
77 "-XX:+G1TraceReclaimDeadHumongousObjectsAtYoungGC",
78 GCWithHumongousObjectTest.class.getName());
79
80 OutputAnalyzer output = new OutputAnalyzer(pb.start());
81
82 // As G1ReclaimDeadHumongousObjectsAtYoungGC is set(default), below logs should be displayed.
83 output.shouldContain("[Humongous Reclaim");
84 output.shouldContain("[Humongous Total");
85 output.shouldContain("[Humongous Candidate");
86 output.shouldContain("[Humongous Reclaimed");
87
88 // As G1TraceReclaimDeadHumongousObjectsAtYoungGC is set and GCWithHumongousObjectTest has humongous objects,
89 // these logs should be displayed.
90 output.shouldContain("Live humongous");
91 output.shouldContain("Dead humongous region");
92 output.shouldHaveExitValue(0);
93 }
94
95 static class GCTest {
96 private static byte[] garbage;
97
98 public static void main(String [] args) {
99 System.out.println("Creating garbage");
100 // create 128MB of garbage. This should result in at least one GC
101 for (int i = 0; i < 1024; i++) {
102 garbage = new byte[128 * 1024];
103 }
104 System.out.println("Done");
105 }
106 }
107
108 static class GCWithHumongousObjectTest {
109
110 public static final int M = 1024*1024;
111 public static LinkedList<Object> garbageList = new LinkedList<Object>();
|