review request for 6622432
forax at univ-mlv.fr
Tue Feb 17 05:20:12 PST 2009
Christian Thalinger a écrit :
> On Mon, 2009-02-16 at 14:33 -0800, Xiaobin Lu wrote:
>> Webrev: http://webrev.invokedynamic.info/xiaobin.lu/6622432/
>> 6622432: RFE: Performance improvements to java.math.BigDecimal
>> As you know, the division operation is expensive and the
>> algorithm to compare with the ten's power array can be made more
>> efficiently by correlating the bit length of the number with the index
>> to the array so that the time to compute the precision is O(1) rather
>> than being O(n) (where n is the length of the array). And that is
>> exactly what we are doing in the webrev. First, we get the bit length of
>> the number and then multiply it with log2 (10 base), use the result to
>> index to a dynamically expanded ten's power array so that division
>> operation can be avoided completely.
> Actually I'm not reviewing the webrev but I have some questions.
> 1. Is bitCount() called often and performance critical? There is a RFE
> (6378821) to intrinsify it and I am thinking about to implement it.
It's not related to BigInteger but the fastest multi-dispatch algorithm
that I know relies heavily on
bitCount too (on Long.bitCount).
So you have my vote :)
> 2. Why is BigInteger using it's own implementation of bit-count
> (bitCnt()) instead of using Integer.bitCount()?
because Integer.bitCount() was introduced in 1.5 and BigInteger in 1.4.
BigInteger was not retrofited.
> -- Christian
More information about the core-libs-dev