IP Library Granted Patent US 6,959,430
Granted Patent B2
US 6,959,430 · App. 09/852,410 · Granted Oct 25, 2005

Specialized heaps for creation of objects in object-oriented environments

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 6,959,430
App. No.
09/852,410
Granted
Oct 25, 2005
Kind
B2
Abstract

The present invention pertains to techniques for creating and maintaining objects in object-oriented environments. The techniques are especially well suited for Java programming environments. In accordance with one aspect of the invention, specialized Java heaps are disclosed. In contrast to conventional heaps, the specialized Java heap is designated for storing Java objects with similar traits in the same memory portion. As such, objects with similar traits can be allocated and maintained in a designated memory portion. Another aspect of the invention provides methods for allocating objects in the heap memory. These methods can be used to create and associate objects with similar traits in a specialized heap. As will be appreciated, objects can be created and maintained more efficiently in this manner. As a result, the performance of virtual machines, especially those operating with relatively limited resources (e.g., embedded systems), is improved.

Claims (51)

1. A method for creating Java objects in a heap memory which is used by a virtual machine, said method comprising:

generating, by said virtual machine, a plurality of d signated Java heap portions which are each designated for storing objects that have similar class-traits, wherein said plurality of designated Java heaps include a first designated heap portion that is designated to store objects associated with a first class name, and a second designated heap portion that is designated to store objects associated with a second class name, and wherein said first and second class names are different;

receiving, by said virtual machine, a Java Bytecode that represents an instruction for creating a first Java object of said first class name;

translating, by said virtual machine, said Java Bytecode into one or more commands, wherein said one or more commands can operate to allocate said first Java object in said first designated heap portion; and

receiving, by said virtual machine, another Java Bytecode representing an instruction for creating a second Java object of said second class name;

translating, by said virtual machine, said other Java Bytecode into one or more other commands, and wherein said one or more other commands can operate to allocate said second Java object in said second designated heap portion;

executing, by said virtual machine, said one or more commands to create said first object in said first designated heap portion; and

executing said other one or more commands to create said second object in said second designated heap portion.

2. A method as recited in claim 1 ,

wherein each of said plurality of Java heap portions is designated for storing Java objects with similar traits.

3. A method as recited in claim 1 , wherein each of said plurality of Java heap portions is designated to store objects of the same size.

4. A method as recited in claim 1 , wherein said first designated Java heap portion is implemented as an array.

5. A method as recited in claim 1 , wherein said first designated Java heap portion is designated to store objects with similar life spans.

6. A Java computing environment as recited in claim 1 , wherein said first designated Java heap portion is designated to store objects that do not reference other objects.

7. A method as recited in claim 1 , wherein said method further comprises:

marking a Java Bytecode representing an instruction for creating a Java object.

8. A method as recited in claim 7 ,

wherein said marking is performed at compile time; and

wherein said one or more commands are created at compile time.

9. A method as recited in claim 1 ,

wherein said first designated portion of the heap is designated for allocation of objects with similar traits; and

wherein objects that do not have similar traits as said objects are not allocated in said first designated portion of the heap.

10. A computer system for creating Java objects in a heap memory which is used by a virtual machine, comprising:

at least one processor;

at least one heap memory; and

a virtual machine which is capable of:

generating a plurality of designated Java heap portions which are each designated for storing objects that have similar class-traits, wherein said plurality of designated Java heaps include a first designated heap portion that is designated to store objects associated with a first class name, and a second designated heap portion that is designated to store objects associated with a second class name, and wherein said first and second class names are different;

receiving a Java Bytecode that represents an instruction for creating a first Java object of said first class name;

translating said Java Bytecode into one or more commands, wherein said one or more commands can operate to allocate said first Java object in said first designated heap portion; and

receiving, another Java Bytecode representing an instruction for creating a second Java object of said second class name;

translating said other Java Bytecode into one or more other commands, and wherein said one or more other commands can operate to allocate said second Java object in said second designated heap portion;

executing said one or more commands to create said first object in said first designated heap portion; and

executing said other one or more commands to create said second object in said second designated heap portion.

11. A computer system as recited in claim 10 , wherein each of said plurality of Java heap portions is designated for storing Java objects with similar traits.

12. A computer system as recited in claim 10 , wherein each of said plurality of Java heap portions is designated to store objects of the same size.

13. A computer system as recited in claim 10 , first designated Java heap portion is implemented as an array.

14. A computer system as recited in claim 10 , wherein said first designated Java heap portion is designated to store objects with similar life spans.

15. A computer system as recited in claim 10 , wherein said first designated Java heap portion is designated to store objects that do not reference other objects.

16. A computer readable medium including at least computer program code for creating Java objects in a heap memory which is used by a virtual machine, comprising:

computer program code for generating, by said virtual machine, a plurality of designated Java heap portions which are each designated for storing objects that have similar class-traits, wherein said plurality of designated Java heaps include a first designated heap portion that is designated to store objects associated with a first class name, and a second designated heap portion that is designated to store objects associated with a second class name, and wherein said first and second class names are different;

computer program code for receiving, by said virtual machine, a Java Bytecode that represents an instruction for creating a first Java object of said first class name;

computer program code for translating, by said virtual machine, said Java Bytecode into one or more commands, wherein said one or more commands can operate to allocate said first Java object in said first designated heap portion; and

computer program code for receiving, by said virtual machine, another Java Bytecode representing an instruction for creating a second Java object of said second class name;

computer program code for translating, by said virtual machine, said other Java Bytecode into one or more other commands, and wherein said one or more other commands can operate to allocate said second Java object in said second designated heap portion;

computer program code for executing, by said virtual machine, said one or more commands to create said first object in said first designated heap portion; and

computer program code for executing, by said virtual machine, said other one or more commands to create said second object in said second designated heap portion.

17. A computer readable medium as recited in claim 16 , wherein each of said plurality of Java heap portions is designated for storing Java objects with similar traits.

18. A computer readable medium as recited in claim 16 , wherein each of said plurality of Java heap portions is designated to store objects of the same size.

19. A computer readable medium as recited in claim 16 , first designated Java heap portion is implemented as an array.

20. A computer readable medium as recited in claim 16 , wherein said first designated Java heap portion is designated to store objects with similar life spans.

21. A computer readable medium as recited in claim 16 , wherein said first designated Java heap portion is designated to store objects that do not reference other objects.

Assignments (1)
MERGER AND CHANGE OF NAME Recorded Dec 14, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037280/0159 →