Re:Java 7 is now available
by bensummers on Thursday July 28, 2011 @12:04PM
(#2817448)
For dynamic JVM languages, the new invokedynamic bytecode is a huge performance boost.
[ Parent
| on HN ]
Probably not. See what Rich Hickey said about this:
http://clojure-log.n01se.net/date/2008-09-03.html#09:13a
For clojure no, but jRuby and several similar languages are getting a huge boost.
Re:Java 7 is now available
by PyErr_SetString on Thursday July 28, 2011 @12:48PM
(#2817667)
Have you seen any actual numbers on this? I've googled around a bit and can't seem to find any.
JRuby developer Charles Nutter claims that Java JDK7 gives a performance boost to JRuby, saying "On bench_threaded_reverse, Java 7 is 20% faster than Java 6, and JRuby plus invokedynamic is 20% faster than that".[1]
From http://en.wikipedia.org/wiki/JRuby with the [1] being
I'm a little disappointed that people are still talking about tagged ints. There are so many better ways to avoid the overheap of integers being a refrence type (namely type specializing everything under the sun, particularly your JIT'd code and data structures).
Could you please tell me something more about it? Tagged unboxed data seems to be a nice solution for me.
Well, the problem with it is it has a negative performance impact on everything else in your codebase, the first time you see any pointer you need to check if it's tagged or not. The advantages are clear: you don't need to allocate anything on the heap for integers. Which means you're sacrificing performance on everything else, for integers. Solutions such as automatic type-specializing containers don't carry this downside, and carry the same upside. For example at the moment PyPy type-specializes dictionaries. Python has a single `dict` type, which can store anything, but we type specialize and fallback if we get it wrong. Similarly, we're working on type-specializng lists, tuples, and user objects. If there's anything more I can answer let me know.