Hi.
I don't have a 2.0.7 to test on at the moment. I will try again when I do.
I got rid of the object allocation inside the loop. And I retested. I
don't hit the problem with int's on the call stack. I do hit the
problem with floats and doubles.
The problem is quite easily reproducible (for me). Is someone there
with knowledge of register/stack handle able to take a look with gdb or
which ever tool you use?
Regards, Peter
http://rimuhosting.com - Xen VPS Hosting
public class FillTest {
public static void main(String[] args) {
System.out.println("Starting");
foo f = new foo();
for (int i = 0;i<100000000; i++) {
f.iter = i;
f.test();
}
}
public static class foo {
int iter;
float f = 0.75f;
int i=1;
double d = 0.75d;
void test() {
testI(i);
testD(d);
test(f);
}
void test(float f1) {
if(f1!=f) {
throw new RuntimeException("float value mismatch: " +
f1 + " vs " + f + " at iteration " + iter);
}
}
void testI(int fi) {
if(fi!=i) {
throw new RuntimeException("int value mismatch: " + fi
+ " vs " + i + " at iteration " + iter);
}
}
void testD(double fd) {
if(fd!=d) {
throw new RuntimeException("double value mismatch: " +
fd + " vs " + d + " at iteration " + iter);
}
}
}
}
Starting
Exception in thread "main" java.lang.RuntimeException: double value
mismatch: 0. 75 vs 0.75 at
iteration 3981054
at FillTest$foo.testD(FillTest.java:33)
at FillTest$foo.test(FillTest.java:18)
at FillTest.main(FillTest.java:8)
Starting
Starting
Exception in thread "main" java.lang.RuntimeException: double value
mismatch: Na N vs 0.75 at iteration
33238270
at FillTest$foo.testD(FillTest.java:33)
at FillTest$foo.test(FillTest.java:18)
at FillTest.main(FillTest.java:8)
Starting
Exception in thread "main" java.lang.RuntimeException: double value
mismatch: 0.75 vs 0.75 at iteration
43731162
at FillTest$foo.testD(FillTest.java:33)
at FillTest$foo.test(FillTest.java:18)
at FillTest.main(FillTest.java:8)
Starting
Exception in thread "main" java.lang.RuntimeException: double value
mismatch: 0.75 vs 0.75 at iteration 26104068
at FillTest$foo.testD(FillTest.java:33)
at FillTest$foo.test(FillTest.java:18)
at FillTest.main(FillTest.java:8)
Starting
Exception in thread "main" java.lang.RuntimeException: double value
mismatch: 0.75 vs 0.75 at iteration 350370
at FillTest$foo.testD(FillTest.java:33)
at FillTest$foo.test(FillTest.java:18)
at FillTest.main(FillTest.java:8)
Starting
Reuben Kabel wrote:
Does the following code exhibit the same problem? I've modified it so it
doesn't try to allocate many foo instances within the loop.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|