Looks good... I ran it both ways and got similar run times...
...jim On 12/10/15 1:14 PM, Laurent Bourgès wrote:
Hi Jim, Here is the updated webrev: http://cr.openjdk.java.net/~lbourges/marlin/marlin-8144446.3/ The fix looks correct, but one thing I would tend to do for robustness is that in an error case, rather than duplicate the logic that was skipped (which can get out of date if we later change how the bounds*Y variables are calculated), I would just hardcode the bounds*Y variables to the worst case min/max so that we do a complete fill on the variables. For error cases it is less interesting to optimize out every memory store and more interesting to make sure that we robustly restore the state. Another option would be to move the bounds logic to a separate function that is called in both the error and the success cases? Fixed: I agree it is better to clear completely bucket arrays. For the test, you can have multiple test tags and include an @ignore so that the primary tests are run every time and the ones after the ignore are only run if someone runs with "-ignore:run". That makes them runnable from the command line without having to edit the test: @run main/othervm -mx512m CrashTest @ignore tests that take a long time @run main/othervm -mx512m CrashTest -slow The first line would be run in all cases, the second line would only be run if they specify "-ignore:run" on the command line. Fixed: I adopted your approach and it works well: ----------messages:(3/129)---------- command: main -mx512m CrashTest reason: User specified action: run main/othervm -mx512m CrashTest elapsed time (seconds): 8.318 ----------messages:(3/150)---------- command: main -ms4g -mx4g CrashTest -slow reason: User specified action: run main/othervm -ms4g -mx4g CrashTest -slow elapsed time (seconds): 49.777 The only down side is that the tests after the @ignore are shown on the final statistics as "errors" which seems kind of melodramatic, but that's why the "-ignore:quiet" option exists. There are quite a few tests in the java hierarchy with an @ignore tag, though, often talking about extreme memory requirements so this is nothing new. This would be the first in the sun/java2d hierarchy, though... I enabled also the huge image test that consumes ~5Gb and it passes on my laptop (16Gb). Cheers, Laurent