Interesting talk from Cliff Click, Azul Systems

(With auto-slides on the right)

A few interesting revelations there about things like escape analysis and how it never quite managed to deliver serious performance benefit (right near the end of the Q&A)

Cas :slight_smile:

It was interesting at the end when he mentioned the ‘register allocator’ and if I heard correctly, speculated that the JVM could deliver a further 5% speed boost with this.

I find it hard to believe that there are few big improvements left to be made in the JVM. Seems like there’s always more that can be done.

When you consider that it’s very nearly as fast as C++ in a lot of situations now and C++ has been receiving continual improvements as well at the same time, it’s probably the case that the returns are diminishing fast - remembering that whatever optimisation is done has to be analysed and applied at runtime. They might be able to increase the speed of Java another 20% but if it means startup takes minutes nobody will want it.

Still, I was intrigued about some of the metrics he gave about inlining, monomorphism, and all that stuff.

Cas :slight_smile:

Something interesting which you’re probably already aware of is that Azul systems have the best garbage collector (GC) that there is, it takes far less time in total and runs for shorter times than any Sun/Oracle GC.

It surprises me how impressive Sun and Oracle’s work is on the JVM yet they give it away for free and Sun obviously struggled to monetise the technology. Even Oracle appear to have bought java just to sue Google for using the java API in android.
Meanwhile, Azul makes a single GC improvement and patents the idea, and then is able to sustain what looks like a very successful business. It’s bizarre how things work out.

nice one. thanks for sharing cas. o/

Proebsting’s Law: Compiler advances double computing power every 18 years.

Don’t underestimate the “dumb” things a compiler can do. That’s where the vast majority of speed gains come from. All the fancy logically complicated things things they do are for marginal extra speed wins (compared to the basics). Nobody…not even research compilers…perform optimal register allocation. The problem is NP-hard.

Cliff Click is always interesting :smiley:

I realize that the last part of that sentence is in the context of apps/games, but… in the server world, people would fling hundreds of millions of dollars at you for improving performance 20% if that means the server takes only a few more minutes to start. Java web-container initialization time usually is 5-10min anyway.