RFR: 8316150: Refactor get chars and string size [v7]

Jim Laskey jlaskey at openjdk.org
Fri Sep 22 14:55:14 UTC 2023


On Fri, 22 Sep 2023 13:50:37 GMT, 温绍锦 <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