RFR: 8348870: Optimization for DecimalDigits
Shaojin Wen
swen at openjdk.org
Tue Jan 28 15:13:56 UTC 2025
On Tue, 28 Jan 2025 14:49:45 GMT, Shaojin Wen <swen at openjdk.org> wrote:
> Expand DIGITS length to 128 and eliminate array bounds checking by using & 0x7F when accessing DIGITS
This minor change achieves a ~3-5% performance improvement on MacBook M1 Pro.
## 1. Script
git remote add wenshao git at github.com:wenshao/jdk.git
git fetch wenshao
#baseline
git checkout 2bef5b4a877f4d3bc766558b8782b7b57dee79a8
make test TEST="micro:java.lang.StringBuilders.appendWithLong"
make test TEST="micro:java.lang.StringBuilders.appendWithInt"
# current
git checkout 2bd9f306bdfb6b3a6082bece69bfe7f7c029d289
make test TEST="micro:java.lang.StringBuilders.appendWithLong"
make test TEST="micro:java.lang.StringBuilders.appendWithInt"
## 2. The performance numbers under MacBook M1 Pro
-# baseline
-Benchmark Mode Cnt Score Error Units (2bef5b4a877)
-StringBuilders.appendWithLongLatin1 avgt 15 203.001 ? 0.369 ns/op
-StringBuilders.appendWithLongUtf16 avgt 15 225.749 ? 2.675 ns/op
-StringBuilders.appendWithIntLatin1 avgt 15 137.246 ? 1.220 ns/op
-StringBuilders.appendWithIntUtf16 avgt 15 154.522 ? 0.889 ns/op
+# current
+Benchmark Mode Cnt Score Error Units
+StringBuilders.appendWithLongLatin1 avgt 15 191.743 ? 0.700 ns/op +5.87%
+StringBuilders.appendWithLongUtf16 avgt 15 218.538 ? 2.553 ns/op +3.29%
+StringBuilders.appendWithIntLatin1 avgt 15 132.107 ? 0.509 ns/op +3.89%
+StringBuilders.appendWithIntUtf16 avgt 15 149.093 ? 2.551 ns/op +3.64%
-------------
PR Comment: https://git.openjdk.org/jdk/pull/23335#issuecomment-2619265149
More information about the core-libs-dev
mailing list