8229845: Decrease memory consumption of BigInteger.toString()

Ivan Gerasimov ivan.gerasimov at oracle.com
Tue Aug 20 17:28:58 UTC 2019


While we're here.

On 8/20/19 1:05 AM, Aleksey Shipilev wrote:
>   *) This might be "static final", while we are at it:
>
> 4109     private static String[] zeros = new String[64];
>
It may make sense to create the only string as

private static final String zeros = "0".repeat(63);

and then replace all

sb.append(zeros[x]) with sb.append(zeros, 0, x) and

sb.insert(pos, zeros[x]) with sb.insert(pos, zeros, 0, x).

The difference would be in one extra bounds check, and as both append() 
and insert() are relatively expensive, this check would hardly be 
noticeable.

-- 

With kind regards,
Ivan Gerasimov



More information about the core-libs-dev mailing list