miércoles, 28 de diciembre de 2011

Diagnosing Java memory leaks (OutOfMemoryError)

  • First you have to get a Heap Dump.
  • To analize it, IBM Heap Analyzer is the way to go.
  • IBM Heap Analyzer's Tree View *is* the way to go.
  • Hopefully you'll have one big tree. Go for it!
  • Descend fast while the big percentage doesn't change. Ignore "interesting" objects if the percentage doesn't change under them.
  • If you find a ClassLoader in the way, ignore the history behind you. Keep descending.
  • Descend more.
  • Be aware of "infinite chains" of the same objects or "infinite chains" with patterns of the same objects.
  • Be aware of gaps in the percentage.
  • Keep in mind that the tree Heap Analzyer is just a way to show you the memory. You have thousands of ways to draw an analogous tree. Each point in the tree can have several "parents". Heap Analyzer is only showing you one of them.
References:

No hay comentarios: