Heavyweight and lightweight instrumentation
First Claim
1. A method for performing plural operations on an application, each of said operations using one of plural versions of a structural metadata description of the application, the method comprising:
- receiving a structural metadata description of the application;
performing a first operation on the application using the structural metadata description of the application, thereby generating overhead;
reducing the structural metadata description;
performing a second operation on the application using the reduced structural metadata description of the application, thereby generating less overhead than the step of performing the first operation.
2 Assignments
0 Petitions
Accused Products
Abstract
An instrumentation system performs operations such as profiling an application and partitioning and distributing units of the application using different versions of metadata describing the application. Performing an operation on an executing application generates overhead. Detailed metadata used in operations such as profiling create unnecessary overhead during other operations. By removing metadata detail unnecessary for a particular operation, an instrumentation system using reduced metadata generates less overhead for that particular operation. Different instrumentation packages include different versions of metadata for performing operations on the application.
149 Citations
36 Claims
-
1. A method for performing plural operations on an application, each of said operations using one of plural versions of a structural metadata description of the application, the method comprising:
-
receiving a structural metadata description of the application;
performing a first operation on the application using the structural metadata description of the application, thereby generating overhead;
reducing the structural metadata description;
performing a second operation on the application using the reduced structural metadata description of the application, thereby generating less overhead than the step of performing the first operation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
selecting one or more types to preserve; and
eliminating one or more types other than the selected types from the structural metadata description.
-
-
6. The method of claim 5 further comprising:
compressing the remaining structural metadata description.
-
7. The method of claim 1 wherein the structural metadata description comprises plural types of metadata, and wherein the step of reducing comprises:
-
selecting one or more types to remove; and
eliminating the selected types from the structural metadata description.
-
-
8. The method of claim 7 further comprising:
compressing the remaining structural metadata description.
-
9. The method of claim 1 wherein the application comprises plural units, and wherein the step of performing a second operation comprises distributing the plural units of the application in a distributed computing environment.
-
10. The method of claim 1 wherein the step of performing a second operation comprises re-profiling the application.
-
11. A computer-readable medium having computer-executable instructions for performing the method of claim 1.
-
12. A method for partitioning and distributing plural units of an application in a distributed computing environment, wherein the plural units communicate across strongly-typed, binary-standard interfaces, the method comprising:
-
receiving a structural metadata description of the application, wherein the structural metadata description comprises compiled interface-level type description;
executing the application;
during execution of the application, profiling the application using the structural metadata description, thereby generating overhead;
reducing the structural metadata description;
re-executing the application;
during re-execution of the application, performing an operation on the application using the reduced structural metadata description, thereby generating less overhead than the step of profiling the application. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
selecting one or more types to preserve; and
eliminating one or more types other than the selected types from the structural metadata description.
-
-
17. The method of claim 16 further comprising:
compressing the remaining structural metadata description.
-
18. The method of claim 12 wherein the structural metadata description describes plural types, and wherein the step of reducing comprises:
-
selecting one or more types to remove; and
eliminating the selected types from the structural metadata description.
-
-
19. The method of claim 18 further comprising:
compressing the remaining structural metadata description.
-
20. The method of claim 12 wherein the step of reducing comprises:
-
removing a first part of the structural metadata description, wherein the first part comprises detail used during the step of profiling; and
preserving a second part of the structural metadata description, wherein the second part comprises detail used to distribute the plural units of the application program.
-
-
21. The method of claim 20 wherein the preserved structural metadata description comprises a location of at least one interface pointer passed as a parameter in a communication between plural units of the application program.
-
22. The method of claim 12 wherein the step of performing an operation comprises distributing the plural units of the application in the distributed computing environment.
-
23. The method of claim 12 wherein the step of performing an operation comprises re-profiling the application.
-
24. A computer-readable medium having computer-executable instructions for performing the method of claim 12.
-
25. A method for instrumenting an application program for automatic partitioning and distribution of plural units of the application program in a distributed computing environment, the method comprising:
-
linking a first instrumentation package to the application program, the first instrumentation package comprising a structural metadata description of the application;
executing the application, whereby the first instrumentation package using the structural metadata description profiles the application program, thereby generating overhead;
reducing the structural metadata description of the application;
linking a second instrumentation package to the application program, the second instrumentation package comprising the reduced structural metadata description; and
re-executing the application, whereby the second instrumentation package using the reduced structural metadata description enables distribution of the plural units of the application program through a distributed computing environment, thereby generating less overhead than the first instrumentation package. - View Dependent Claims (26, 27, 28, 29, 30, 31)
removing a first part of the structural metadata description, wherein the first part comprises detail used to measure communications between plural units during profiling; and
preserving a second part of the structural metadata description, wherein the second part comprises detail used to distribute the plural units of the application program.
-
-
27. The method of claim 26 wherein the preserved structural metadata description comprises a location of at least one interface pointer passed as a parameter in a communication between plural units of the application program.
-
28. The method of claim 25 wherein the structural metadata description of the application comprises plural marshaling byte-codes, and wherein the step of reducing comprises applying a pre-compiler to the plural marshaling byte codes.
-
29. The method of claim 28 wherein the step of applying the pre-compiler to the plural marshaling byte codes comprises dead-code elimination and constant folding.
-
30. A computer-readable medium having computer-executable instructions for performing the method of claim 29.
-
31. A computer-readable medium having computer-executable instructions for performing the method of claim 25.
-
32. A computer-readable medium having computer-executable modules comprising:
-
a first instrumentation package which performs a first set of functions comprising identifying plural units of an application program, measuring communication between the plural units, and determining a distribution plan, wherein the first instrumentation package comprises a first set of software modules, and whereby the first instrumentation package generates overhead; and
a second instrumentation package which performs a second set of functions comprising classifying plural units of the application program at run time and relocating one or more units of the plural units to enforce the distribution plan, wherein the second instrumentation package comprises a second set of software modules, and whereby the second instrumentation package generates less overhead than the first instrumentation package. - View Dependent Claims (33, 34)
-
-
35. A computer-readable medium having computer-executable modules packageable into one or more instrumentation packages for an application program, the modules comprising:
-
an interface module which identifies and supports plural units of an application program;
an information module which receives information about events involving said plural units;
a classifier module which classifies said plural units;
a generator module which facilitates location of said plural units; and
a service module which provides low level services to the other modules, wherein the low level services comprise;
capturing a request to create one of the plural units;
invoking the classifier module;
invoking the interface module; and
invoking the generator module. - View Dependent Claims (36)
the first instrumentation package, comprising;
a heavyweight version of the interface module;
a heavyweight version of the information module;
the classifier module;
the service module; and
the second instrumentation package, comprising;
a lightweight version of the interface module;
a lightweight version of the information module;
the classifier module;
the generator module; and
the service module.
-
Specification