So, last week at the JVM Language Summit, Cliff Click gave a presentation about performance characteristics of various dynamic languages on the JVM. (Can't link his presentation in, as the summit Wiki is temporarily down...) He was specifically running numerical algorithms and watching how they look like after they're bytecode compiled, and then JITted all the way down to machine code.
For Rhino, he said it suffers of "Death by Double" -- all numeric operations run on java.lang.Double objects. I said "well, there's a command line switch -opt 1 that'll turn on various optimizations, among others, the ability to Java primitive values when the optimizer can figure out it's safe". He asks: "so, it changes the semantics of runtime, right?" I start replying: "It doesn't change sem..." At which point I'm cut off with: "Then why is it not on by default?" Well, touché. So, indeed, why is it not on by default? Is it known that it changes runtime behavior, or are we just not sure that it doesn't? Attila. -- home: http://www.szegedi.org weblog: http://constc.blogspot.com twitter: http://www.twitter.com/szegedi _______________________________________________ dev-tech-js-engine-rhino mailing list [email protected] https://lists.mozilla.org/listinfo/dev-tech-js-engine-rhino
