IP Library Granted Patent US 7,398,523
Granted Patent B2
US 7,398,523 · App. 10/921,592 · Granted Jul 8, 2008

Adaptive class loading

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,398,523
App. No.
10/921,592
Granted
Jul 8, 2008
Kind
B2
Abstract

A method, apparatus, system, and signal-bearing medium that, in an embodiment, determine the classes that are needed during a first invocation of an application and preload those classes during a subsequent invocation of the application. In various embodiments, the classes may be preloaded if they are within a specified package, if they were needed greater than a threshold number of times, if the class path did not change between the first invocation and the subsequent invocation, or if the jar files the contain the classes are in a class path. In this way, an embodiment of the invention may increase the performance of class preloading.

Claims (28)

1. A method comprising:

interpreting a plurality of statements during a first invocation of an application;

determining a first plurality of classes that are requested to be loaded by the plurality of statements during the first invocation of the application and that meet a filter criteria specified by the user, wherein the filter criteria specifies a second plurality of classes that are to be included in the first plurality of classes, and wherein the filter criteria specifies a third plurality of classes that are to be excluded from the first plurality of classes;

determining a plurality of jar files that contain the first plurality of classes during the first invocation of the application;

counting a plurality of a number of references to the first plurality of respective classes by the plurality of statements during the first invocation of the application;

deciding whether the plurality of jar files are in a class path during the first invocation of the application;

determining whether each of the plurality of the number of the references to the first plurality of respective classes by the plurality of statements during the first invocation of the application is greater than a threshold;

determining whether the class path has changed between the first invocation and a subsequent invocation of the application; and

preloading the plurality of classes during the subsequent invocation of the application if the plurality of jar files were in the class path during the first invocation of the application, each of the plurality of the number of the references to the first plurality of respective classes by the plurality of statements during the first invocation of the application is greater than the threshold, and the class path has not changed between the first invocation and the subsequent invocation of the application.

2. The method of claim 1 , wherein the determining whether the class path has changed between the first invocation and the subsequent invocation of the application further comprises:

comparing a cyclic redundancy check of the class path from the first invocation and the subsequent invocation.

3. The method of claim 2 , further comprising:

refraining from preloading the first plurality of classes during the subsequent invocation of the application if the class path has changed between the first invocation and the subsequent invocation of the application.

4. The method of claim 3 , wherein the filter criteria further specifies a package that contains the second plurality of classes that are to be included in the first plurality of classes, and wherein the filter criteria further specifies a directory that contains the third plurality of classes that are to be excluded from the first plurality of classes.

5. A method for configuring a computer, comprising:

configuring the computer to interpret a plurality of statements during a first invocation of an application;

configuring the computer to determine a first plurality of classes that are requested to be loaded by the plurality of statements during the first invocation of the application and that meet a filter criteria specified by the user, wherein the filter criteria specifies a second plurality of classes that are to be included in the first plurality of classes, and wherein the filter criteria specifies a third plurality of classes that are to be excluded from the first plurality of classes;

configuring the computer to determine a plurality of jar files that contain the first plurality of classes during the first invocation of the application;

configuring the computer to count a plurality of a number of references to the first plurality of respective classes by the plurality of statements during the first invocation of the application;

configuring the computer to decide whether the plurality of jar files are in a class path during the first invocation of the application;

configuring the computer to determine whether each of the plurality of the number of the references to the first plurality of respective classes by the plurality of statements during the first invocation of the application is greater than a threshold;

configuring the computer to determine whether the class path has changed between the first invocation and a subsequent invocation of the application; and

configuring the computer to preload the plurality of classes during the subsequent invocation of the application if the plurality of jar files were in the class path during the first invocation of the application, each of the plurality of the number of the references to the first plurality of respective classes by the plurality of statements during the first invocation of the application is greater than the threshold, and the class path has not changed between the first invocation and the subsequent invocation of the application.

6. The method of claim 5 , wherein the configuring the computer to determine whether the class path has changed between the first invocation and the subsequent invocation of the application further comprises:

configuring the computer to compare a cyclic redundancy check of the class path from the first invocation and the subsequent invocation.

7. The method of claim 6 , further comprising:

configuring the computer to refrain from, preloading the first plurality of classes during the subsequent invocation of the application if the class path has changed between the first invocation and the subsequent invocation of the application.

8. The method of claim 7 , wherein the filter criteria further specifies a package that contains the second plurality of classes that are to be included in the first plurality of classes, and wherein the filter criteria further specifies a directory that contains the third plurality of classes that are to be excluded from the first plurality of classes.

Assignments (3)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058553/0802 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2012
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: FACEBOOK, INC.
Reel/Frame 028015/0863 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2004
From: MARTIN, BRIAN K.; MORAVEC, DANIEL J.; MUSTA, THOMAS E.; VAN NORMAN, ERIC J.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 015096/0035 →