Talking JavaOne with Rock Star Kirk Pepperdine

Kirk Pepperdine is not only a JavaOne Rock Star but a Java Champion and a highly regarded expert in Java performance tuning who works as a consultant, educator, and author. He is the principal consultant at Kodewerk Ltd. He speaks frequently at conferences and co-authored the Ant Developer's Handbook. In the rapidly shifting world of information technology, Pepperdine, as much as anyone, keeps up with what's happening with Java performance tuning.

Pepperdine will participate in the following sessions:

  • CON5405 - Are Your Garbage Collection Logs Speaking to You?
  • BOF6540 - Java Champions and JUG Leaders Meet Oracle Executives (with Jeff Genender, Mattias Karlsson, Henrik Stahl, Georges Saab)
  • HOL6500 - Finding and Solving Java Deadlocks (with Heinz Kabutz, Ellen Kraffmiller Martijn Verburg, Jeff Genender, and Henri Tremblay)

I asked him what technological changes need to be taken into account in performance tuning. “The volume of data we're dealing with just seems to be getting bigger and bigger all the time,” observed Pepperdine. “A couple of years ago you'd never think of needing a heap that was 64g, but today there are deployments where the heap has grown to 256g and tomorrow there are plans for heaps that are even larger. Dealing with all that data simply requires more horse power and some very specialized techniques. In some cases, teams are trying to push hardware to the breaking point. Under those conditions, you need to be very clever just to get things to work -- let alone to get them to be fast. We are very quickly moving from a world where everything happens in a transaction to one where if you were to even consider using a transaction, you've lost."

When asked about the greatest misconceptions about performance tuning that he currently encounters, he said, “If you have a performance problem, you should start looking at code at the very least and for that extra step, whip out an execution profiler. I'm not going to say that I never use execution profilers or look at code. What I will say is that execution profilers are effective for a small subset of performance problems and code is literally the last thing you should look at.

And what is the most exciting thing happening in the world of Java today? “Interesting question because so many people would say that nothing exciting is happening in Java. Some might be disappointed that a few features have slipped in terms of scheduling. But I'd disagree with the first group and I'm not so concerned about the slippage because I still see a lot of exciting things happening. First, lambda will finally be with us and with lambda will come better ways.”

For JavaOne, he is proctoring for Heinz Kabutz's lab. “I'm actually looking forward to that more than I am to my own talk,” he remarked. “Heinz will be the third non-Sun/Oracle employee to present a lab and the first since Oracle began hosting JavaOne. He's got a great message. He's spent a ton of time making sure things are going to work, and we've got a great team of proctors to help out. After that, getting my talk done, the Java Champion's panel session and then kicking back and just meeting up and talking to some Java heads."

Finally, what should Java developers know that they currently do not know? “’Write Once, Run Everywhere’ is a great slogan and Java has come closer to that dream than any other technology stack that I've used. That said, different hardware bits work differently and as hard as we try, the JVM can't hide all the differences. Plus, if we are to get good performance we need to work with our hardware and not against it. All this implies that Java developers need to know more about the hardware they are deploying to.”

Originally published on


Write Once, Run Everywhere. Loved that :)

Posted by Muhammed on October 01, 2012 at 04:34 AM PDT #

I am wondering what Kirk thinks about IBM's comment on Sunday about common lightweight back end for all apps and performance.
Also, I am wondering about what Kirk thinks of the expectations for performance of mobile versus web apps. Is he seeing users for mobile devices expecting much better performance such as 1 second or less for the response for a request?
Finally does he think data centers as IBM mentioned are seeing higher density of apps on the app servers thus maybe the apps will be come more standalone with web services or "Cloud Services" so data centers can still expand services without buying more hardware?

Tony Anecito
JavaOne 2010 Dukes Award winner.

Posted by guest on October 02, 2012 at 08:52 AM PDT #

Hi Tony,

Thought provoking questions. Thank you very much. I'm going to ping Kirk to see if he'll weigh in on these.


Posted by guest on October 03, 2012 at 09:16 AM PDT #

I expect that very shortly there will be no difference in performance between mobile and non-mobile platforms. At that point, I'd expect to see the mobile platforms place greater focus on more effectively on power management.

As for higher density of apps in a data center.. most apps whose performance is bounded by hardware are not constrained by the CPU. Focusing on CPU concentration is a noble goal but to do so will require that you understand what the current constraint is and then figure out a way to reduce or eliminate it. Be aware that from a hardware point of view, what bounds one, bounds all that uses it.

Posted by Kirk on November 27, 2012 at 12:57 AM PST #

Hi Kirk,
Since usually web platforms have the presentation tier on the server side to build for each request and are single threaded by default and requirements I do not see how they can get as fast as client side standalone apps that can be multithreaded and can access lightweight web services where the response can be the size of one 1500 byte packet. The one thing client side is slow on is start up but if designed and implemented carefully maybe that can improve. What was interesting is Microsoft's Windows 8 app store requirement for fast startup and suspend probably to save battery power as mentioned by Kirk.

Posted by guest on November 28, 2012 at 08:27 AM PST #

well, the problem with most productivity (mobile) apps is that they are data bound.. in the sense that they need data to function and getting data to the device is the primary bottleneck. However, transferring as much functionality as is sanely possible to the end users device must offer some advantages unless of course you can avoid sending 100s or 1000s of packets by performing the calculation on the server and then send small numbers of packet(s) to the client device. It's an age old questions.. where is the tipping point.

Posted by guest on November 28, 2012 at 10:05 AM PST #

Post a Comment:
  • HTML Syntax: NOT allowed

Insider News from the Java Team at Oracle!



« June 2016