javagarbage-collectionjvm

Understanding footprint measurement in java garbage collection


I'm trying to understand java garbage collection. There are four measurement in garbage collection mentioned here:

Footprint is the working set of a process, measured in pages and cache lines. On systems with limited physical memory or many processes, footprint may dictate scalability.

I can understand the other three, but what exactly is Footprint and how to optimize it?


Solution

  • Memory footprint refers to the amount of main memory that a program uses or references while running. Larger programs have larger memory footprints. An application's memory footprint is roughly proportionate to the number and sizes of shared libraries or classes it loads, whereas static libraries, executable programs and static data areas contribute to a fixed (constant) portion. Programs themselves often do not contribute the largest portions to their own memory footprints. In a Java program, the memory footprint is predominantly made up of the runtime environment in the form of Java Virtual Machine (JVM) itself that is loaded indirectly when a Java application launches.