IP Library Granted Patent US 7,665,087
Granted Patent B1
US 7,665,087 · App. 10/319,875 · Granted Feb 16, 2010

Memory efficient classloading to reduce the number of class copies

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,665,087
App. No.
10/319,875
Granted
Feb 16, 2010
Kind
B1
Abstract

A system and method are disclosed for decreasing the number of duplicate library copies loaded into memory without endangering the security of applications in a runtime environment. In a preferred embodiment, applications in the runtime environment may be provided with a delegation classloader that identifies any libraries referenced by the delegation classloader's respective application. The delegation classloaders then delegate the task of providing the referenced libraries to a distinct software component. In a preferred embodiment, the distinct software component may be another delegation classloader or other loader adapted to look at a single library or a small set of libraries. These “atomic” classloaders can be freely shared by multiple applications since they do not expose any application's internals. Each atomic classloader preferably loads one copy of its associated library or libraries into memory. This single instance of shared library code is made available to multiple applications without requiring explicit cooperation between applications or endangering their security.

Claims (25)

1. A computer-based method for reducing memory consumption by reducing identical resources in a virtual machine environment, said computer-based method implemented in computer readable program code, said computer readable program code stored in computer memory, said computer-based method comprising the steps of:

loading an application in said virtual machine environment;

a plurality of class loaders in memory, each class loader in said plurality of class loaders being associated with a library code;

a store comprising a plurality of references to existing class loaders stored in the memory,

creating a delegation class loader (DCL), wherein said DCL identifies one or more libraries referenced by said loaded application and said DCL determining if an existing class loader is available for loading at least one library among said one or more libraries stored in the memory and said DCL determining if a reference exists to said existing class loader for said at least one library;

delegating task of loading said at least one library to said existing class loader based on said determined reference; and

said delegating step limiting identical resources in memory and reducing memory consumption by not creating class loaders to load libraries that are already loaded by existing class loaders.

2. The computer-based method of claim 1 , wherein the virtual machine environment is a Java virtual machine environment.

3. A computer-based system for reducing memory consumption in a virtual machine environment by reducing copies of code in memory, comprising:

a virtual machine environment for executing code;

a plurality of class loaders in memory, each class loader in said plurality of class loaders being associated with a library code;

a store comprising a plurality of references to existing class loaders stored in the memory,

computer readable program code stored in said memory that, upon loading a new application in said virtual machine environment: creating a delegation class loader (DCL), said DCL identifying at least one library referenced by said loaded new application, determining if an existing class loader is available in said store for loading said at least one library and determining if a reference exists for said existing class loader, and delegating a task of loading said at least one library to said existing class loader based on said determined reference; and

said delegation limiting identical resources in said memory and reducing memory consumption by not creating class loaders to load libraries that are already loaded by existing class loaders.

4. A computer-based system for reducing memory consumption in a run time environment by reducing copies of code in memory, comprising:

a processor; and

computer storage storing computer readable program code that is executable by said processor to reduce memory consumption in a run time environment by reducing copies of code in memory, said computer storage comprising:

computer readable program code loading an application in said run time environment;

computer readable program code implementing a plurality of class loaders in memory, each class loader in said plurality of class loaders being associated with a library code;

computer readable program code implementing a store in memory comprising a plurality of references to existing class loaders stored in the memory,

computer readable program code creating a delegation class loader (DCL), wherein said DCL identifies one or more libraries referenced by said loaded application, said DCL determining if an existing class loader is available for loading at least one library among said one or more libraries, and said DCL determining if a reference exists to said existing class loader for said at least one library;

computer readable program code delegating task of loading said at least one library to said existing class loader based on said determined reference; and

computer readable program code limiting, based on said delegation, identical resources in memory and reducing memory consumption by not creating class loaders to load libraries that are already loaded by existing class loaders.

5. The computer-based system of claim 4 , wherein the runtime environment is a .lava runtime environment.

6. The computer-based system of claim 4 , wherein the runtime environment is a .Net runtime environment.

Assignments (8)
SECURITY INTEREST Recorded Mar 7, 2024
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 066762/0833 →
SECURITY INTEREST Recorded Jan 25, 2022
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 058840/0099 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2020
From: SPK ACQUISITIONS LIMITED
To: PROGRESS SOFTWARE CORPORATION
Reel/Frame 052827/0846 →
MERGER AND CHANGE OF NAME Recorded Oct 22, 2019
From: IONA TECHNOLOGIES LIMITED; SPK ACQUISITIONS LIMITED
To: SPK ACQUISITIONS LIMITED
Reel/Frame 050794/0530 →
SECURITY INTEREST Recorded Apr 30, 2019
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., ADMINISTRATIVE AGENT
Reel/Frame 049031/0684 →
SECURITY INTEREST Recorded Dec 18, 2017
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 044889/0325 →
RE-REGISTRATION AS A PRIVATE COMPANY Recorded Sep 21, 2009
From: IONA TECHNOLOGIES, PLC
To: IONA TECHNOLOGIES LIMITED
Reel/Frame 023254/0603 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 2, 2003
From: BOSSCHAERT, ALLAERT J.D.; MURPHY, PHILIP J.; HAYES, DAVID J.; BAKER, SEAN P.
To: IONA TECHNOLOGIES, PLC
Reel/Frame 013620/0975 →