Including Instrumentation And Profiling Patents (Class 717/158)
-
Patent number: 8898646Abstract: An apparatus and method for profiling program code. In particular, an apparatus according to one embodiment comprises a filtering component identifying a first set of instructions for which profiling is desired wherein, in response to detecting that an instruction has been retired, the filtering component determines whether the instruction is within the first set of instructions for which profiling is desired; an event selection component detecting an event in response to the instruction retiring, the event selection component generating event signals in response to a designated event; and a profiling component recording the occurrence or not occurrence of the event within a first storage device responsive to signals from the filtering component and/or the event selection component.Type: GrantFiled: December 22, 2010Date of Patent: November 25, 2014Assignee: Intel CorporationInventors: Enric Gibert Codina, Josep M. Codina, Carlos Madriles, Raul Martinez
-
Patent number: 8898648Abstract: A profiling tool identifies a code region with a false sharing potential. A static analysis tool classifies variables and arrays in the identified code region. A mapping detection library correlates memory access instructions in the identified code region with variables and arrays in the identified code region while a processor is running the identified code region. The mapping detection library identifies one or more instructions at risk, in the identified code region, which are subject to an analysis by a false sharing detection library. A false sharing detection library performs a run-time analysis of the one or more instructions at risk while the processor is re-running the identified code region. The false sharing detection library determines, based on the performed run-time analysis, whether two different portions of the cache memory line are accessed by the generated binary code.Type: GrantFiled: November 30, 2012Date of Patent: November 25, 2014Assignee: International Business Machines CorporationInventors: I-Hsin Chung, Guojing Cong, Hiroki Murata, Yasushi Negishi, Hui-Fang Wen
-
Patent number: 8898647Abstract: A method provides for a way to test coverage data used in testing small computing platforms by assigning unique signatures to each node in the control flow graph and embedding control function calls. Signatures are embedded into the program during compilation time using the custom parser. When the program is executed the “exercised” signatures sequence is checked for correctness and used for deriving test coverage metric. This metric is used for improving unit and black-box tests. Thus, a way to collect the path-based test coverage with minimal memory and code/size impact on target system is provided.Type: GrantFiled: October 9, 2008Date of Patent: November 25, 2014Assignee: Siemens AktiengesellschaftInventors: Sergey Pavlovich Sobolev, Sergey Valerievich Vinogradov
-
Patent number: 8893095Abstract: There are provided methods and computer program products for generating code for an architecture encoding an extended register specification. A method for generating code for a fixed-width instruction set includes identifying a non-contiguous register specifier. The method further includes generating a fixed-width instruction word that includes the non-contiguous register specifier.Type: GrantFiled: July 26, 2012Date of Patent: November 18, 2014Assignee: International Business Machines CorporationInventors: Michael Karl Gschwind, Robert Kevin Montoye, Brett Olsson, John-David Wellman
-
Patent number: 8881126Abstract: Systems and methods for automatic generation of one or more test programs to be used in conjunction with a test framework for testing a compiler are disclosed. A compiler is instrumented to generated data exposing various internal decisions and/or actions made by the compiler. A test program is generated by test framework and compiled by the compiler and the output is validated by the test framework to ensure that the compiler is behaving according to its compiler specification.Type: GrantFiled: July 31, 2012Date of Patent: November 4, 2014Assignee: Oracle International CorporationInventors: Brian Goetz, Maurizio Cimadamore
-
Patent number: 8881125Abstract: Performance impact of a computing system component on a transient end-to-end system operation is estimated by profiling an overall characteristic for a transient end-to-end system operation, and simultaneously profiling a program code component for a second characteristic, thereby collecting a first pair of data points, repeating the operational period while introducing a known artificial delay into the program code component, and while profiling the overall performance characteristic for the system and for the program code component, thereby collecting pairs of data points for each repetition of the operational period for each of the artificial delays; curve fitting and analyzing intercepts of the collected data points to estimate the effect of the artificial delays in the program code component on the transient end-to-end system operation; and reporting the estimate correlated to potential optimal transient end-to-end system operation.Type: GrantFiled: June 11, 2012Date of Patent: November 4, 2014Assignee: International Business Machines CorporationInventors: Marc Alan Dickenson, Andrew Geissler, Adriana Kobylak, Aditya Kumar
-
Publication number: 20140317609Abstract: Methods for enabling automatic reference counting are disclosed. A source code is searched for a particular pattern via a compiler associated with a computer system, wherein the source code is written in an existing language and wherein the particular pattern is for a reference associating an object with a portion of memory. The particular pattern is recognized at the computer system. The particular pattern is replaced with an automatic reference counting implementation at the computer system. The source code is executed with the automatic reference counting implementation.Type: ApplicationFiled: November 15, 2013Publication date: October 23, 2014Applicant: Embarcadero Technologies, Inc.Inventor: Allen Bauer
-
Patent number: 8863089Abstract: Analysis data from the execution of a computer program is collected. The analysis data may include samples of two different types of performance data from the execution of the computer program. Performance data may include sampled hardware performance counter data and sampled executing functions. The performance data is used to create a composite view of the data. The composite view may allow a user to efficiently correlate the different types of performance data by using a colored visual display.Type: GrantFiled: May 5, 2011Date of Patent: October 14, 2014Assignee: Nintendo Co., Ltd.Inventors: Steve Rabin, Chad Hinkle
-
Patent number: 8863100Abstract: An embodiment of the disclosure can compile source of an interactive application with debug options enabled. Execution activity of the interactive application can be enabled. A code path of a selected service of the interactive application can be executed in a debug environment using a user interface of the selected service to identify execution data associated with the selected service. Unresolved branch conditions in the execution data can be addressed for each code path of the selected service. A source extraction of the selected service can be performed.Type: GrantFiled: May 29, 2012Date of Patent: October 14, 2014Assignee: International Business Machines CorporationInventors: Ibrahim Batthish, Satish Gungabeesoon, Donald J. Yantzi
-
Patent number: 8856767Abstract: A system and method for monitoring the performance and execution flow of a target application and generating a corresponding data model are provided. The system and method comprise attaching to a thread or process of a target application and tracking the execution of subroutines using instrumentation commands. Data representing the execution flow of the various subroutines, subroutine calls, and their performance is gathered and used to generate data models representing the threads and processes of the application. The data models are optionally merged and/or pruned. A visualization of the data models is generated indicating relevant points of interest within the target application's execution flow.Type: GrantFiled: April 29, 2011Date of Patent: October 7, 2014Assignee: Yahoo! Inc.Inventors: Rohit Jalan, Arun Kejariwal
-
Patent number: 8856766Abstract: An embodiment of the invention provides a method of displaying a data flow, wherein a description of a data flow application to be displayed is received. The data flow application includes nodes and edges connecting the nodes, wherein the nodes represent operators and the edges represent data connections for data flowing between the operations. A reason that a user is to view the data flow and/or a user constraint on a complexity of the data flow application to be displayed is determined with a processor; and, the time required to render a display of the data flow application is estimated. A transformed representation of the data flow application is created with the processor. The transformed representation is created based upon the user reason, the user constraint, the estimated time of rendering, and/or a layout strategy. The transformed representation is displayed on a graphical user interface.Type: GrantFiled: May 11, 2012Date of Patent: October 7, 2014Assignee: International Business Machines CorporationInventors: Andrew Lawrence Frenkiel, Henrique Andrade, Bugra Gedik, Michael Donald Pfeifer, Wim De Pauw
-
Publication number: 20140298307Abstract: A method for using profiling to obtain application-specific, preferred parameter values for an application is disclosed. First, a parameter for which to obtain an application-specific value is identified. Code is then augmented for application-specific profiling of the parameter. The parameter is profiled and profile data is collected. The profile data is then analyzed to determine the application's preferred parameter value for the profile parameter.Type: ApplicationFiled: April 2, 2013Publication date: October 2, 2014Applicant: GOOGLE INC.Inventors: Teresa Louise JOHNSON, Xinliang David LI
-
Patent number: 8850410Abstract: A system and method for improving software maintainability, performance, and/or security by associating a unique marker to each software code-block; the system comprising of a plurality of processors, a plurality of code-blocks, and a marker associated with each code-block. The system may also include a special hardware register (code-block marker hardware register) in each processor for identifying the markers of the code-blocks executed by the processor, without changing any of the plurality of code-blocks.Type: GrantFiled: January 29, 2010Date of Patent: September 30, 2014Assignee: International Business Machines CorporationInventors: Ramanjaneya S. Burugula, Joefon Jann, Pratap C. Pattnaik
-
Patent number: 8843912Abstract: A method of optimizing an application to reduce local memory usage. The method can include instrumenting at least one executable class file of the application with analysis code, the executable class file including bytecode. The method also can include executing the class file on a virtual machine, wherein during execution the analysis code generates data related to the application's use of local memory. The method further can include, via a processor, analyzing the data related to the application's use of the local memory to generate a memory profile analysis. The method further can include, based on the memory profile analysis, automatically revising at least one portion of the bytecode to reduce an amount of the local memory used by the application.Type: GrantFiled: February 20, 2012Date of Patent: September 23, 2014Assignee: International Business Machines CorporationInventors: David Brauneis, Jeffrey E. Care, Curtis E. Hrischuk, Andrew D. Naumann
-
Patent number: 8843944Abstract: Determining a class of an object is disclosed. A pointer of the object is obtained. One or more bits that are not implemented as address bits are extracted from the pointer. The one or more bits are interpreted as an identifier of the class of the object. The class of the object is determined to correspond to the identifier.Type: GrantFiled: June 9, 2011Date of Patent: September 23, 2014Assignee: Azul Systems, Inc.Inventors: Gil Tene, Murali Sundaresan, Michael A. Wolf
-
Publication number: 20140282456Abstract: Systems, methods and computer-readable storage media for profiling software and providing migration effort estimations are described. A software profiling system may be configured to receive code for an application that executes in a first computing environment and analyze the code to determine efforts associated with migrating the application to execute in one or more second computing environments. For instance, the software profiling system may be configured to determine the migration efforts for migrating a software application that operates in a non-cloud computing environment to a cloud computing environment. The software profiling system may generate transformation points that serve as estimation units for solving anomalies identified to bring various aspects of the application into conformance with one or more of the second computing environments.Type: ApplicationFiled: March 17, 2014Publication date: September 18, 2014Applicant: Cloud Technology Partners, Inc.Inventors: Bernard A. Drost, David C. Knuth, Jimmy Zhaoming Zhang, Elena A. Grinev, Erik W. Sebesta, Khuong L. Ho, Thomas J. Kroon
-
Publication number: 20140282455Abstract: A system and associated methods are disclosed for profiling the execution of program code by a processor. The processor provides an instruction set with special profiling instructions for efficiently determining the bounds and latency of memory operations for blocks of program code. Information gathered regarding the bounds and latency of memory operations are used to determine code optimizations, such as allocation of memory for data structures in memory more local to the processor.Type: ApplicationFiled: March 13, 2014Publication date: September 18, 2014Applicant: COGNITIVE ELECTRONICS, INC.Inventor: Andrew C. FELCH
-
Patent number: 8839218Abstract: A computer implemented method, apparatus, and computer usable program code for facilitating debugging of source code. A set of indirect memory references is identified in the source code and points-to records are generated for the source code. The set of indirect memory references are validated using the points-to records and an aliasing rule to identify zero or more indirect memory references having a potential aliasing problem. In a case in which the zero or more indirect memory references comprise at least one indirect memory reference, the at least one indirect memory reference is in the set of indirect memory references. Responsive to a determination that the zero or more indirect memory references comprise at least one indirect memory reference, a report is generated identifying at least one location in the source code associated with the at least one indirect memory reference. The report is stored.Type: GrantFiled: June 4, 2007Date of Patent: September 16, 2014Assignee: International Business Machines CorporationInventors: Christopher E. Bowler, Raymond Ying Chau Mak, Sean Douglas Perry, Ettore Tiotto, Enrique Varillas
-
Patent number: 8839274Abstract: Handling a virtual method call includes extracting, from a pointer to an object, an identifier associated with the class of the object, the pointer to the object being associated with the virtual method call, and the identifier being embedded within the pointer; using the identifier to obtain a virtual method table, including locating a first entry in a class identifier table mapping a plurality of class identifiers to a corresponding plurality of class data, the first entry being associated with the identifier and comprising the virtual method table or a pointer used to obtain the virtual method table; locating a second entry in the virtual method table, the second entry being associated with the virtual method call; and jumping to an address associated with the second entry to execute code at the address.Type: GrantFiled: September 7, 2011Date of Patent: September 16, 2014Assignee: Azul Systems, Inc.Inventors: Gil Tene, Cliff N. Click, Jr., Murali Sundaresan, Michael A. Wolf
-
Publication number: 20140258998Abstract: Disclosed here are methods, systems, paradigms and structures for incrementally compiling scripts at runtime to generate executable code. The incremental compilation generates executable code corresponding to basic blocks of a script in various phases and at various scopes. In a first phase, an executable code for a basic block of the script is generated for a set of types of variables of the basic block. The generated executable block is stored and executed for subsequent requests. In a second phase, a set of executable blocks whose profiling information, such as frequency of (a) execution, (b) transition between two executable blocks, or (c) execution of a particular path, satisfies an optimization criterion is identified. The identified set of executable blocks are combined to generate an executable control region, which is more optimal than the executable blocks generated in the first phase. The executable control region is executed for subsequent requests.Type: ApplicationFiled: March 8, 2013Publication date: September 11, 2014Inventors: Ali-Reza Adl-Tabatabai, Guilherme de Lima Ottoni
-
Patent number: 8832671Abstract: One embodiment of the present invention sets forth a technique for using a multi-bank register file that reduces the size of or eliminates a switch and/or staging registers that are used to gather input operands for instructions. Each function unit input may be directly connected to one bank of the multi-bank register file with neither a switch nor a staging register. A compiler or register allocation unit ensures that the register file accesses for each instruction are conflict-free (no instruction can access the same bank more than once in the same cycle). The compiler or register allocation unit may also ensure that the register file accesses for each instruction are also aligned (each input of a function unit can only come from the bank connected to that input).Type: GrantFiled: July 7, 2010Date of Patent: September 9, 2014Assignee: NVIDIA CorporationInventors: Anjul Patney, William J. Dally
-
Patent number: 8826244Abstract: Method for providing programming support to a debugger are disclosed. The method includes defining at least one debugger programming statement, and instructing the debugger to execute the at least one debugger programming statement which modifies a least a portion of the computer program during execution of the computer program without recompiling the computer program. The debugger may be instructed to execute the at least one debugger programming statement at a specified position of the computer program. The at least one debugger programming statement may include a delete instruction that instructs the debugger to prevent one or more programming statements at a specified position in the computer program from being executed. The debugger may be instructed to execute the at least one debugger programming statement instead of one or more programming statements at a specified position in the computer program without recompiling the computer program.Type: GrantFiled: March 27, 2012Date of Patent: September 2, 2014Assignee: International Business Machines CorporationInventors: Madhusudanan Kandasamy, Vidya Ranganathan
-
Patent number: 8826242Abstract: An exemplary method includes providing an application that includes client-side code and server-side code, instrumenting the client-side code and the server-side code to generate timestamps, distributing the instrumented client-side code and the instrumented server-side code and monitoring timestamps generated during execution of the application. In such a method, where timestamps generated by the client-side code and timestamps generated by the server-side code occur along a common timeline, a developer can monitor performance of the distributed application. Other exemplary methods, systems, etc., are also disclosed.Type: GrantFiled: November 27, 2007Date of Patent: September 2, 2014Assignee: Microsoft CorporationInventors: Benjamin Livshits, William GJ Halfond, Jeffrey Van Gogh
-
Patent number: 8826234Abstract: A relational model may be used to encode primitives for each of a plurality of threads in a multi-core processor. The primitives may include tasks and parameters, such as buffers. The relationships may be linked to particular tasks. The tasks with the coding, which indicates the relationships, may then be used upon user selection to display a visualization of the functional relationships between tasks.Type: GrantFiled: December 23, 2009Date of Patent: September 2, 2014Assignee: Intel CorporationInventors: Christopher J. Cormack, Nathaniel Duca, Jason Plumb
-
Patent number: 8826254Abstract: A function may be memoized when a side effect is a read only side effect. Provided that the read only side effect does not mutate a memory object, the side effect may be considered as an input to a function for purity and memoization analysis. When a read only side effect may be encountered during memoization analysis, the read only side effect may be treated as an input to a function for memoization analysis. In some cases, such side effects may enable an impure function to behave as a pure function for the purposes of memoization.Type: GrantFiled: November 8, 2012Date of Patent: September 2, 2014Assignee: Concurix CorporationInventors: Alexadner G. Gounares, Ying Li, Charles D. Garrett, Michael D. Noakes
-
Patent number: 8826253Abstract: Delayed insertion of safepoint related code is disclosed. Optimization processing is performed with respect to an intermediate representation of a source code. The optimized intermediate representation is analyzed programmatically to identify a safepoint and insert safepoint related code associated with the safepoint. In some embodiments, analyzing the optimized intermediate representation programmatically comprises determining where to place the safepoint within a program structure of the source code as reflected in the intermediate representation.Type: GrantFiled: December 15, 2008Date of Patent: September 2, 2014Assignee: Apple Inc.Inventors: Victor Leonel Hernandez Porras, Roger Scott Hoover, Christopher Arthur Lattner, Thomas John O'Brien
-
Patent number: 8813044Abstract: A method, system, and article of manufacture are disclosed for transforming a definition of a process for delivering a service. This service process definition is comprised of computer readable code. The method comprises the steps of expressing a given set of assumptions in a computer readable code; and transforming said process definition by using a processing unit to apply said assumptions to said process definition to change the configuration of the process definition. The process definition may be transformed by using factors relating to the specific context in or for which the process definition is executed. Also, the process definition may be transformed by identifying, in a flow diagram for the service process definition, flows to which the assumptions apply, and applying program rewriting techniques to those identified flows.Type: GrantFiled: September 6, 2012Date of Patent: August 19, 2014Assignee: International Business Machines CorporationInventors: David F. Bantz, Steven J. Mastrianni, James R. Moulic, Dennis G. Shea
-
Patent number: 8813055Abstract: A system and method for profiling a software application may include means for operating on context-specific data and costs. The system may include a descriptor apparatus for specifying identifiers of extended address elements to be profiled and locations for storing corresponding data values. In some embodiments, a list of variables to be included in profiling may be registered with an event agent and values of the variables may be captured in response to detection of a system event. Registering variables to be profiled may involve conveying a list of the variables or a pointer to such a list to the event agent. The event agent may associate the values of the registered variables with the detected system event and may store them in an event space database. The database may be accessed by a data space profiler to identify performance bottlenecks dependent on one or more registered variable values.Type: GrantFiled: November 8, 2006Date of Patent: August 19, 2014Assignee: Oracle America, Inc.Inventor: Nicolai Kosche
-
Patent number: 8813056Abstract: A program is executed with a first programmable device (10). Device operating points such as power supply voltage and/or clock frequency are adapted dependent on the states reached by the device during execution. Operation of programs that may have been sold after the device has been supplied to users is optimized by executing the computer program on each of a plurality of programmable devices (10) like the first programmable device, and collecting statistical data associated with the execution states encountered during execution by the plurality of programmable devices (10). Each of the plurality of programmable devices (10) collects its own statistical data and uploads the collected information to a common profiling apparatus (14). The profiling apparatus assigns device operating points to respective ones of the execution states, using an optimization that depends on the combined statistical data from the plurality of programmable devices (10).Type: GrantFiled: August 13, 2008Date of Patent: August 19, 2014Assignee: NXP B.V.Inventors: Artur Tadeusz Buchard, Petr Kourzanov, Ger Kersten
-
Patent number: 8813041Abstract: In one embodiment, a method for inserting advertising into an application includes removing first application code from a first input executable file and placing it into an output executable file, wherein the first application code represents code part of the application. Then a first set of proxies is inserted into the first input executable file, wherein the first set of proxies, when run, makes calls to the first application code. Second application code is added into the output executable file, wherein the second application code represents code executable to display the advertising. The output executable file is compressed. Then, the first input executable file and the output executable file are provided to a device such that the device may load and execute the files.Type: GrantFiled: February 14, 2008Date of Patent: August 19, 2014Assignee: Yahoo! Inc.Inventor: Thomas Lopatic
-
Patent number: 8813058Abstract: The disclosure is for run-time accessing a software component is provided, together with a computer system embodying the same, and a software utility directing the method. Initially a software component is loaded and analyzed to identify one or more features thereof, which features are checked against a database. Following the check, the component is classified as one of at least first, second, and third component types. A first component type is run without amendment. A second component type is replaced by a component of equivalent functionality prior to running. A third component type is blocked from running.Type: GrantFiled: May 25, 2012Date of Patent: August 19, 2014Assignee: International Business Machines CorporationInventors: Timothy J. Baldwin, Peter J. Johnson, David Locke, Fenglian Xu
-
Patent number: 8806463Abstract: A method includes generating a first executable program module based on source code modules and collecting profile information for the source code modules by executing the first executable program module. The profile information includes information pertaining to invocation of procedures in the first executable program module. The method further includes determining module grouping information for the source code modules based on procedure invocation patterns in the profile information and according to one or more inter-procedural optimization (IPO) heuristics. The method includes performing IPO based on the module grouping information to generate object code modules and generating a second executable program module based on the plurality of object code modules.Type: GrantFiled: May 12, 2014Date of Patent: August 12, 2014Assignee: Google Inc.Inventors: Xinliang David Li, Raksit Ashok, Robert Hundt
-
Patent number: 8799871Abstract: An exemplary embodiment provides methods, systems and mediums for executing arithmetic expressions that represent elementwise operations. An exemplary embodiment provides a computing environment in which elementwise expressions may be executed in parallel by multiple execution units. In an exemplary embodiment, multiple execution units may reside on a network.Type: GrantFiled: January 8, 2007Date of Patent: August 5, 2014Assignee: The MathWorks, Inc.Inventor: Brett Baker
-
Patent number: 8799884Abstract: Generating parallelized executable code from input code includes statically analyzing the input code to determine aspects of data flow and control flow of the input code; dynamically analyzing the input code to determine additional aspects of data flow and control flow of the input code; generating an intermediate representation of the input code based at least in part on the aspects of data flow and control flow of the input code identified by the static analysis and the additional aspects of data and control flow of the input code identified by the dynamic analysis; and processing the intermediate representation to determine portions of the intermediate representation that are eligible for parallel execution; and generating parallelized executable code from the processed intermediate representation.Type: GrantFiled: August 13, 2009Date of Patent: August 5, 2014Assignee: QUALCOMM IncorporatedInventors: Robert Scott Dreyer, Joel Kevin Jones, Michael Douglas Sharp, Ivan Dimitrov Baev
-
Publication number: 20140215448Abstract: Provided is a compiling method and apparatus for scheduling a block in a pipeline. The compiling method for scheduling a block in a pipeline may include profiling, using a processor, an access count of a block in a control flow of a program code, determining that the block is an important block, in response to an edge count of an edge entering the block being greater than or equal to a predetermined value, the edge count being included in the access count of the block, and scheduling the important block based on the access count to prevent a register writeback conflict.Type: ApplicationFiled: December 19, 2013Publication date: July 31, 2014Applicant: SAMSUNG ELECTRONICS CO., LTD.Inventor: Taisong Jin
-
Patent number: 8793674Abstract: A method for compiler-guided optimization of MapReduce type applications that includes applying transformations and optimizations to JAVA bytecode of an original application by an instrumenter which carries out static analysis to determine application properties depending on the optimization being performed and provides an output of optimized JAVA bytecode, and executing the application and analyzing generated trace and feeds information back into the instrumenter by a trace analyzer, the trace analyzer and instrumenter invoking each other iteratively and exchanging information through files.Type: GrantFiled: September 18, 2012Date of Patent: July 29, 2014Assignee: NEC Laboratories America, Inc.Inventors: Nishkam Ravi, Jun Liu, Srimat T. Chakradhar
-
Patent number: 8789023Abstract: A method finds an error in a computer program. A plurality of execution breakpoints are set in the computer program. A portion of the execution of the computer program is simulated as recorded in the trace data in the reverse order until one a plurality of conditions is met, wherein one of the plurality of conditions is an attempt to execute a machine instruction associated with one of the plurality of execution breakpoints.Type: GrantFiled: March 7, 2012Date of Patent: July 22, 2014Assignee: Green Hills Software, Inc.Inventors: Michael Lindahl, Andre Yew, Mallory Morgan Green, II, Michael Johnson, Allan Craig Franklin, Daniel O'Dowd, Neil Puthuff
-
Patent number: 8789032Abstract: Methods, systems, and apparatus, including computer program products, for inter-procedural optimization, are disclosed. In one aspect, a first executable program module is generated based on a plurality of source code modules. Profile information is collected for the plurality of source code modules by executing the first executable program module. Inter-procedural analysis for the plurality of source code modules is performed during execution of the first executable program module. The inter-procedural analysis is based on the collected profile information. IPO is performed based on the results from the inter-procedural analysis to generate a plurality of object code modules. A second executable program module is generated based on the plurality of object code modules.Type: GrantFiled: February 27, 2009Date of Patent: July 22, 2014Assignee: Google Inc.Inventors: Xinliang David Li, Raksit Ashok, Robert Hundt
-
Patent number: 8782612Abstract: A failsafe mechanism for installing and removing temporary instrumentation during a runtime of an application. Initially, an application is configured with a baseline set of instrumented components such as methods. Additional instrumentation is then deployed in the application, such as to diagnose a performance problem. The failsafe mechanism ensures that the additional instrumentation is automatically removed, even when there is an interruption in a communication link to the application, a computing device failure, a software failure, or some other type of failure, which renders it impossible to manually roll back the instrumentation from a remote user interface. The failsafe mechanism can be provided using callbacks between the computing devices which detect when a connection is unexpectedly lost or closed. Termination of one callback can cascade to one or more other callbacks. The instrumentation rollback can involve reloading un-instrumented byte code of the application.Type: GrantFiled: May 11, 2010Date of Patent: July 15, 2014Assignee: CA, Inc.Inventors: Marco Gagliardi, Yitao Sun
-
Patent number: 8782629Abstract: Software performance may be improved by collecting and correlating performance counter events and program execution state information. On each successive callback of performance counter data, a statistical exponential moving average association matrix may be updated until particular performance counter events and program execution states may be correlated.Type: GrantFiled: June 29, 2005Date of Patent: July 15, 2014Assignee: Intel CorporationInventor: Mingqiu Sun
-
Patent number: 8775769Abstract: A partition-based method for diagnosing memory leaks in Java systems, comprising dividing heap memory of a Java virtual machine into a plurality of partitions based on a partition plan, wherein each partition has at least one partition owner; monitoring the status of the respective partitions to determine whether there is a partition in which the memory space is exhausted; and if there is a partition in which the memory space is exhausted, determining that the memory leak may occur in the partition and analyzing the partition to obtain leaked objects and objects related to the leaked objects. The present invention also provides a partition-based apparatus for diagnosing memory leak in Java systems.Type: GrantFiled: July 1, 2008Date of Patent: July 8, 2014Assignee: International Business Machines CorporationInventors: Ying Li, Quan Long, Tiancheng Lui, Jie Qiu
-
Patent number: 8769503Abstract: An exemplary embodiment provides methods, systems and mediums for executing arithmetic expressions that represent elementwise operations. An exemplary embodiment provides a computing environment in which elementwise expressions may be executed in parallel by multiple execution units. In an exemplary embodiment, multiple execution units may reside on a network.Type: GrantFiled: August 20, 2007Date of Patent: July 1, 2014Assignee: The MathWorks, Inc.Inventor: Brett Baker
-
Patent number: 8769511Abstract: A virtual machine executive (VME) system operating on a target platform that includes a virtual machine monitor (VMM) and a dynamic compiler, in particular, a trace compiler (TC). System embodiments include a virtual machine monitor configured to record a trace corresponding to a selected cycle, and configured to transform the trace into a representation of a trace tree; and a trace compiler cooperating with the virtual machine monitor to compile the representation of the trace tree into a compiled code segment of native machine code executable on the target platform, in which the trace is a linear instruction sequence traversing at least a portion of a method, a loop, or a branching node.Type: GrantFiled: February 16, 2007Date of Patent: July 1, 2014Assignee: The Regents of the University of CaliforniaInventors: Andreas Imre Gal, Michael Franz
-
Patent number: 8769507Abstract: A method, system, and article of manufacture are disclosed for transforming a definition of a process for delivering a service on a specified computing device. This service process definition is comprised of computer readable code. The method comprises the steps of expressing a given set of assumptions in a computer readable code; and transforming the definition by using a processing unit to apply the assumptions to the definition of the process to change the way in which the process operates. The definition of the process may be transformed by using factors relating to the specific context in or for which the definition is executed. Also, the definition may be transformed by identifying, in a flow diagram for the process, flows to which the assumptions apply, and applying program rewriting techniques to those identified flows.Type: GrantFiled: May 14, 2009Date of Patent: July 1, 2014Assignee: International Business Machines CorporationInventors: David F. Bantz, Steven J. Mastrianni, James R. Moulic, Dennis G. Shea
-
Patent number: 8769505Abstract: A method disclosed herein provides for receiving information relating to an event that occurred while processing server request from a compiled code snippet inserted into a compiled computer program, calculating diagnostic information relating to execution of the server request based on the received information, and providing the diagnostic information. Alternatively, a computer-readable medium, storing a set of instructions, is provided for, the instructions, when executed by a processor perform a method including, while a server request is being executed, receiving information from a compiled code snippet, in inserted into a compiled computer program, the received information relating to a thread starting to process the server request.Type: GrantFiled: January 24, 2011Date of Patent: July 1, 2014Assignee: Hewlett-Packard Development Company, L.P.Inventor: Piotr Findeisen
-
Patent number: 8762975Abstract: In performance tuning, a program is created by development engineers. Data A, data B, data C, . . . are given to the program to execute the program. Performance index values of functions for each data are measured. The results of the measurement are combined for each function and combining results and the number of times of combining (experience value) are obtained. Based on the combining results, the targets of the tuning functions are selected. Performance index values are combined for each function selected. The functions to be the tuning targets are output as tuning points.Type: GrantFiled: September 21, 2006Date of Patent: June 24, 2014Assignee: Fujitsu Semiconductor LimitedInventor: Chizuru Kashiwagi
-
Patent number: 8762366Abstract: A system and a method are disclosed for efficiently executing database queries using a computing device that includes a central processing unit (CPU) and a processing unit based on single instruction multiple thread (SIMT) architecture, for example, a GPU. A query engine determines a target processing unit to execute a database query based on factors including the type and amount of data processed by the query, the complexity of the query, and the current load on the processing units. An intermediate executable representation generator generates an intermediate executable representation for executing a query on a database virtual machine. If the query engine determines that the database query should be executed on an SIMT based processing unit, a native code generator generates native code from the intermediate executable representation. The native code is optimized for execution using a particular processing unit.Type: GrantFiled: March 15, 2013Date of Patent: June 24, 2014Assignee: MeLLmo Inc.Inventors: Santiago Becerra, Santiago E. Becerra, Alex C. Schaefer, John McInerney, Patrick Cheng
-
Patent number: 8752007Abstract: A method and apparatus for automatically generating a run-time instrumenter are disclosed. In accordance with the illustrative embodiment, an off-line analyzer first determines instrumentation locations for a program under test in accordance with a method called the Super Nested Block Method. After the instrumentation locations have been determined, source code for a run-time instrumenter is automatically generated based on the source code for the program under test and the instrumentation locations. The source code for the program under test and the run-time instrumenter are then compiled into executables, and a testing tool then executes the program under test and the run-time instrumenter in parallel.Type: GrantFiled: March 26, 2008Date of Patent: June 10, 2014Assignee: Avaya Inc.Inventors: Juan Jenny Li, David Mandel Weiss
-
Patent number: 8752026Abstract: A method for instrumenting a computer program, the method including identifying a program slice within a computer program, and instrumenting the program slice within the program.Type: GrantFiled: June 1, 2009Date of Patent: June 10, 2014Assignee: International Business Machines CorporationInventors: Adi Sharabani, Omer Tripp
-
Patent number: 8745597Abstract: System, and computer program product for providing programming support to a debugger are disclosed. The debugger executes at least one debugger programming statement which modifies at least a portion of the computer program during execution of the computer program without recompiling the computer program. The debugger may be instructed to execute the at least one debugger programming statement at a specified position of the computer program. The at least one debugger programming statement may include a delete instruction that instructs the debugger to prevent one or more programming statements at a specified position in the computer program from being executed. The debugger may be instructed to execute the at least one debugger programming statement instead of one or more programming statements at a specified position in the computer program without recompiling the computer program.Type: GrantFiled: November 25, 2009Date of Patent: June 3, 2014Assignee: International Business Machines CorporationInventors: Madhusudanan Kandasamy, Vidya Ranganathan