Search |
||
Bayou City LeaksPosted by gsporar on October 25, 2007 at 8:02 PM PDT
I grew up in the Houston area and most of my family still lives there, so it was fun to do a presentation in the Bayou City. Jim Bethancourt is the president of the Houston Java Users Group (HJUG) and when I got in touch with him several weeks ago I provided a list of about six topics on which I would be happy to do a presentation. Jim put that list to a vote and the winner was my talk on tracking down memory leaks in Java applications. I originally did this presentation at JavaOne last year and have repeated it at JavaZone and TheServerSide Java Symposium. It changes around a bit each time. The biggest addition was in July of this year for the TheServerSide conference in Barcelona: I added a whole section on permanent generation memory leaks, based on the work of Frank Kieviet and Edward Chou. Frank and Edward did an excellent presentation earlier this year at JavaOne dedicated entirely to that topic. Frank and I also collaborated with Sundar on an article about permanent generation memory leaks for Software Test & Performance magazine. Another change that I made last night was to include a demo of VisualVM, a relatively new tool that is being developed as an open source project. There is an introductory document available on the project web site. I hope to write more about VisualVM soon. The changes I have made to the presentation have also been driven by the questions that I have gotten when doing the presentation. A consistent theme that was repeated last night in Houston was: "Is there a way to prevent memory leaks from occurring in the first place?" Automating detection is a problem. Tom Ball left a comment on that topic on my post from JavaZone. There are, however, some things that can be automated. If, for example, you are shadowing a static variable with a local variable and as a result you do not end up setting the static variable to null and a memory leak results, then a good editor or FindBugs can point out to you that you are shadowing the variable. But detecting that the shadowing indirectly leads to a memory leak is beyond the capability of any static analysis tool that I know of. There are best practices that can certainly help. (For example, don't shadow static variables with local variables :-) ) I probably need to add a section on weak references to this presentation - I got a question specifically about that last night. My favorite post on that topic is from Ethan Nicholas: Understanding Weak References. Some photos are below. ![]() The pizza was popular, as usual. ![]() The room is not too big and not too small. ![]() Left to right: Paul Lisowski, Stephen Nimmo, Gregg Sporar, Jim Bethancourt »
Comments
Comments are listed in date ascending order (oldest first)
|
||
|
|