8229845: Decrease memory consumption of BigInteger.toString()
Brian Burkhalter
brian.burkhalter at oracle.com
Fri Aug 23 17:11:15 UTC 2019
Hi Ivan,
> On Aug 22, 2019, at 1:24 PM, Ivan Gerasimov <ivan.gerasimov at oracle.com> wrote:
>
> I have a few further suggestions how to simplify the code.
>
> […]
Those are all good suggestions: thanks!
> Here's the patch, which illustrates all the suggestions above:
> http://cr.openjdk.java.net/~igerasim/8229845/00/webrev/ <http://cr.openjdk.java.net/~igerasim/8229845/00/webrev/>
> (I have only run the tests from test/jdk/java/math/BigInteger to verify it).
This patch has a problem:
4023 padWithZeros(buf, digits - s.length() + (numGroups - 1) * digitsPerLong[radix]);
It is missing parentheses:
4023 padWithZeros(buf, digits - (s.length() + (numGroups - 1) * digitsPerLong[radix]));
I was unable to find this by debugging but implemented your suggestions by hand and then found it by diff-ing the patches. My updated versions with your suggestions incorporated are: [1] delta, [2] absolute. I also increased the size of some of the values tested at line 798 of BigIntegerTest.
Thanks,
Brian
[1] http://cr.openjdk.java.net/~bpb/8229845/webrev.03-04/
[2] http://cr.openjdk.java.net/~bpb/8229845/webrev.04/
More information about the core-libs-dev
mailing list