Aprof
by Devexperts
AProf is a Java memory allocation profiler with very low performance impact on the profiled application.
It acts as an agent which transforms class bytecode by inserting counter increments wherever memory allocation is done.
Java VM has an option -Xaprof printing how many instances of classes were allocated during lifetime of the application and how much memory they occupied in total and per instance. The option has no performance impact due to the fact that counting takes place during garbage collection. The only drawbacks are occasional overflows of counters and the absence of any information on locations where the object allocations take place.
...