I've found out that vmmap (as shown here[1]) is only a little helpful, as it has so much info I can't really make sense of it... and I also found this[2] answer on StackOverflow that was very helpful as it lets me see the native memory allocation by the JVM... but all I know now is that less than half of my JVM memory consumption is the actual heap: the rest is thread stacks (huge for JavaFX - around 50MB for my app), GC-allocated memory and around 25MB of class definitions!
[1] https://plumbr.io/blog/memory-leaks/why-does-my-java-process...