There are several languages that target bytecodes
and the JVM™ machine as their new "assembler,"
including Scala, Clojure, Jython, JRuby, the JavaScript™
programming language/Rhino, and JPC. This session takes a quick
look at how well these languages sit on a JVM machine, what
their performance is, where it goes, and why.
Some of the results are surprising: Clojure's STM ran a complex
concurrent problem with 600 parallel worker threads with perfect
scaling on an Azul box without modification. Some of the results
are less surprising: fixnum/bignum math ops take a substantial
toll on the benefit of entirely transparent integer math, and
a lack of tail-call optimization gives some languages fits.
Some of the languages can get "to the metal," and
sometimes performance takes a backseat to other concerns. This
session, for non-Java™ platform JVM machine users, is
a JVM machine's-eye-view of bytecodes, JITs, and code-gen and
will give you insight into why a language is (or is not!) as
fast as you might expect.
This is essentially the presentation the speaker gave at the
JVM Language Summit, refreshed with more recent work from the
major alternative-language players. You will get an understanding
of how some of these languages get mapped to a JVM machine and
the issues and performance costs associated with a "less
than perfect" language fit.
|