What is the meaning of "From Space" and "To Space" shown in jmap?

juananneother picture juananneother · Feb 27, 2013 · Viewed 9.2k times · Source

I understand the difference between new gen / old gen /perm gen, but I don't know what "To Space" and "From Space" are. I am seeing my "From Space" hitting 99.8% used while the "To Space" always seems to stay at 0% used.

Answer

Bernd Elkemann picture Bernd Elkemann · Feb 27, 2013

Two regions in the garbage-collection algorithm that is used in the VM.

Java specifics are found here: How Garbage Collection works in Java

And a general explanation about "from space" and "to space": WP

The most straightforward approach is the semi-space collector, which dates to 1969. In this moving GC scheme, memory is partitioned into a "from space" and "to space". Initially, objects are allocated into "to space" until they become full and a collection is triggered. At the start of a collection, the "to space" becomes the "from space", and vice versa. The objects reachable from the root set are copied from the "from space" to the "to space"

The reason why your "to space" is at 0% is, that only one of them is used except during collection; when the collection is done and all objs are in the "to space" then the names are swapped and the "to space" is now called the "from space".