Is it possible to explain what Plumbr is in just a few minutes? Yes, it is!
We created a screencast that walks you through installation and usage of Plumbr – it shows you how to attach it to you Java server, what should you to to make discovery of memory leaks possible and how to interpret the Plumbr report.
For those of you too lazy to press the Play button or who want to get more background information, we added some comments also below the video. Have fun watching and if you have any additional questions, leave them in the comments!
Click on the Play button to see the screencast:
What does Plumbr deliver?
Attach Plumbr to your Java application server and never worry about memory leaks any more. It monitors your app and alerts of the leaks well before your users notice application performance decrease, reporting all the information necessary to locate the leak and fix it in a timely manner.
You can also use Plumbr to analyse an existing memory leak, provided that you can reproduce the leak in your testing environment.
How can I use Plumbr?
First you need to attach Plumbr to your Java Virtual Machine. For that, just edit the command that you use to start your JVM (see installation instructions).
Secondly, expose your application to the users. Plumbr can only discover leaking objects that are executed in your application, but it also needs examples of the non-leaking ones (the next chapter explains why). That is why it often makes sense to use Plumbr in a production environment, or in a staging one if you have automatic tests with very good coverage.
Thirdly, monitor your application system log. Currently Plumbr announces all found memory leaks in system.out, while more notification options are being developed. If you do not get a report from Plumbr, it means that your application does not have a memory leak (or that you have not executed it).
Since Plumbr overhead is very small (it’s been measured to be around 1-2%), you can leave it in the start-up scripts of your testing and production apps, and it will notify you whenever it finds a memory leak.
How does it work?
Plumbr is a JVM agent that analyzes how your application creates and deletes Java objects. It looks for objects that are repeatedly created and not deleted (and correspond to some other criteria typical to memory leaks).
Since every application has different object life cycle patterns, Plumbr includes a learning mechanism, which observes your app and decides on the thresholds that distinguish leaking objects from the non-leaking ones. That is why your usage should cover not only the leaking parts of your app, but also the non-leaking ones – and, incidentally, why it is hard to discover leaks in the development machine. In the development environment you often just restart your app too fast, before the leaking objects start to stand out from the others.
When it finds a leak, it analyses the participating objects, and composes a report explaining: 1) which object leak, 2) where in the source code the objects are created, and 3) which classes keep a reference to the leak.
How can I try it?
Tell us your e-mail address, and we will create a personal download package for you. It contains 1) the Plumbr software, 2) a leaking demo application that you can use to see Plumbr in action and create a new report in less than 5 minutes, 3) your personal 45-day evaluation license.
While Plumbr is mostly used with web applications, you can actually use it to avoid memory leaks in any application that runs inside the Java Virtual Machine.