On May 21 2013, at 20:20 , Joseph Darcy wrote:

> Hello Mike,
> 
> The TestNG data provider framework is unfamiliar to me, so my first reaction 
> is that it is overkill for this problem as opposed to a one-off approach, but 
> that may be driven my lack of experience with it.

Yes, quite possibly overkill for this test. 

> However, in the test code
> 
> 153     private static final long[] SOME_PRIMES = {
> 154         3L, 5L, 7L, 11L, 13L, 17L, 19L, 23L, 29L, 31L, 37L, 41L, 43L, 
> 47L, 53L,
> 155         59L, 61L, 71L, 73L, 79L, Long.MIN_VALUE };

The Long.MIN_VALUE was used as a terminator rather than as a prime. I have 
changed the loop processing so that a terminator value is not needed.

> the name of the array is incorrect since Long.MIN_VALUE = -2^63 which is 
> composite. Perhaps you were thinking of Integer.MAX_VALUE which is a Mersenne 
> prime? (2^61 -1 is a Mersenne prime; 2^63 - 1 is not.)

Integer.MAX_VALUE now added along with some other primes near powers of two 
boundaries.

Updated webrev:

http://cr.openjdk.java.net/~mduigou/JDK-8007398/3/webrev/

Thanks!

Mike

> -Joe
> 
> On 5/21/2013 3:45 PM, Mike Duigou wrote:
>> Ping!
>> 
>> I need a final review on this issue.
>> 
>> Thanks,
>> 
>> Mike
>> 
>> On May 16 2013, at 14:02 , Mike Duigou wrote:
>> 
>>> On May 15 2013, at 19:09 , Joseph Darcy wrote:
>>> 
>>>> Hi Mike,
>>>> 
>>>> Looks fine. Are you satisfied with the test coverage provided by the 
>>>> existing regression tests?
>>> I hadn't actually looked but it turns out the answer was "No, certainly 
>>> not".
>>> 
>>> I built a set of tests across all of the primitive integral types that 
>>> compares the results of various toString operations against 
>>> BigInteger.toString(radix). This is not ideal because 
>>> BigInteger.toString(radix) is implemented via Long.toString(l, radix). If 
>>> there's a different exemplar provider which generates results entirely 
>>> independently of the code paths to be tested the test can be fairly easily 
>>> switched to use that.
>>> 
>>> If anyone has suggestions for interesting test cases in numberProvider() I 
>>> would also be interested in hearing about those.
>>> 
>>> http://cr.openjdk.java.net/~mduigou/JDK-8007398/2/webrev/
>>> 
>>> Mike
>>> 
>>>> -Joe
>>>> 
>>>> On 5/15/2013 6:17 PM, Mike Duigou wrote:
>>>>> Hello all;
>>>>> 
>>>>> This issue was originally part of JDK-8006627 (improve performance of 
>>>>> UUID parsing/formatting) but was split out because it could be split out. 
>>>>> I've been working incrementally on pieces of 8006627 as my time permits.
>>>>> 
>>>>> http://cr.openjdk.java.net/~mduigou/JDK-8007398/1/webrev/
>>>>> 
>>>>> I've done microbenchmarking of using digits table vs calculating digits, 
>>>>> previously mentioned in 
>>>>> <http://mail.openjdk.java.net/pipermail/core-libs-dev/2013-April/016526.html>,
>>>>>  and found that using the digits table was still faster.
>>>>> 
>>>>> I've also benchmarked removing the offset param from formatUnsignedLong() 
>>>>> and simplifying the loop termination logic but neither of these turned 
>>>>> out to have little benefit.
>>>>> 
>>>>> Since the last rev I have made a separate implementation 
>>>>> Integer.formatUnsignedInteger for use by Integer rather than sharing the 
>>>>> Long implementation because it's about 30% faster. I suspect the benefits 
>>>>> would be even greater on a 32-bit VM or 32-bit native platform.
>>>>> 
>>>>> We'll get back to 8006627 soon enough. (I have been tempted to split it 
>>>>> again into parsing and formatting).
>>>>> 
>>>>> Thanks,
>>>>> 
>>>>> Mike
> 

Reply via email to