RFR 8073124: Tune test and document TimSort runs length stack size increase
Lev Priima
lev.priima at oracle.com
Fri Feb 13 14:03:34 UTC 2015
Please review and push:
http://cr.openjdk.java.net/~lpriima/8073124/webrev.00/
bug: https://bugs.openjdk.java.net/browse/JDK-8073124
Lev
On 02/13/2015 05:20 AM, David Holmes wrote:
> Hi Lev,
>
> On 13/02/2015 2:56 AM, Lev Priima wrote:
>> Christos,
>>
>> Test may fail on shorter arrays(page 8 of paper). For instance, on worst
>> case, generated by test, it starts to fail on length 67108864.
>> After increasing stack size of runs to merge, Arrays.sort(T[]) works
>> also on maximum possible array for HotSpot JVM.
>
> I'd also like to see this documented somewhere in the code. Presently
> there is a reference to listsort.txt but then you have to go and find
> it on the web. :( At a minimum could we please add:
>
> 175 * computation below must be changed if MIN_MERGE is
> decreased. See
> 176 * the MIN_MERGE declaration above for more information.
> + * The maximum value of 49 allows for an array up to length
> + * Integer.MAX_VALUE-4.
>
>> Roger, David,
>> I've updated the test (
>> http://cr.openjdk.java.net/~lpriima/8072909/webrev.01/test/java/util/Arrays/TimSortStackSize2.java.html
>>
>> ) to make it more suitable for regular execution:
>>
>> 27 * @run main/othervm TimSortStackSize2 67108864
>
> This will still fail on small memory devices:
>
> :~> java TimSortStackSize2 67108864
> Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
>
> as the default heap ergonomics may not be large enough. I had to add a
> minimum heap of -Xmx385M to get it to run.
>
> Thanks,
> David
>
>> 28 * not for regular execution on all platforms:
>> 29 * run main/othervm -Xmx8g TimSortStackSize2 1073741824
>> 30 * run main/othervm -Xmx32g TimSortStackSize2 2147483644
>>
>> Could you please push this:
>> http://cr.openjdk.java.net/~lpriima/8072909/webrev.01/
>> ?
>>
>> Lev
>>
>> On 02/12/2015 12:54 PM, christos at zoulas.com wrote:
>>> On Feb 12, 9:57pm,david.holmes at oracle.com (David Holmes) wrote:
>>> -- Subject: Re: 8072909: TimSort fails with
>>> ArrayIndexOutOfBoundsException on
>>>
>>> | Ok - thanks Lev!
>>> |
>>> | David
>>>
>>> For posterity can someone document this, and also the value for which
>>> Integer.MAX_VALUE-4 fails?
>>>
>>> christos
>>
More information about the core-libs-dev
mailing list