libjava testsuite failures (regressions 3.2 -> 3.3)

Jeff Sturm jsturm@one-point.com
Sat Jan 18 03:57:00 GMT 2003


On 17 Jan 2003, Tom Tromey wrote:
> Matthias> +WARNING: program timed out.
> Matthias> +FAIL: SyncTest execution - gij test
> Matthias> +WARNING: program timed out.
> Matthias> +FAIL: SyncTest execution - gij test
>> I see this one too but I haven't investigated. This could be a real
> regression. Or it could just be that gij is very slow.

Indeed. What's interesting about this example is that the gij test takes
over 60 seconds on my x86-linux laptop if compiled with gcj -C, but
finishes in only 4 seconds if compiled with javac!
Without looking at the bytecode, I'd guess javac is hoisting the
SyncTest.class lookup out of the while loop, whereas gcj -C performs no
optimizations.
Doing this by hand might be appropriate for the test case, to prevent
annoying timeouts:
--- SyncTest.java Fri Jan 17 22:42:38 2003
+++ SyncTest.new Fri Jan 17 22:49:48 2003
@@ -3,8 +3,9 @@
 static int counter;
 public void run() {
+ Object lock = SyncTest.class;
 for (int n = 0; n < 1000000; n++)
- synchronized (SyncTest.class) {
+ synchronized (lock) {
 counter++;
 }
 }


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /