Netbeans имеет один из лучших профилировщиков для приложений Java, он работает хорошо и предоставляет столько деталей, сколько вы хотите.Так как вы используете Netbeans, я бы воспользовался этим!
С точки зрения учебников, есть один здесь о утечках памяти и о том, как их отладить / обнаружить с помощью профилировщика.Как только вы начнете работать с ним, остальные функции должны появиться довольно легко.