# US 9,507,712 B2 · Determining a benefit of reducing memory footprint of a java application

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,507,712 B2
- Document ID: US9507712B2
- Status: Granted
- Kind: B2
- Application number: 13/455,309
- Filed: 2012-04-25
- Published: 2012-08-16
- Granted: 2016-11-29
- Earliest claimed: 2004-01-21
- Assignees: International Business Machines Corporation
- Applicants: Wilfred Cadelina Jamison
- Inventors: Wilfred Cadelina Jamison
- Web page: https://patentgrep.com/patent/US9507712B2

## CPC

- G06F 12/0253: {Garbage collection, i.e. reclamation of unreferenced memory}
- G06F 8/315: {Object-oriented languages}
- G06F 11/3692: {for test results analysis}
- G06F 12/023: {Free address space management}
- Y10S 707/99953: Recoverability
- Y10S 707/99957: Garbage collection
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y10S: TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS

## Abstract

Changes in performance in a Java program are deduced from information related to garbage collection events of the program. Assumptions are made about the system, the application and garbage collection, and changes in performance that will result from modifying the program are deduced.

## Claims

### Claim 1

A method, within a computer hardware system having a heap, of improving performance in a Java-based computer program, comprising:
executing the computer program within a virtual machine;
identifying when the computer program enters a steady state;
only after the computer program being within the steady state, obtaining information regarding garbage collection associated with the computer program; and
predicting, based upon the information, changes in performance of the computer program that will result from modifying the computer program.

### Claim 2 (depends on 1)

The method of claim 1, further comprising
estimating a cost of the garbage collection to the performance by
a duration of an average garbage collection event, and
a frequency of garbage collection events.

### Claim 3 (depends on 2)

The method of claim 2, wherein
the duration depends upon
an amount of garbage to be cleaned up,
an algorithm used to perform the garbage collection;
a heap compaction,
a cost of reconciling object references that are moved, and
a number of finalizers to be executed.

### Claim 4 (depends on 2)

The method of claim 2, wherein
the frequency depends upon
a rate of object creation,
a heap fragmentation,
a size of a heap, and
a garbage collection policy.

### Claim 5 (depends on 1)

The method of claim 1, further comprising
changing the computer program by reducing an amount of memory from a footprint of the computer program.

### Claim 6 (depends on 5)

The method of claim 5, further comprising
determining a number of additional transaction that can be executed during a run based upon
the amount of the memory reduced from the footprint,
a total duration for the run, and
an amount of time the run is spent in garbage collection.

### Claim 7 (depends on 1)

The method of claim 1, wherein
the information associated with the garbage collection is obtained from a verbosegc.

### Claim 8

A computer hardware system configured to improve a performance in a Java-based computer program, comprising:
a memory including a heap; and
a processor, wherein the processor is configured to perform and/or initiate:
executing the computer program within a virtual machine;
identifying when the computer program enters a steady state;
only after the computer program being within the steady state, obtaining information regarding garbage collection associated with the computer program; and
predicting, based upon the information, changes in performance of the computer program that will result from modifying the computer program.

### Claim 9 (depends on 8)

The computer hardware system of claim 8, wherein
a cost of the garbage collection to the performance is estimated using
a duration of an average garbage collection event, and
a frequency of garbage collection events.

### Claim 10 (depends on 9)

The computer hardware system of claim 9, wherein
the duration depends upon
an amount of garbage to be cleaned up,
an algorithm used to perform the garbage collection;
a heap compaction,
a cost of reconciling object references that are moved, and
a number of finalizers to be executed.

### Claim 11 (depends on 9)

The computer hardware system of claim 9, wherein
the frequency depends upon
a rate of object creation,
a heap fragmentation,
a size of a heap, and
a garbage collection policy.

### Claim 12 (depends on 8)

The computer hardware system of claim 8, wherein
the processor is further configured to perform:
changing the computer program by reducing an amount of memory from a footprint of the computer program.

### Claim 13 (depends on 12)

The computer hardware system of claim 12, wherein
the processor is further configured to perform:
determining a number of additional transaction that can be executed during a run based upon
the amount of the memory reduced from the footprint,
a total duration for the run, and
an amount of time the run is spent in garbage collection.

### Claim 14

A computer program product comprising
a storage hardware device having stored therein computer usable program code for improving performance in a Java-based computer program,
the computer usable program code, which when executed by a computer hardware system, causes the computer hardware system to perform:
executing the computer program within a virtual machine;
identifying when the computer program enters a steady state;
only after the computer program being within the steady state, obtaining information regarding garbage collection associated with the computer program; and
predicting, based upon the information, changes in performance of the computer program that will result from modifying the computer program.

### Claim 15 (depends on 14)

The computer program product of claim 14, wherein
the computer usable program code further causes the computer hardware system to perform
estimating a cost of the garbage collection to the performance by
a duration of an average garbage collection event, and
a frequency of garbage collection events.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein
the duration depends upon
an amount of garbage to be cleaned up,
an algorithm used to perform the garbage collection;
a heap compaction,
a cost of reconciling object references that are moved, and
a number of finalizers to be executed.

### Claim 17 (depends on 15)

The computer program product of claim 15, wherein
the frequency depends upon
a rate of object creation,
a heap fragmentation,
a size of a heap, and
a garbage collection policy.

### Claim 18 (depends on 14)

The computer program product of claim 14, wherein
the computer usable program code further causes the computer hardware system to perform
changing the computer program by reducing an amount of memory from a footprint of the computer program.

### Claim 19 (depends on 18)

The computer program product of claim 18, wherein
the computer usable program code further causes the computer hardware system to perform
determining a number of additional transaction that can be executed during a run based upon
the amount of the memory reduced from the footprint,
a total duration for the run, and
an amount of time the run is spent in garbage collection.

### Claim 20 (depends on 14)

The computer program product of claim 14, wherein
the information associated with the garbage collection is obtained from a verbosegc.
