title: How to find memory leaks using visualvm
body: <p>I suspect we have a major memory leak in our ActiveMQ connection bridge - we're seeing typical memory leak patterns (app loads fine, slows down if it runs for prolonged periods of time or is restarted over and over again over short periods of time).  I looked up modern best practices for finding Java memory leaks and a lot of developers seem to be abandoning traditional tools like jhat/jmap in lieu of the new(er) <code>jvisualvm</code>.</p>
  
  <p>Upon launching this tool (and spending a few hours reading over its tutorial) I am able to take profiler snapshots for both CPU and memory.</p>
  
  <p>I'm just sort of stuck at this point - how do I analyze these snapshots to identify the leak? There's a plethora of documentation out there as to how to use jvisualvm to produce snapshots, but very little documentation as to how to actually make sense of them.</p>
  
  <p>Thanks in advance.</p>