From: <log...@gm...> - 2009-04-02 18:41:35
|
----- Original Message ----- From: "Don Cohen" <don...@is...> To: <dm...@us...> Cc: <arm...@li...> Sent: Thursday, April 02, 2009 10:47 AM Subject: Re: [j-devel] Checking arg types without setting up a try/except block > log...@gm... writes: > ... > > java.vm.vendor Sun Microsystems Inc. > > java.version 1.6.0_10 > > java.vm.version 11.0-b15 > Just wondering, how do these results depend on JVM version ? > Perhaps the implementation choices should depend on that. I bet there are differences as well .. One example if I recall correctly: Invokevirtual (M2) on the earlier Sun 1.6.0 JVMs.. (Not on the one presented in the test results) was slower on the base class than a subclass that fully overrides the base class. (Which was the opposite of intuition!) More like likely though they should have been pretty much identical speeds (Which I think is fixed now in 1.6.0 (and never broken in 1.5.0) Which was why ABCL was suggested to run on 1.5.0 and avoid 1.6.0) But indeed it might be good to run the test code against a few different JVM versions Here is some speculation: My guess before hand is that M3 will always be the fastest for the Sun JVMs Future JVMs will make all the numbers more alike (more methodology neutrality) Sun 1.7.0 is probably going to show the most improvements for M2/M5 but still slower than M3 IKVM in the future is going to fix M1 to be tolerable (10 times slower rather than 1000 times slower). Still a good reason to not catch classcast exceptions Currently the way we a catching class cast exceptions is analogous to using null in Conses for NIL and implementing catching null pointer to know we are at the end of a list (*bleh*) ----- Original Message ----- From: "Erik Huelsmann" <eh...@gm...> To: <arm...@li...> Sent: Thursday, April 02, 2009 12:56 AM Subject: [j-devel] Which JVM to optimize for? > Well, until now we were doing this rather implicit, but since Douglas > made some test results which differ widely per JVM implementation, the > answer to the question should probably be made explicit. > > In the tests of which construct runs faster related to casts and class > cast exceptions, very widely differing results were attained between > Sun and IKVM JVMs (not surprising), but luckily the same construct ran > fastest in both JVMs. However, different constructs ran fastest in > GCJ. > > > Since the Sun JVM seems ubiquitous, my personal preference is to > optimize for Sun, keeping in mind that we want reasonable performance > on the other 2 JVMs. > > Comments? Myself prefer the Sun JVM as well.. and to not hit the degenerate cases for IKVM or other JVMs. |