mirror of
https://github.com/openjdk/jdk.git
synced 2026-01-28 12:09:14 +00:00
8325496: Make TrimNativeHeapInterval a product switch
Reviewed-by: dholmes, mbaesken
This commit is contained in:
parent
27003b53bb
commit
d31fd78d96
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -1987,7 +1987,7 @@ const int ObjectAlignmentInBytes = 8;
|
||||
"2: monitors & new lightweight locking (LM_LIGHTWEIGHT)") \
|
||||
range(0, 2) \
|
||||
\
|
||||
product(uint, TrimNativeHeapInterval, 0, EXPERIMENTAL, \
|
||||
product(uint, TrimNativeHeapInterval, 0, \
|
||||
"Interval, in ms, at which the JVM will trim the native heap if " \
|
||||
"the platform supports that. Lower values will reclaim memory " \
|
||||
"more eagerly at the cost of higher overhead. A value of 0 " \
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
.\" Copyright (c) 1994, 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
.\" Copyright (c) 1994, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
.\"
|
||||
.\" This code is free software; you can redistribute it and/or modify it
|
||||
@ -1482,6 +1482,17 @@ usage by individual \f[V]CallSite\f[R], individual virtual memory region
|
||||
and its committed regions.
|
||||
.RE
|
||||
.TP
|
||||
\f[V]-XX:TrimNativeHeapInterval=\f[R]\f[I]millis\f[R]
|
||||
Interval, in ms, at which the JVM will trim the native heap.
|
||||
Lower values will reclaim memory more eagerly at the cost of higher
|
||||
overhead.
|
||||
A value of 0 (default) disables native heap trimming.
|
||||
Native heap trimming is performed in a dedicated thread.
|
||||
.RS
|
||||
.PP
|
||||
This option is only supported on Linux with GNU C Library (glibc).
|
||||
.RE
|
||||
.TP
|
||||
\f[V]-XX:+NeverActAsServerClassMachine\f[R]
|
||||
Enable the \[dq]Client VM emulation\[dq] mode which only uses the C1 JIT
|
||||
compiler, a 32Mb CodeCache and the Serial GC.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2023 Red Hat, Inc. All rights reserved.
|
||||
* Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2023, 2024, Red Hat, Inc. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -29,5 +29,5 @@
|
||||
* @modules java.base/jdk.internal.misc
|
||||
* java.xml
|
||||
* @requires vm.flagless
|
||||
* @run main/native GTestWrapper --gtest_filter=os.trim* -Xlog:trimnative -XX:+UnlockExperimentalVMOptions -XX:TrimNativeHeapInterval=100
|
||||
* @run main/native GTestWrapper --gtest_filter=os.trim* -Xlog:trimnative -XX:TrimNativeHeapInterval=100
|
||||
*/
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Copyright (c) 2023 SAP SE. All rights reserved.
|
||||
* Copyright (c) 2023 Red Hat, Inc. All rights reserved.
|
||||
* Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2023, 2024, Red Hat, Inc. All rights reserved.
|
||||
* Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -278,7 +278,7 @@ public class TestTrimNative {
|
||||
long trimInterval = 500; // twice per second
|
||||
long ms1 = System.currentTimeMillis();
|
||||
OutputAnalyzer output = runTestWithOptions(
|
||||
new String[] { "-XX:+UnlockExperimentalVMOptions", "-XX:TrimNativeHeapInterval=" + trimInterval },
|
||||
new String[] { "-XX:TrimNativeHeapInterval=" + trimInterval },
|
||||
new String[] { TestTrimNative.Tester.class.getName(), "5000" }
|
||||
);
|
||||
long ms2 = System.currentTimeMillis();
|
||||
@ -293,7 +293,7 @@ public class TestTrimNative {
|
||||
|
||||
case "trimNativeHighInterval": {
|
||||
OutputAnalyzer output = runTestWithOptions(
|
||||
new String[] { "-XX:+UnlockExperimentalVMOptions", "-XX:TrimNativeHeapInterval=" + Integer.MAX_VALUE },
|
||||
new String[] { "-XX:TrimNativeHeapInterval=" + Integer.MAX_VALUE },
|
||||
new String[] { TestTrimNative.Tester.class.getName(), "5000" }
|
||||
);
|
||||
checkExpectedLogMessages(output, true, Integer.MAX_VALUE);
|
||||
@ -305,7 +305,7 @@ public class TestTrimNative {
|
||||
case "trimNativeLowIntervalStrict": {
|
||||
long ms1 = System.currentTimeMillis();
|
||||
OutputAnalyzer output = runTestWithOptions(
|
||||
new String[] { "-XX:+UnlockExperimentalVMOptions", "-XX:TrimNativeHeapInterval=1" },
|
||||
new String[] { "-XX:TrimNativeHeapInterval=1" },
|
||||
new String[] { TestTrimNative.Tester.class.getName(), "0" }
|
||||
);
|
||||
long ms2 = System.currentTimeMillis();
|
||||
@ -316,7 +316,7 @@ public class TestTrimNative {
|
||||
|
||||
case "testOffOnNonCompliantPlatforms": {
|
||||
OutputAnalyzer output = runTestWithOptions(
|
||||
new String[] { "-XX:+UnlockExperimentalVMOptions", "-XX:TrimNativeHeapInterval=1" },
|
||||
new String[] { "-XX:TrimNativeHeapInterval=1" },
|
||||
new String[] { "-version" }
|
||||
);
|
||||
checkExpectedLogMessages(output, false, 0);
|
||||
@ -327,7 +327,7 @@ public class TestTrimNative {
|
||||
|
||||
case "testOffExplicit": {
|
||||
OutputAnalyzer output = runTestWithOptions(
|
||||
new String[] { "-XX:+UnlockExperimentalVMOptions", "-XX:TrimNativeHeapInterval=0" },
|
||||
new String[] { "-XX:TrimNativeHeapInterval=0" },
|
||||
new String[] { "-version" }
|
||||
);
|
||||
checkExpectedLogMessages(output, false, 0);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user