IP Library Granted Patent US 7,240,341
Granted Patent B2
US 7,240,341 · App. 10/203,123 · Granted Jul 3, 2007

Global constant pool to allow deletion of constant pool entries

Assignee: Esmertec AG
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,240,341
App. No.
10/203,123
Granted
Jul 3, 2007
Kind
B2
Abstract

A method and apparatus for reducing runtime memory requirements of a virtual machine. The invention involves analyzing object code compiled from source code. The object code includes at least two load-units that each contain a load-unit specific constant pool. Each load-unit is analyzed to determine which constants are actual constants and then those actual constants are analyzed to determine where commonality exists among the load-units. If a constant is determined to be redundant it is rewritten to a global constant pool. The references to the constant in the load-unit specific constant pool are rewritten to point to the value in the global constant pool. The memory allocated to the constant in the individual load-unit is then reallocated, either by a programmed routine or by memory management tools.

Claims (17)

1. A method of reducing runtime memory requirements of a virtual machine in a computer system having associated computer memory, the method comprising:

(a) compiling source code within the associated computer memory to create object code, the object code including a plurality of load-units;

(b) applying the object code to a pre-load analysis engine to determine a number of load units;

(c) determining a threshold number of occurrences for a threshold comparison in accordance with a processing time of the pre-load analysis engine to provide an adjusted threshold;

(d) analyzing each load unit of the plurality of load-units of the object code for common constants;

(e) enumerating the common constants found in step (d);

(f) creating a global constant pool;

(g) writing a value of the common constants to the global constant pool in accordance with a comparison of (i) the enumeration of step (e) and (ii) the adjusted threshold;

(h) modifying references pointing at the common constants to point at the value written to the global constant pool;

(i) removing each instance of the common constants from the load-units; and

(j) operating the computer system in accordance with the removing.

2. A method as claimed in claim 1 , characterised characterized in that each load unit of the plurality of load-units includes a load-unit specific constant pool, the load-unit specific constant pool containing constants of its respective load unit.

3. A method as claimed in claim 1 , characterised characterized in that removing each instance of the common constants from the load-units occurs immediately following modifying the references.

4. A method as claimed in claim 1 , characterized in that removing each instance of the common constants from a load-units occurs when memory management tools recycle the associated computer memory formerly occupied by each instance of the common constants.

5. A method as claimed in claim 1 , characterized in that each load unit of the plurality of load-units includes a load-unit specific constant pool, the load-unit specific constant pool containing constants of each of the load-units.

6. A method as claimed in claim 1 , characterized in that the program module that removes each instance of the common constants from the load-units does so immediately following modifying the references.

7. A method as claimed in claim 1 , characterized in that a program module that removes each instance of the common constants from the load-units does so when memory management tools recycle the associated computer memory formerly occupied by each instance of the common constants.

Assignments (9)
PATENTEE CHANGE OF ADDRESS Recorded Feb 5, 2016
From: MYRIAD GROUP, AG
To: MYRIAD GROUP, AG
Reel/Frame 037701/0866 →
CHANGE OF NAME Recorded Jul 9, 2009
From: ESMERTEC AG
To: MYRIAD GROUP AG
Reel/Frame 022928/0730 →
CHANGE OF NAME Recorded Jul 7, 2009
From: ESMERTEC AG
To: MYRIAD GROUP AG
Reel/Frame 022917/0525 →
RELEASE OF SECURITY INTEREST Recorded Mar 30, 2004
From: ESMERTEC AG
To: INSIGNIA SOLUTIONS, INC.
Reel/Frame 015156/0047 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2004
From: INSIGNIA SOLUTIONS, INC.
To: ESMERTEC AG
Reel/Frame 014852/0297 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2003
From: PLUMMER, WAYNE
To: INSIGNIA SOLUTIONS, PLC
Reel/Frame 014361/0870 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2003
From: KRAMSKOY, JERRY
To: INSIGNIA SOLUTIONS, PLC
Reel/Frame 014361/0897 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2003
From: INSIGNIA SOLUTIONS, PLC
To: ESMERTEC AG
Reel/Frame 014250/0761 →
GRANT OF PATENT SECURITY INTEREST Recorded Jun 27, 2003
From: INSIGNIA SOLUTIONS INC., A DELAWARE CORPORATION
To: ESMERTEC AG
Reel/Frame 014220/0163 →
Continuity (2)
Provisional Application 6018055400 · Feb 7, 2000
Related Publication 20030172194A1 · Sep 11, 2003