Patents by Inventor William Preston Alexander, III

William Preston Alexander, III has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 6507946
    Abstract: A process and system for optimizing an invocation of a method is provided. A determination is made to compile a calling method, and a call to a callee method is detected within the first method. The callee method may be a non-final, virtual method, and a determination may be made that the callee method has not been previously overridden. The callee method is then inlined within the first method. In addition, no conditional statements are inserted into the calling method along with the inlined method. The determination to compile and optimize these methods may be made by a just-in-time compiler, and if the methods are Java methods, then a Java just-in-time compiler performs the optimization process. If a determination is made to load a class that contains a method that overrides the callee method, then the calling method is recompiled or patched.
    Type: Grant
    Filed: June 11, 1999
    Date of Patent: January 14, 2003
    Assignee: International Business Machines Corporation
    Inventors: William Preston Alexander, III, Weiming Gu
  • Publication number: 20020144243
    Abstract: A process and system for optimizing an invocation of a method is provided. A determination is made to compile a calling method, and a call to a callee method is detected within the first method. The callee method may be a non-final, virtual method, and a determination may be made that the callee method has not been previously overridden. The callee method is then inlined within the first method. In addition, no conditional statements are inserted into the calling method along with the inlined method. The determination to compile and optimize these methods may be made by a just-in-time compiler, and if the methods are Java methods, then a Java just-in-time compiler performs the optimization process. If a determination is made to load a class that contains a method that overrides the callee method, then the calling method is recompiled or patched.
    Type: Application
    Filed: June 11, 1999
    Publication date: October 3, 2002
    Inventors: WILLIAM PRESTON ALEXANDER III, WEIMING GU
  • Patent number: 6338159
    Abstract: The present invention is a system, method, and computer readable medium for representing program event trace information in a way which is very compact and efficient, and yet supports a wide variety of queries regarding system performance. The tracing and reduction of the present invention may be dynamic, in which case information is obtained and added to the trace representation in real-time. Alternately, the tracing and reduction may be static, in which case a trace text file or binary file is obtained from a trace buffer, and the reduction takes place using the trace file as input. The trace information, whether obtained statically or dynamically, is represented as a tree of events. The present invention may be used to present many types of trace information in a compact manner which supports performance queries.
    Type: Grant
    Filed: June 30, 1999
    Date of Patent: January 8, 2002
    Assignee: International Business Machines Corporation
    Inventors: William Preston Alexander, III, Robert Francis Berry, Riaz Y. Hussain, Chester Charles John, Jr., Frank Eliot Levine, Robert John Urquhart
  • Patent number: 6118940
    Abstract: Method and apparatus for creating benchmark programs for the analysis of java virtual machine implementations are implemented. Java applications and applets are compiled into an intermediate code referred to as byte code. The Java byte code forms the machine code for the Java Virtual Machine. The Java Virtual Machine running on top of a hardware platform translates the byte code into native machine code for execution on the hardware platform on which the Java Virtual Machine is running. The performance of a Java Virtual Machine is improved by the use of a so-called "just in time" (JIT) compiler that translates commonly occurring sequences of bytes codes in the native instruction sequences which are then stored for later execution. Critical to the performance of the JIT is the ability of the JIT to optimally compile for the most commonly occurring sequences of byte codes. The method and apparatus for creating benchmark programs provides a means for performance measurements with respect to such sequences.
    Type: Grant
    Filed: November 25, 1997
    Date of Patent: September 12, 2000
    Assignee: International Business Machines Corp.
    Inventors: William Preston Alexander, III, Robert Francis Berry, Riaz Hussain, Paul Jerome Kilpatrick, Robert John Urquhart
  • Patent number: 6055492
    Abstract: The present invention is a system, method, and computer readable medium for representing program event trace information in a way which is very compact and efficient, and yet supports a wide variety of queries regarding system performance. The tracing and reduction of the present invention may be dynamic, in which case information is obtained and added to the trace representation in real-time. Alternately, the tracing and reduction may be static, in which case a trace text file or binary file is obtained from a trace buffer, and the reduction takes place using the trace file as input. The trace information, whether obtained statically or dynamically, is represented as a tree of events. The present invention may be used to present many types of trace information in a compact manner which supports performance queries.
    Type: Grant
    Filed: December 12, 1997
    Date of Patent: April 25, 2000
    Assignee: International Business Machines Corporation
    Inventors: William Preston Alexander, III, Robert Francis Berry, Robert John Urguhart
  • Patent number: 6002872
    Abstract: A method for monitoring performance of a program. A periodically occurring event is detected and a stack associated with the program is identified in response to a detection of the periodically occurring event, which may be a timer interrupt. The stack is examined to identify each routine (and specific invocation point, or offset) that is currently executing in association with the program. Each routine (and offset) is represented as a node in a tree structure.
    Type: Grant
    Filed: March 31, 1998
    Date of Patent: December 14, 1999
    Assignee: International Machines Corporation
    Inventors: William Preston Alexander, III, Robert Francis Berry, Donald L. Mulvey, Robert John Urquhart
  • Patent number: 5794243
    Abstract: Minimizing data cache misses when performing binary searches. Values in an array to be searched are stored as subsets, clustered to minimize the number of cache misses. A first set of auxiliary values is created consisting of a subset of the first-searched values that fit on one cache line. Subsequent sets of values are then created consisting of one cache line full of values for each value in the first set within one cache line. A binary search is conducted by first searching SET ONE, for the largest array value that is less-than or equal to the search key, or alternatively the smallest array value greater than or equal to the search key. The search of SET ONE, is followed by a search of any subsequent sets of values, with the binary search concluding by testing values within one cache line in the subsequent sets of values until the desired value is found.
    Type: Grant
    Filed: December 11, 1995
    Date of Patent: August 11, 1998
    Assignee: International Business Machines Corporation
    Inventors: William Preston Alexander, III, Geoffrey Owen Blandy, Robert J. Urquhart