On Fri, 13 Oct 2023 17:01:11 GMT, Shaojin Wen <d...@openjdk.org> wrote:
>> I submitted PR #15555 before, and there were too many changes. I split it >> into multiple PRs with small changes. This one is one of them. >> >> this PR removed the duplicate code for getChars in >> BigDecimal#StringBuilderHelper, i also make performance faster. >> Please review and don't hesitate to critique my approach and patch. > > Shaojin Wen has updated the pull request incrementally with one additional > commit since the last revision: > > use % calculate lowInt Under linux OS and Intel Xeon Platinum 8475B, the performance of testSmallToEngineeringString becomes slower. It may be a better choice when using JLA. ## Alibaba Cloud Linux 3.2104 LTS 64 bit (Intel Xeon Platinum 8475B) -Benchmark Mode Cnt Score Error Units (baseline) -BigDecimals.testHugeToEngineeringString avgt 15 206.519 ? 1.574 ns/op -BigDecimals.testLargeToEngineeringString avgt 15 35.830 ? 3.008 ns/op -BigDecimals.testSmallToEngineeringString avgt 15 15.048 ? 0.033 ns/op -BigDecimals.testToEngineeringString avgt 15 1738.627 ? 3.723 ns/op +Benchmark Mode Cnt Score Error Units (88b1b13) +BigDecimals.testHugeToEngineeringString avgt 15 179.174 ? 0.496 ns/op (+15.27) +BigDecimals.testLargeToEngineeringString avgt 15 28.282 ? 0.050 ns/op (+26.69) +BigDecimals.testSmallToEngineeringString avgt 15 17.106 ? 0.043 ns/op (-12.04) +BigDecimals.testToEngineeringString avgt 15 1679.343 ? 6.285 ns/op (+3.54) ## MacBook M1 Pro -Benchmark Mode Cnt Score Error Units (baseline) -BigDecimals.testHugeToEngineeringString avgt 15 213.017 ? 24.056 ns/op -BigDecimals.testLargeToEngineeringString avgt 15 58.025 ? 4.403 ns/op -BigDecimals.testSmallToEngineeringString avgt 15 17.232 ? 0.484 ns/op -BigDecimals.testToEngineeringString avgt 15 1767.594 ? 43.153 ns/op +Benchmark Mode Cnt Score Error Units (88b1b13) +BigDecimals.testHugeToEngineeringString avgt 15 149.861 ? 1.092 ns/op (+42.15) +BigDecimals.testLargeToEngineeringString avgt 15 21.307 ? 0.062 ns/op (+172.33) +BigDecimals.testSmallToEngineeringString avgt 15 16.875 ? 0.047 ns/op (+2.12) +BigDecimals.testToEngineeringString avgt 15 1703.302 ? 44.969 ns/op (+3.78) ------------- PR Comment: https://git.openjdk.org/jdk/pull/16006#issuecomment-1762382844