http://www.toptal.com/java/hunting-memory-leaks-in-java