Да, это возможно, но не очень просто.
Проблема с использованием java.lang.instrument.Instrumentation заключается в том, что вам ВСЕГДА нужно использовать агент JVM.
Хорошее введение в агенты JVM доступно в http://www.javabeat.net/2012/06/introduction-to-java-agents/.
Однако, поскольку ваши модульные тесты также выполняются в jvm, вы можете указать агент в качестве аргумента JVM.
Агент JVM с отчетами о памяти для того, что вы хотите сделать и готов к упаковке, доступен по адресу https://github.com/jbellis/jamm.
Вы можете построить его с помощью Maven или Ant.
Чтобы использовать его, вы создаете его и затем передаете следующее в качестве аргумента jvm при запуске модульного теста или набора тестов:
-javaagent:<path to>/jamm.jar
В модульных тестах вы можете создать экземпляр MemoryMeter и использовать его:
MemoryMeter meter = new MemoryMeter();
meter.measure(object);
meter.measureDeep(object);
meter.countChildren(object);