This will probably be only a partial answer.
What is the memory area of ββthe JVM
The full fingerprint of a Java application consists of heap space and space without heap (let me call it that). Just a few examples of what is in heap-free space: PermGen or Metaspace, allocate code selection (malloc), NIO also uses its own memeory.
How can I minimize it?
A heap usually occupies the largest part of your footprint. So, I would start with this.
As for space without heap, you can minimize: PermGen (if the maximum size is redundant), stream stacks (they are quite large, especially in 64-bit JMMs) and code cache (subject to performance, of course).
Do these JVMs support JIT caching?
Under normal conditions (and I do not know others), each process has its own footprint. This is actually what distinguishes a process from a thread. And back to multiple JVMs, each JVM is a separate process.
should share rt.jar
If you run Java from the same directory (same installation), they, of course, have the same rt.jar, but only as the source of the classes. For example, the String class will load as many times as the number of running JVMs.
Average joe
source share