Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/hotspot/jtreg/gc/shenandoah/TestDynamicSoftMaxHeapSize.java
40942 views
1
/*
2
* Copyright (c) 2020, Red Hat, Inc. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*
23
*/
24
25
/*
26
* @test TestDynamicSoftMaxHeapSize
27
* @requires vm.gc.Shenandoah
28
* @library /test/lib
29
*
30
* @run main/othervm -Xms16m -Xmx512m -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
31
* -XX:+UseShenandoahGC -XX:ShenandoahGCMode=passive
32
* -XX:+ShenandoahDegeneratedGC
33
* -Dtarget=10000
34
* TestDynamicSoftMaxHeapSize
35
*
36
* @run main/othervm -Xms16m -Xmx512m -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
37
* -XX:+UseShenandoahGC -XX:ShenandoahGCMode=passive
38
* -XX:-ShenandoahDegeneratedGC
39
* -Dtarget=10000
40
* TestDynamicSoftMaxHeapSize
41
*/
42
43
/*
44
* @test TestDynamicSoftMaxHeapSize
45
* @requires vm.gc.Shenandoah
46
* @library /test/lib
47
*
48
* @run main/othervm -Xms16m -Xmx512m -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
49
* -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=aggressive
50
* -Dtarget=1000
51
* TestDynamicSoftMaxHeapSize
52
*/
53
54
/*
55
* @test TestDynamicSoftMaxHeapSize
56
* @requires vm.gc.Shenandoah
57
* @library /test/lib
58
*
59
* @run main/othervm -Xms16m -Xmx512m -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
60
* -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=adaptive
61
* -Dtarget=10000
62
* TestDynamicSoftMaxHeapSize
63
*/
64
65
/*
66
* @test TestDynamicSoftMaxHeapSize
67
* @requires vm.gc.Shenandoah
68
* @library /test/lib
69
*
70
* @run main/othervm -Xms16m -Xmx512m -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
71
* -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=static
72
* -Dtarget=10000
73
* TestDynamicSoftMaxHeapSize
74
*/
75
76
/*
77
* @test TestDynamicSoftMaxHeapSize
78
* @requires vm.gc.Shenandoah
79
* @library /test/lib
80
*
81
* @run main/othervm -Xms16m -Xmx512m -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
82
* -XX:+UseShenandoahGC -XX:ShenandoahGCHeuristics=compact
83
* -Dtarget=1000
84
* TestDynamicSoftMaxHeapSize
85
*/
86
87
/*
88
* @test TestDynamicSoftMaxHeapSize
89
* @requires vm.gc.Shenandoah
90
* @library /test/lib
91
*
92
* @run main/othervm -Xms16m -Xmx512m -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
93
* -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu -XX:ShenandoahGCHeuristics=aggressive
94
* -Dtarget=1000
95
* TestDynamicSoftMaxHeapSize
96
*/
97
98
/*
99
* @test TestDynamicSoftMaxHeapSize
100
* @requires vm.gc.Shenandoah
101
* @library /test/lib
102
*
103
* @run main/othervm -Xms16m -Xmx512m -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions
104
* -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu
105
* -Dtarget=10000
106
* TestDynamicSoftMaxHeapSize
107
*/
108
109
import java.util.Random;
110
import jdk.test.lib.Utils;
111
import jdk.test.lib.process.OutputAnalyzer;
112
import jdk.test.lib.process.ProcessTools;
113
import jdk.test.lib.dcmd.PidJcmdExecutor;
114
115
public class TestDynamicSoftMaxHeapSize {
116
117
static final long TARGET_MB = Long.getLong("target", 10_000); // 10 Gb allocation
118
static final long STRIDE = 10_000_000;
119
120
static volatile Object sink;
121
122
public static void main(String[] args) throws Exception {
123
long count = TARGET_MB * 1024 * 1024 / 16;
124
Random r = Utils.getRandomInstance();
125
PidJcmdExecutor jcmd = new PidJcmdExecutor();
126
127
for (long c = 0; c < count; c += STRIDE) {
128
// Sizes specifically include heaps below Xms and above Xmx to test saturation code.
129
jcmd.execute("VM.set_flag SoftMaxHeapSize " + r.nextInt(768*1024*1024), true);
130
for (long s = 0; s < STRIDE; s++) {
131
sink = new Object();
132
}
133
Thread.sleep(1);
134
}
135
}
136
137
}
138
139