Parallel Processing Of Data
US-2024338235-A1 · Oct 10, 2024 · US
US9507613B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9507613-B2 |
| Application number | US-201213436476-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 30, 2012 |
| Priority date | Mar 30, 2012 |
| Publication date | Nov 29, 2016 |
| Grant date | Nov 29, 2016 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A class preloading mechanism that dynamically preloads classes at runtime in a virtual machine (VM) environment. Data structures representing preloaded classes may be stored in a persistent module corresponding to a classloader. A persistent module can be directly mapped or copied into a memory region at runtime so that the classes may not have to be loaded from the class file container. The preloaded classes are not fully linked and resolved. When a classloader receives a class request, the classloader looks up the preloaded class in the memory region and completes linking and resolution of the class. Persistent modules may be pre-generated and, for example, installed with an application. Alternatively, a persistent module for a class file container may be generated at runtime by preloading classes from the class file container into a memory region and storing data structures representing the classes as a persistent module.
Opening claim text (preview).
What is claimed is: 1. A method, comprising: loading at least one class indicated by a classloader at runtime of a virtual machine (VM) environment on a device, wherein said loading comprises, for at least one class file container indicated by the classloader, prior to the classloader receiving requests for classes defined by the class file container: locating a persistent module external to the virtual machine environment and corresponding to the class file container, wherein the persistent module contains one or more data structures representing classes defined by one or more class files in the respective class file container, wherein the one or more data structures were previously saved to the persistent module based on a previous preloading, prior to said loading, of the classes represented by the one or more class files; and mapping or copying content of the persistent module to memory within the VM environment to preload the one or more classes from the persistent module into the VM environment without loading the one or more classes from respective class files in the class file container, wherein the one or more preloaded classes are not fully linked or resolved in the VM environment prior to the classloader receiving requests for the one or more classes, and wherein the one or more preloaded classes that are not fully linked or resolved are not made available in the VM environment for use by applications until after the classloader receives the requests for the one or more classes. 2. The method as recited in claim 1 , further comprising, prior to said loading the at least one class, generating one or more persistent modules each corresponding to a different one of one or more class file containers indicated by the classloader, wherein each persistent module contains one or more data structures representing classes defined by one or more class files in a respective class file container. 3. The method as recited in claim 2 , wherein generating a persistent module corresponding to a given class file container indicated by the classloader comprises: preloading one or more classes from the given class file container into memory within the VM at runtime of the VM environment, wherein the one or more preloaded classes are not fully linked or resolved in the VM environment; and storing the preloaded classes as data structures representing the classes defined by the given class file container to generate a persistent module corresponding to the given class file container. 4. The method as recited in claim 3 , further comprising allocating a memory region corresponding to the given class file container within the VM environment prior to said preloading the one or more classes from the given class file container into memory within the VM. 5. The method as recited in claim 3 , wherein a separate memory region is allocated for each of the one or more class file containers indicated by the classloader. 6. The method as recited in claim 3 , wherein said preloading the one or more classes from the given class file container into memory comprises, for each of the one or more classes, performing one or more static security checks on the class as defined in the given class file container. 7. The method as recited in claim 6 , wherein the static security checks are not repeated in said mapping or copying content of the persistent module to memory within the VM environment to load the one or more classes from the persistent module into the VM environment. 8. The method as recited in claim 3 , wherein said preloading the one or more classes from the given class file container into memory comprises, for each of the one or more classes, creating one or more data structures for the class in memory according to the definition of the class in the given class file container. 9. The method as recited in claim 3 , wherein said preloading the one or more classes from the given class file container into memory comprises, for at least one of the one or more classes, linking the respective preloaded class to at least one other class, wherein at least one reference to the at least one other class is included in the persistent module. 10. The method as recited in claim 3 , wherein said preloading the one or more classes from the given class file container into memory comprises: creating type IDs for names and corresponding data types related to the one or more classes, wherein a type ID is a token; and storing the type IDs to a global type ID database. 11. The method as recited in claim 2 , wherein said generating a persistent module corresponding to at least one of the one or more class file containers indicated by the classloader is performed prior to runtime of the VM environment. 12. The method as recited in claim 1 , wherein said loading the at least one class indicated by the classloader at runtime of the VM environment further comprises: attempting to locate a persistent module corresponding to another class file container; and in response to not locating a persistent module corresponding to the other class file container: preloading one or more classes from the other class file container into memory within the VM environment, wherein the one or more preloaded classes are not fully linked or resolved in the VM environment; and storing the preloaded classes from the other class file container as data structures representing the classes defined by the other class file container to generate a persistent module corresponding to the other class file container. 13. The method as recited in claim 1 , wherein said loading the at least one class indicated by the classloader at runtime of the VM environment further comprises: attempting to locate a persistent module corresponding to another class file container; and in response to not locating a persistent module corresponding to the other class file container, the classloader loading one or more classes from the other class file container into the VM environment, wherein the one or more loaded classes are linked and resolved in the VM environment. 14. The method as recited in claim 1 , further comprising instantiating the classloader as a classloader instance in the VM environment, wherein said loading the at least one class is performed during said instantiating the classloader. 15. The method as recited in claim 1 , further comprising, subsequent to said loading the at least one class indicated by the classloader at runtime of the VM environment: receiving a request to load a class indicated by the classloader in the VM environment; loading the requested class from a preloaded class in memory of the VM environment, wherein said loading the requested class from the preloaded class comprises completing linking and resolution of the requested class in the VM environment; and making the requested class available within the VM environment. 16. The method as recited in claim 15 , wherein said completing linking and resolution of the requested class in the VM environment comprises performing one or more dynamic security checks on the requested class. 17. A system comprising: at least one processor; and a memory storing program instructions, wherein the program instructions are executable by the at least one processor to load at least one class indicated by a classloader at runtime of a virtual machine (VM) environment; wherein to load the at least one class indicated by the classloader at runtime of the VM environment, the program instructions are executable by the at least one processor to, for each of one or more class file containers indicated
Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators · CPC title
Program loading or initiating (bootstrapping G06F9/4401; security arrangements for program loading or initiating G06F21/57) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.