RFR: 8316150: Refactor get chars and string size

Jim Laskey jlaskey at openjdk.org
Mon Oct 16 16:18:20 UTC 2023


On Fri, 22 Sep 2023 13:50:37 GMT, Shaojin Wen <duke at openjdk.org> wrote:

>> src/java.base/share/classes/jdk/internal/util/DecimalDigits.java line 115:
>> 
>>> 113:         }
>>> 114:         return 10 + d;
>>> 115:     }
>> 
>> @wenshao How about of using [this](https://github.com/plokhotnyuk/jsoniter-scala/blob/6b72cf75ad7f53e8a285d512009d164c3eabbb3a/jsoniter-scala-core/jvm/src/main/scala/com/github/plokhotnyuk/jsoniter_scala/core/JsonWriter.scala#L2367-L2369) trick to avoid multiplications in a loop?
>
> This implementation is copied from Integer.stringSize. In 2015, @Shipilev modified the table lookup to the current implementation. In actual testing, this algorithm is faster.

No doubt, but that algorithm could have been easily integrated into the Digits implementation without disruption.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/15699#discussion_r1334490412


More information about the core-libs-dev mailing list