John.Rose at Sun.COM
Mon Jul 13 13:38:59 PDT 2009
On Jul 13, 2009, at 12:04 PM, Jochen Theodorou wrote:
> [boxing] is a problem we should discuss for invokedynamic in more
> Especially how to go around that problem to get maximum performance.
> What do you think?
I might be missing your point, Jochen, but I think we need a three-
1. Make boxing/unboxing less common, by supporting primitives in JSR
292. This point applies to all sizes and shapes of JVMs. It requires
more smarts in the language implementation, but some languages (e.g.,
CAL) already optimize primitive arguments, since the JVM rewards it.
2. Make some cases of boxing/unboxing cheaper, by supporting fixnums.
This point applies to all sorts of JVMs, but is not widely in use.
There is an empty mlvm project for this, and it will probably see some
activity, at least for Integer.valueOf specifically. (Any takers?)
3. Make some cases of boxing/unboxing optimizable, by including strong
escape analysis in the JIT, including Integer.valueOf. This point
only applies to JVMs with full-power JITs, and requires some special
pleading for Integer.valueOf, because of its interning behavior.
More information about the mlvm-dev