Excelsior JET Memory Management Properties Cheat Sheet

This is a video response to the HotSpot JVM garbage collection options cheat sheet recently posted by Alexey Ragozin. (Alexey lists so many -XX options that I cannot help wondering if Sun had reserved any top-secret -XXX ones for internal use. 😉 )

In contrast, what Excelsior JET users have does not look that much like a sheet, more like a sticky note:

Property Description
jet.gc.heaplimit1 Maximum heap size. Defaults to a special value of 0, meaning “adaptive”
jet.gc.ratio Maximum percentage of CPU time spent on garbage collection, in tenths of a percent. Default: 11 (1.1%)
jet.gc.no.swap Throw OutOfMemoryError if not enough physical memory is available even after garbage collection. Default: use virtual memory.
jet.gc.threads Maximum number of concurrent threads that the garbage collector may use. By default, it utilizes all available CPU cores.

1 Multi-app executables also recognize the -Xmx option.

For details, refer to the Knowledge Base article HOWTO: Fine tune application memory footprint.

In addition, Excelsior JET Runtime has three flavors: Classic, Desktop, and Server, with availability depending on edition. The choice of Runtime affects the efficiency of memory allocation and garbage collection in multithreaded applications running on multi-core/multi-CPU systems. The default is set at compile time, but can be overridden using the jet.rt property.

Do you need more control, or a memory manager that “just works”? Welcome to comments.

Categories: Excelsior JET, Java

One Response

  1. Sapio Says:

    FYI…as we look forward to the 64 bit version we also appreciate how well you do memory management. It seemed that GC was better executed when we ran under Exceslior versus running our jar file directly and setting the GC options to what seemed like optimum settings.

    We hope to see the same thing with the 64 bit version where memory management on our server will be just as important.