-
Enhancement
-
Resolution: Fixed
-
P3
-
14
-
b03
-
aarch64
-
linux
MacroAssembler::string_compare intrinsic has a STUB_THRESHOLD
= 64 + 8 to control the stub replacement.
http://hg.openjdk.java.net/jdk/jdk/file/4aea554692aa/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp#l4848
Per JMH string benchmarks testing, with Ampere eMAG system, the stub code can be beneficial to shorter Strings (less than 72 chars for UTF16, or 72 bytes for Latin if COMPACT_STRING is on) as well, up to 1.5x gain in some cases.
Suggest to make it tunable so one can configure it per systems once the performance impact (positive or negative) got proved via testing. And this can avoid potential side-effect caused by a fixed value on different aarch64 systems.
= 64 + 8 to control the stub replacement.
http://hg.openjdk.java.net/jdk/jdk/file/4aea554692aa/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp#l4848
Per JMH string benchmarks testing, with Ampere eMAG system, the stub code can be beneficial to shorter Strings (less than 72 chars for UTF16, or 72 bytes for Latin if COMPACT_STRING is on) as well, up to 1.5x gain in some cases.
Suggest to make it tunable so one can configure it per systems once the performance impact (positive or negative) got proved via testing. And this can avoid potential side-effect caused by a fixed value on different aarch64 systems.
- relates to
-
JDK-8234228 AArch64: Some temp vars in string_compare intrinsics for processing the last 4 chars (LU/UL) are no use
- Resolved