Skip to main content

kcpeppe's Blog

Measuring Software Reuse and Deleting Code

Posted by kcpeppe on April 2, 2014 at 6:26 AM PDT

This a fun story rather than a deep technical discussion of some performance issue, measure or tool.

Why didn’t my app throw an OutOfMemoryError?

Posted by kcpeppe on January 8, 2014 at 8:19 AM PST

Every once in a while I run into someone that has a JVM that is running back to back collections and yet the heap is still almost full after each attempt! When they discover that their problem is related to the JVM not having enough memory they often ask the question, why didn't the JVM throw an OutOfMemoryError?

A Case Study of JVM HotSpot Flags

Posted by kcpeppe on December 11, 2013 at 5:36 AM PST

Just recently I was engaged to assist with an application that wasn’t behaving. The application, running in a 1.7.0_45 JVM, relied heavily on a 3rd party SAAS framework. That vendor provided my client with a list of 26 different JVM flags that should be set. When faced with this long list of flags I couldn’t resist asking why all the flags and why these flags.

Fun with Lambda's

Posted by kcpeppe on November 10, 2013 at 6:34 AM PST

I just finished delivering a talk at Oredev 2013 on better concurrency in Java 8. With Lambda’s being the biggest new feature I naturally needed to address what they had to offer.

How I brought down www.lufthansa.com

Posted by kcpeppe on January 4, 2013 at 4:46 AM PST

A couple of years ago I brought down www.lufthansa.com. Ok ok... maybe I didn’t bring the site down but the sequence of events leading up to the site becoming completely unresponsive and a subsequent change in the sites logic leads me to believe...... well, let me tell you the sequence of events and then you be the judge.

Memory Leak in Eclipse 4.2????

Posted by kcpeppe on October 21, 2012 at 1:37 PM PDT

More than a few days ago a friend pinged me complaining that recent Eclipse release was quite sluggish. Since she had taken my performance tuning seminar she knew exactly how to get and read a GC log but as we all do, she was looking for a second opinion.

New JVM options to roll over to a new GC log file

Posted by kcpeppe on August 20, 2012 at 4:01 PM PDT

While I don't normally blog about the exiting world of JVM command line options, this new 7.0 option, which allows you to rotate to a new GC log file, was just so exciting... err... not so widely published that I decided to share. Of course these options only apply when you've used the -Xloggc: option. The settings are;

UseGCLogFileRotation, default value: false

Is there a difference between load and performance testing

Posted by kcpeppe on January 12, 2012 at 1:57 PM PST

Today I decided it was past time to reorganize the slides in the performance testing section of the course. I added a number of new diagrams and charts to help organize the materials and then I went back and started to review some of the definitions that I was using.

Using Wordle as a Profiler

Posted by kcpeppe on January 9, 2012 at 2:51 AM PST

I mentioned the idea to use Wordle as an execution profiler while presenting the profiling section of my performance tuning course in Paris last December. The idea was seeded by presentation that Neal Ford did a few years ago in which he used Wordle to expose the vocabulary of a Java application. Neal took a pile of source code and fed it into Wordle.

Is setting -Xmx==-Xms still considered harmful?

Posted by kcpeppe on December 19, 2011 at 5:40 AM PST

One of the old bits of tuning advice given when Java memory management was not as tall as it it today was to set max heap to min heap. After all, we don't really want the JVM messing around with memory when it should really be getting on with things. Fast forward a few years and the adaptive memory management picture has matured considerably.