23 Star 19 Fork 74

src-openEuler / openjdk-1.8.0

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
fix-Long-cache-range-and-remove-VM-option-java.lang.IntegerCache.high-by-default.patch 3.30 KB
一键复制 编辑 原始数据 按行查看 历史
Noah 提交于 2020-08-25 11:18 . Update to aarch64-shenandoah-jdk8u-8u265-b01
diff --git a/hotspot/src/share/vm/opto/c2_globals.hpp b/hotspot/src/share/vm/opto/c2_globals.hpp
index 8e6d3f4cd..1b5fbdd35 100644
--- a/hotspot/src/share/vm/opto/c2_globals.hpp
+++ b/hotspot/src/share/vm/opto/c2_globals.hpp
@@ -467,7 +467,7 @@
product(intx, AutoBoxCacheMax, 128, \
"Sets max value cached by the java.lang.Integer autobox cache") \
\
- product(intx, BoxTypeCachedMax, 128, \
+ product(intx, BoxTypeCachedMax, 127, \
"Sets max value cached by the java.lang.Long and Integer autobox cache") \
\
experimental(bool, AggressiveUnboxing, false, \
diff --git a/hotspot/src/share/vm/runtime/arguments.cpp b/hotspot/src/share/vm/runtime/arguments.cpp
index 0f6decc0b..a04dcacf9 100644
--- a/hotspot/src/share/vm/runtime/arguments.cpp
+++ b/hotspot/src/share/vm/runtime/arguments.cpp
@@ -2178,20 +2178,16 @@ void Arguments::set_bytecode_flags() {
// set Integer and Long box type cached MAX num flag : -XX:BoxTypeCachedMax=<size>
void Arguments::set_boxtype_cached_max_flags() {
- int size = 1024;
- char buffer[size];
- jio_snprintf(buffer, size, "java.lang.Long.LongCache.high=" INTX_FORMAT, BoxTypeCachedMax);
- add_property(buffer);
-
- if (AggressiveOpts || !FLAG_IS_DEFAULT(AutoBoxCacheMax)) {
- if (FLAG_IS_DEFAULT(AutoBoxCacheMax)) {
- FLAG_SET_DEFAULT(AutoBoxCacheMax, 20000);
+ if (!AggressiveOpts) {
+ if (!FLAG_IS_DEFAULT(BoxTypeCachedMax)) {
+ int size = 1024;
+ char buffer[size];
+ jio_snprintf(buffer, size, "java.lang.Long.LongCache.high=" INTX_FORMAT, BoxTypeCachedMax);
+ add_property(buffer);
+ jio_snprintf(buffer, size, "java.lang.Integer.IntegerCache.high=" INTX_FORMAT, BoxTypeCachedMax);
+ add_property(buffer);
}
- jio_snprintf(buffer, size, "java.lang.Integer.IntegerCache.high=" INTX_FORMAT, AutoBoxCacheMax);
- } else {
- jio_snprintf(buffer, size, "java.lang.Integer.IntegerCache.high=" INTX_FORMAT, BoxTypeCachedMax);
}
- add_property(buffer);
}
// Aggressive optimization flags -XX:+AggressiveOpts
diff --git a/jdk/src/share/classes/java/lang/Long.java b/jdk/src/share/classes/java/lang/Long.java
index d56f4c6be..58c2cc3ba 100644
--- a/jdk/src/share/classes/java/lang/Long.java
+++ b/jdk/src/share/classes/java/lang/Long.java
@@ -820,14 +820,14 @@ public final class Long extends Number implements Comparable<Long> {
int h = 0;
try {
int i = Integer.parseInt(longCacheHighPropValue);
- i = Math.max(i, 128);
+ i = Math.max(i, 127);
// Maximum array size is Integer.MAX_VALUE
h = Math.min(i, Integer.MAX_VALUE/2 -1);
} catch( NumberFormatException nfe) {
// If the property cannot be parsed into an int, ignore it.
}
high = h;
- low = -h+1;
+ low = -h - 1;
cache = new Long[(high - low) + 1];
int j = low;
for(int k = 0; k < cache.length; k++)
1
https://gitee.com/src-openeuler/openjdk-1.8.0.git
git@gitee.com:src-openeuler/openjdk-1.8.0.git
src-openeuler
openjdk-1.8.0
openjdk-1.8.0
master

搜索帮助