RFR: 8352316: More MergeStoreBench
Shaojin Wen
swen at openjdk.org
Wed Mar 19 06:18:39 UTC 2025
On Wed, 19 Mar 2025 03:28:59 GMT, Shaojin Wen <swen at openjdk.org> wrote:
> Added performance tests related to String.getBytes/String.getChars/StringBuilder.append/System.arraycopy in constant scenarios to verify whether MergeStore works
The performance numbers show that putNull_unsafePutInt and putNull_utf16_unsafePutLong perform more than 10 times better. It can be seen that MergeStore is very suitable for these scenarios.
# Scipt
git remote add wenshao git at github.com:wenshao/jdk.git
git fetch wenshao
git clone 23dba8c52454ae90eab4cb1b0a168c6e7249dd38
make test TEST="micro:vm.compiler.MergeStoreBench.putNull"
## 2. aliyun_ecs_c8a_x64 (CPU AMD EPYC™ Genoa)
Benchmark Mode Cnt Score Error Units
MergeStoreBench.putNull_arraycopy avgt 5 6715.041 ± 18.765 ns/op
MergeStoreBench.putNull_getBytes avgt 5 5880.725 ± 12.261 ns/op
MergeStoreBench.putNull_getChars avgt 5 11972.642 ± 24.990 ns/op
MergeStoreBench.putNull_string_builder avgt 5 15643.372 ± 4526.932 ns/op
MergeStoreBench.putNull_unsafePutInt avgt 5 280.570 ± 0.669 ns/op
MergeStoreBench.putNull_utf16_arrayCopy avgt 5 13053.191 ± 24.954 ns/op
MergeStoreBench.putNull_utf16_string_builder avgt 5 16349.747 ± 5029.799 ns/op
MergeStoreBench.putNull_utf16_unsafePutLong avgt 5 579.580 ± 0.710 ns/op
## 3. aliyun_ecs_c8i_x64 (CPU Intel®Xeon®Emerald Rapids)
Benchmark Mode Cnt Score Error Units
MergeStoreBench.putNull_arraycopy avgt 5 8029.622 ± 60.856 ns/op
MergeStoreBench.putNull_getBytes avgt 5 7444.635 ± 39.552 ns/op
MergeStoreBench.putNull_getChars avgt 5 16657.442 ± 147.301 ns/op
MergeStoreBench.putNull_string_builder avgt 5 23008.159 ± 6143.167 ns/op
MergeStoreBench.putNull_unsafePutInt avgt 5 235.302 ± 2.004 ns/op
MergeStoreBench.putNull_utf16_arrayCopy avgt 5 18330.317 ± 142.242 ns/op
MergeStoreBench.putNull_utf16_string_builder avgt 5 25843.593 ± 7089.392 ns/op
MergeStoreBench.putNull_utf16_unsafePutLong avgt 5 1860.076 ± 16.703 ns/op
## 4. aliyun_ecs_c8y_aarch64 (CPU Aliyun Yitian 710)
Benchmark Mode Cnt Score Error Units
MergeStoreBench.putNull_arraycopy avgt 5 8114.176 ± 36.685 ns/op
MergeStoreBench.putNull_getBytes avgt 5 6171.538 ± 5.845 ns/op
MergeStoreBench.putNull_getChars avgt 5 10432.681 ± 26.401 ns/op
MergeStoreBench.putNull_string_builder avgt 5 21238.753 ± 1428.244 ns/op
MergeStoreBench.putNull_unsafePutInt avgt 5 349.233 ± 1.521 ns/op
MergeStoreBench.putNull_utf16_arrayCopy avgt 5 16063.018 ± 22.127 ns/op
MergeStoreBench.putNull_utf16_string_builder avgt 5 22327.827 ± 414.499 ns/op
MergeStoreBench.putNull_utf16_unsafePutLong avgt 5 863.733 ± 0.693 ns/op
-------------
PR Comment: https://git.openjdk.org/jdk/pull/24108#issuecomment-2735425909
More information about the hotspot-compiler-dev
mailing list