Browse Prior Art Database

Processing For Efficient Triggering Of Soft Real-Time Java Garbage Collection To Optimize Throughput, Latency, And Power Consumed

IP.com Disclosure Number: IPCOM000203697D
Publication Date: 2011-Jan-29
Document File: 2 page(s) / 23K

Publishing Venue

The IP.com Prior Art Database

Abstract

Most garbage collection algorithms perform an entire garbage collection when the Java heap space is exhausted which can result in long periods of garbage collection activity with the application stalled (e.g., 2-3 second pauses). For some applications the blocking of an application is unacceptable (e.g., process control sensors, RFID, VXML, or the SIP protocol). There are various techniques to attempt to mitigate this latency but more needs to be done to reduce it.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 53% of the total text.

Page 01 of 2

Processing For Efficient Triggering Of Soft Real-Time Java Garbage Collection To Optimize Throughput, Latency, And Power Consumed

The following is a general algorithm for a better garbage collection trigger.

Goals

-- Never run out of memory because an out of memory condition will result in a synchronous garbage collection (GC)
-- Collect the most amount of memory as possible on each garbage collection cycle to be efficient
-- Only start a garbage collection cycle when needed due to additional overhead when a garbage collection cycle has started

Parameters

[circle6]RateOfDeath: Rate of death of the objects. Measured in KBytes / second by the JVM.x.

[circle6]RateOfReclamation:Rate of reclamation of the objects. Measured in KBytes / second by the JVM.

[circle6]CycleTime: Average time for a GC cycle to complete measured by the JVM.

[circle6]RateOfCreation: Rate of object creation: Measured in KBytes / second by the JVM. This is calculated over a long period of time relative to a CycleTime.

[circle6]SafetyMargin: Safety margin. This is a margin of safety specified by the user, as a percentage of the ROC value.

[circle6]CycleGap: Time between cycles when Metronome is not running.

[circle6]InitialHeapFree: Amount of heap free space available for the application or business logic at start-up. The memory that is used by the application.

[circle6]ActualHeapFree: Amount of heap free space available for the application, measured at the end of a
GC cycle.

[circle6]PeakFactor: A multiplier that is used to estimate the largest expected burst of work, as a relative measure of the normal work. For example, 150%

would mean that it is expected the peak

Strategy

-- Maximize CycleGap
-- Minimize CycleTime
-- Minimize SafetyMargin

Simplifying Assumptions

The following assumptions should be true as long term properties but they may deviate during bursts of

work activity:

[circle6]'RateOfDeath' == 'RateOfReclamation'

[circle6]"RateOfRecl...