60 * TestStringInternCleanup
61 *
62 * @run main/othervm -Xmx64m -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+ClassUnloadingWithConcurrentMark
63 * -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=adaptive
64 * -XX:+ShenandoahVerify
65 * TestStringInternCleanup
66 *
67 * @run main/othervm -Xmx64m -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+ClassUnloadingWithConcurrentMark
68 * -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=adaptive
69 * TestStringInternCleanup
70 *
71 * @run main/othervm -Xmx64m -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+ClassUnloadingWithConcurrentMark
72 * -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=compact
73 * TestStringInternCleanup
74 *
75 * @run main/othervm -Xmx64m -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:-ClassUnloadingWithConcurrentMark
76 * -XX:+UseShenandoahGC
77 * TestStringInternCleanup
78 */
79
80 public class TestStringInternCleanup {
81
82 static final int COUNT = 1_000_000;
83 static final int WINDOW = 1_000;
84
85 static final String[] reachable = new String[WINDOW];
86
87 public static void main(String[] args) throws Exception {
88 int rIdx = 0;
89 for (int c = 0; c < COUNT; c++) {
90 reachable[rIdx] = ("LargeInternedString" + c).intern();
91 rIdx++;
92 if (rIdx >= WINDOW) {
93 rIdx = 0;
94 }
95 }
96 }
97
98 }
|
60 * TestStringInternCleanup
61 *
62 * @run main/othervm -Xmx64m -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+ClassUnloadingWithConcurrentMark
63 * -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=adaptive
64 * -XX:+ShenandoahVerify
65 * TestStringInternCleanup
66 *
67 * @run main/othervm -Xmx64m -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+ClassUnloadingWithConcurrentMark
68 * -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=adaptive
69 * TestStringInternCleanup
70 *
71 * @run main/othervm -Xmx64m -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+ClassUnloadingWithConcurrentMark
72 * -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=compact
73 * TestStringInternCleanup
74 *
75 * @run main/othervm -Xmx64m -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:-ClassUnloadingWithConcurrentMark
76 * -XX:+UseShenandoahGC
77 * TestStringInternCleanup
78 */
79
80 /*
81 * @test TestStringInternCleanup
82 * @summary Check that Shenandoah cleans up interned strings
83 * @key gc
84 * @requires vm.gc.Shenandoah & !vm.graal.enabled
85 *
86 * @run main/othervm -Xmx64m -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+ClassUnloadingWithConcurrentMark
87 * -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu
88 * -XX:+ShenandoahVerify
89 * TestStringInternCleanup
90 *
91 * @run main/othervm -Xmx64m -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+ClassUnloadingWithConcurrentMark
92 * -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu -XX:ShenandoahGCHeuristics=aggressive
93 * -XX:+ShenandoahVerify
94 * TestStringInternCleanup
95 *
96 * @run main/othervm -Xmx64m -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+ClassUnloadingWithConcurrentMark
97 * -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu
98 * TestStringInternCleanup
99 */
100
101 public class TestStringInternCleanup {
102
103 static final int COUNT = 1_000_000;
104 static final int WINDOW = 1_000;
105
106 static final String[] reachable = new String[WINDOW];
107
108 public static void main(String[] args) throws Exception {
109 int rIdx = 0;
110 for (int c = 0; c < COUNT; c++) {
111 reachable[rIdx] = ("LargeInternedString" + c).intern();
112 rIdx++;
113 if (rIdx >= WINDOW) {
114 rIdx = 0;
115 }
116 }
117 }
118
119 }
|