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

Reply via email to