That is indeed a way but the problem is that you are never sure that all garbage will get collected... (JConsole indeed has a Force GC button)
I suspect that the JVM only knows the amount of garbage when it performs a GC. And as this is an expensive operation is would not be effective from a performance point of view to constantly keep track of the amount of garbage in the heap. That is probably also the reason why there is no profiler that supports this.
It makes it difficult to get to know the actual memory gain from one implementation versus another. The most reliable way to go I think is by running the application several times, lowering the max heap each time till it fails with OutOfMemoryException.