Method and apparatus for profiling processes in a data...

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C714S045000

Reexamination Certificate

active

06311325

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Technical Field
The present invention relates to an improved data processing system and in particular to a method and apparatus for optimizing performance in a data processing system. Still more particularly, the present invention provides a method and apparatus for profiling performance in a data processing system.
2. Description of Related Art
In order to improve performance of code generated by various families of computers, it is often necessary to determine where time is being spent by the processor in executing code, such efforts being commonly known in the computer processing arts as locating “hot spots”. Ideally one would like to isolate such hot spots at the instruction and/or source line of code level in order to focus attention on areas which might benefit most from improvements to the code.
For example, isolating such hot spots to the instruction level permits compiler writers to find significant areas of suboptimal code generation, whereby they may thus focus their efforts to improve code generation efficiency in these areas. Another potential important use of instruction level detail is to provide guidance to the designer of future systems. Such designers with appropriate profiling tools may find characteristic code sequences and/or single instructions requiring improvement to optimize the available hardware for a given level of hardware technology.
In a like manner, isolating hot spots to the source line of code level would provide the level of detail necessary for an application developer to make algorithmic tradeoffs. A programmer's a priori guesses about where a program is spending significant time executing are frequently wrong for numerous reasons. First, the programmer seldom has a comprehensive understanding of the complex dynamics of the hardware and software system. Secondly, the compiler itself often does not generate code that corresponds to the programmer's assumptions. It was accordingly highly desirable to provide a system for feeding back information to the programmer about the execution dynamics of a program in terms that the programmer could easily understand. Various methods are present for monitoring aggregate CPU usage known as “profiling”, for example, U.S. Pat. No. 5,355,487, System and Method for Computer System Profiling and “Technique for Speculatively Sampling Performance Parameters,” IBM Tech. Disclosure Bull., No. 9, 589-592 (September 1994).
With the increasing use of the Internet by many businesses and individual users, Java has become an increasingly common system in which applications are disseminated. Java is an object oriented programming language and environment focusing on defining data as objects and the methods that may be applied to those objects.
The Java virtual machine (JVM) is the name of a virtual computer component that actually executes Java programs. Java programs are not run directly by the central processor, but instead by the JVM, which is itself a piece of software running on the processor. The JVM allows Java programs to be executed on a different platform as opposed to only the one platform for which the code was compiled. Java programs are compiled for the JVM. In this manner, Java is able to support applications for many types of data processing systems, which may contain a variety of central processing units and operating systems architectures. To enable a Java application to execute on different types of data processing systems, a compiler typically generates an architecture-neutral file format—the compiled code is executable on many processors, given the presence of the Java run-time system. The Java compiler generates bytecode instructions that are non-specific to a particular computer architecture. A bytecode is a machine independent code generated by the Java compiler and executed by a Java interpreter. A Java interpreter is part of the JVM that alternately decodes and interprets a bytecode or bytecodes. These bytecode instructions are designed to be easy to interpret on any computer and easily translated on the fly into native machine code. Byte codes are typically translated into native code by a just-in-time compiler or JIT.
A need has arisen with operating systems that provide implementation of the JVM to take non-invasive snapshots of these Java environments to allow for identification of various processes executing within that Java environment.
Therefore, it would be advantageous to have a method and apparatus for profiling data processing systems having Java environments.
SUMMARY OF THE INVENTION
The present invention provides a method and apparatus in a data processing system for profiling code for processes executing in a data processing system. Trace data is recorded in response to a selected interrupt, wherein the trace data includes an indication of which code is being interrupted. The trace data is processed to identify whether the interrupted code is interpreted or native code.


REFERENCES:
patent: 5047919 (1991-09-01), Sterling et al.
patent: 5355487 (1994-10-01), Keller et al.
patent: 5613118 (1997-03-01), Heisch et al.
patent: 5768500 (1998-06-01), Agrawal et al.
patent: 5774724 (1998-06-01), Heisch
patent: 5896535 (1999-04-01), Ronstrom
patent: 5953529 (1999-09-01), Kato
patent: 5978937 (1999-11-01), Miyamori et al.
patent: 6002872 (1999-12-01), Alexander, III et al.
Liang et al. Dynamic Class Loading in the Java Virtual Machine. ACM. pp. 36-44, Oct. 1998.*
International Business Machines; Data Structure and Insertion Algorithm for Representing Asynchronous Occurrences for Visualization by Trace Visualization Tools Using Ghant Charts with Occurance Hierarachies; Jul. 1993; pp. 547-557; IBM Technical Disclosure Bulletin; vol. 36, No. 07.
International Business Machines; Adaptive Trace-Directed Program Restructuring; Feb. 1994; pp. 115-116; IBM Technical Disclosure Bulletin; vol. 37, No. 02B.
Curry, TW.; Profiling and Tracing Dynamic Library Usage Via Interposition; 1994; pp. 267-278; Proceedings of the Summer 1994 USENIX Conference.
International Business Machine; Application of Interpreter for Debugging Functions; Sep. 1993; pp. 67-68; IBM Technical Disclosure Bulletin; vol. 36 No. 09B.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method and apparatus for profiling processes in a data... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method and apparatus for profiling processes in a data..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for profiling processes in a data... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2617460

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.