RFR(M): 7033917: closed/compiler/6507107/HeapwalkingTest.java sometimes works too long

Morris Meyer morris.meyer at oracle.com
Fri May 30 18:10:24 UTC 2014


Fair enough.  This is a good simplification.  Thanks Vladimir.

      --mm


> On May 30, 2014, at 2:06 PM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
> 
> The idead is good but the implementation is way too complex. What you want is to exit loops. You don't need special iterators for that.
> 
> public class RuntimeEstimator {
>    private long end;
>    private long last;
>    private long worst_iteration;
> 
>    public Estimator(long duration) { // duration in seconds
>        last = System.currentTimeMillis();
>        end = last + duration*1000;
>        worst_iteration = 0;
>    }
> 
>    public boolean timeout() {
>        long now = System.currentTimeMillis();
>        long iteration = now - last;
>        last = now;
>        if (iteration >  worst_iteration) {
>            worst_iteration = iteration;
>        }
>        // *2 to be conservative
>        return (now + worst_iteration_time*2) > end;
>    }
> }
> 
> In a test's loop you will just check if(est.timeout()) and exit loop.
> 
> Vladimir
> 
>> On 5/23/14 7:30 AM, Morris Meyer wrote:
>> Folks,
>> 
>> During the nightly testing we have a class of bugs that crop up with
>> compiler flags that change the performance dynamic of the test, such as
>> -Xcomp and -XX:+DeoptimizeALot.
>> 
>> Instead of tweaking the test parameters, I have created an Estimator
>> class that takes a work List - and creates an Iterator that is looking
>> at the expiration clock for the test.  Instead of the test failing out
>> for taking too much time for an arbitrary number of iterations, the
>> iterator ends, and Estimator will produce a timeout factor suitable for
>> the -Dtest.timeout.factor flag.
>> 
>> I've added an EstimatorTest to testlibrary_tests that tests the
>> Estimator with three scenarios, too much time, not enough time and just
>> enough time.
>> 
>> This test has also been through JPRT.   The changes HeapwalkingTest will
>> be sent out for review to the closed list.
>> 
>> Thanks much,
>> 
>>         --morris meyer
>> 
>> 
>> WEBREV - http://cr.openjdk.java.net/~morris/JDK-7033917-hotspot.01
>> JBS - https://bugs.openjdk.java.net/browse/JDK-7033917
>> 
>> 


More information about the hotspot-compiler-dev mailing list