Class / Patent application number | Description | Number of patent applications / Date published |
717158000 | Including instrumentation and profiling | 61 |
20080244546 | Method and system for providing on-demand profiling infrastructure for profiling at virtual machines - A system and method are provided to employ a profiling infrastructure to perform profiling. In one embodiment, a communication between a first virtual machine at a server and a second virtual machine at a client is established, wherein the communication is established via a profiling infrastructure. An application at the first virtual machine is profiled via the profiling infrastructure. Results of the profiling are communicated from the first virtual machine to the second virtual machine, wherein the results are communicated via the profiling infrastructure. | 10-02-2008 |
20080244547 | Method and system for integrating profiling and debugging - A system and method are provided to integrate profiling and debugging. In one embodiment, a profiling infrastructure is generated, the profiling infrastructure having profiling components capable of performing profiling sessions. An integrated infrastructure is generated by associating the profiling infrastructure with a debugging infrastructure, the debugging infrastructure having debugging components capable of performing debugging sessions. The profiling sessions and the debugging sessions are simultaneously performed via the integrated infrastructure. | 10-02-2008 |
20080244548 | PROFILE NORMALIZATION IN AN AUTONOMIC SOFTWARE SYSTEM - There is provided an autonomic software system and method for normalizing a profile collected for an executing application to account for one or more actions applied to the executing application after the profile was collected, comprising: predicting an impact of applying the one or more actions to the executing application by utilizing the profile and the one or more actions; and adjusting the profile to form a normalized profile according to the predicted impact. A plurality of different a profile consumers, such as, a phase shift detector, an action evaluator as well as a normalizing controller, may utilize the normalized profile to improve the behavior of the executing application. In addition, online visualization tools may be implemented to graphically depict the normalized profiles, as well as differences between the collected profiles and the normalized profiles. | 10-02-2008 |
20080250400 | Method for System Call Interception in User Space - A method, and system for intercepting a system call performed by a process and for executing processing in relation with the intercepted system call from user space. The method comprises a first step for setting up, in the executing process, a signal handler performing processing in relation with an interception of a system call in the executing process upon reception of a specific signal. The executing process performs a ptrace system call with a new request, the self ptrace, which sets, in the task descriptor of the executing process, the system trace flag corresponding to the existing system trace ptrace request and set a new flag, the pt_self flag. When a system call is performed in the executing process, a new system call trace is executed testing if the pt_self flag is set. If the pt_self flag is set a specific signal is sent to the executing process itself and the handler which has been set up is executed in user space. | 10-09-2008 |
20080256524 | Method and System for Improving Memory Access Performance - The present invention relates to a computing system which includes a processor and a memory. It also includes a memory access optimizer which is arranged to affect memory access of a program during runtime execution of the software. The program includes a plurality of application elements, each comprising a text field containing a text section, and a memory access field. The memory access optimizer is arranged to implement memory access data in the memory access field in order to affect memory access of the application element. The text section is unchanged by the memory access data implementation. | 10-16-2008 |
20080301657 | METHOD OF DIAGNOSING ALIAS VIOLATIONS IN MEMORY ACCESS COMMANDS IN SOURCE CODE - 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. | 12-04-2008 |
20090013314 | Method for evaluating at least one characteristic value - For the purpose of evaluating at least one characteristic value of at least one function in the execution of a program, a method uses a graphical representation of the at least one determined characteristic value associated with the functions. The representation is subdivided into a hierarchical structure, dependent on the degree of call depth of the function, and each call of a function in the graphical representation occupies an area whose size is dependent on the associated determined characteristic value in each case. In this context characteristic values can be any variables that are measurable by means of a profiler, as already explained in the introduction. Typically, an execution of a program is initiated via the calling of first functions, also referred to hereinafter as call depth | 01-08-2009 |
20090055813 | Method for Enabling Profile-Based Call Site Tailor-ing Using Profile Gathering of Cloned Functions - Methods and systems for computer program optimization utilize function cloning in program code, such as post-linked code. Each function call is directed to a different cloned version of the called function. Conventional profiling methods such as hardware event sampling, basic block profiling, and edge profiling may then be applied to the modified program code to obtain call path-based, clone-specific profile data. The profile data can be further exploited to optimize the program code. | 02-26-2009 |
20090089771 | METHOD OF CODE COVERAGE UTILIZING EFFICIENT DYNAMIC MUTATION OF LOGIC (EDML) - A method and computer program product for code coverage utilizing efficient dynamic mutation of logic (EDML) are provided. A source code is read, and instrumentation points are located. Self Modifying Code (SMC) is inserted at the instrumentation points producing instrumented code. Additional functions are inserted in the source code to enable read and/or reset of code coverage statistics. The instrumented code is compiled, and executables are run for a period of time during which zero or more instrumentation points are executed. In response to executing instrumentation points, instructions are executed to record execution of the instrumented code. Instructions of the instrumented code overwrite themselves at certain points so that a next execution of the instrumentation points skips over the instrumented code at the certain points. Code coverage statistics are gathered and recorded. The code coverage statistics are reset to begin another period of time for gathering code coverage statistics. | 04-02-2009 |
20090106746 | APPLICATION AND DATABASE CONTEXT FOR DATABASE APPLICATION DEVELOPERS - Infrastructure for capturing and correlating application context and database context for tuning, profiling and debugging tasks. The infrastructure extends the DBMS and application profiling infrastructure making it easy for a developer to invoke and interact with a tool from inside the development environment. Three sources of information are employed when an application is executed: server tracing, data access layer tracing, and application tracing. The events obtained from each of these sources are written into a log file. An event log is generated on each machine that involves either an application process or the DBMS server process and the log file receives log traces from different processes on a machine to the same trace session. A post-processing step over the event log(s) correlates the application and database contexts. The output is a single view where both the application and database profile of each statement issued by the application are exposed. | 04-23-2009 |
20090133008 | UNWIND INFORMATION FOR OPTIMIZED PROGRAMS - Analyzing a first binary version of a program and unwind information associated with the first binary version of the program, performing optimization on the first binary version of the program to produce a second binary version of the program based at least in part on the results of the analysis, and generating new unwind information for the second binary version of the program based at least in part on the results of the analysis and at least in part on the optimization performed. | 05-21-2009 |
20090144713 | TECHNIQUES FOR PROGRAM PERFORMANCE ANALYSIS - Techniques are provided for measuring metrics relating to the execution of a computer program and for providing program analysis tools and methods for conducting program analysis. In particular, an execution environment is provided, which, in addition to being able to execute instructions expressed in a programming language, is operable to carry out measurements relating to the execution of those instructions. The techniques are particularly, but not exclusively, provided in conjunction with an execution environment that is distributed over several machines. | 06-04-2009 |
20090150875 | EFFICIENT OBJECT PROFILING FOR OPTIMIZING OBJECT LOCALITY - A computer-implementable method, system and apparatus. The frequency of reference to an object, also known as “hotness,” can be collected as a part of a profiling phase during a runtime operation of data-processing system by permitting each reference to the object during the runtime operation to randomly guess a predetermined value associated with the object, such that a correct guess thereof implies that the object is referenced frequently. Thereafter, the frequency of reference to the object can be validated by identifying a particular value in a header associated with the object, in response to collecting the frequency of reference to the object during the profiling phase, thereby increasing the scalability and efficiency of the runtime operation while permitting data associated with the frequency of reference to the object to other applications for immediate use. | 06-11-2009 |
20090172654 | PROGRAM TRANSLATION AND TRANSACTIONAL MEMORY FORMATION - Disclosed are methods, machine readable medium and systems that dynamically translate binary programs. The dynamic binary translation may include identifying a hot code trace of a program. The translation may further include determining a completion ratio for the hot code trace. The translation may also include packaging the hot code trace into a transactional memory region in response to the completion ratio having a predetermined relationship to a threshold ratio. | 07-02-2009 |
20090288074 | RESOURCE CONFLICT PROFILING - Analyzing usage patterns of resources by various execution contexts (such as threads) may be difficult due to the volume of information that may be involved. A profiling technique may focus on the detection of resource requests that result in a resource conflict, e.g., a request for access to a resource that is exclusively in use by another resource. The profiling may then involve identifying the user action associated with the execution context that caused the resource conflict (e.g., via a stack walk) and the resource utilized, measuring the delay in the fulfillment of the request, and recording the information in a resource conflict log. The resource requests that are captured and recorded in this manner may be constrained to the information that is helpful in identifying performance bottlenecks and usage patterns, which may lead to redesigned applications of greater performance while interfacing with execution contexts, and vice versa. | 11-19-2009 |
20090293050 | SYSTEM AND METHOD FOR CHANGING VARIABLES AT RUNTIME - A system and associated method for changing the initial size of a variable where intermediate code contains a static method class which in turn contains the initial size of variable. Comparing a statistic with the initial size of the variable, the statistic being derived from all current instances of the variable contained in located in dynamic memory, the comparing being performed in response to an event having occurred. Then modifying the initial size of the variable located in the intermediate code. The modification being in such a way as to change the initial size of variable in dependence of the statistic and all current instances of the variable located in the dynamic memory. Finally, repeating the comparing and changing steps for all variables contained in the dynamic memory. | 11-26-2009 |
20100017791 | PROBABILISTIC FRAMEWORK FOR THE HIGHLY EFFICIENT CORRELATION OF CALL CHAINS WITH HARDWARE EVENTS - A system and method for correlation of resources with hardware events includes event driven sampling a call chain of functions at to determine when functions of the call chain are active. The call chain is mapped to execution times based upon a probabilistic integration of the functions such that when portions of the call chain are active, resources associated with call chain activity are correlated with hardware events. | 01-21-2010 |
20100077388 | PROFILING METHOD, SYSTEM, AND RECORDING MEDIUM HAVING A PROFILING PROGRAM - A profiling method executed by a computer and system including generating a source code by adding a call instruction for a profile acquisition function to a source program of an application, generating an execution form of a profiling target program by linking a library of profile acquisition functions to the source code, executing the profiling target program in an operating system of a target system, calling a profile acquisition driver by executing the call instruction of the profile acquisition function via the library of the profile acquisition functions, and acquiring sampling information on an execution status of the profiling target program based on an interrupt occurrence by the profile acquisition driver. | 03-25-2010 |
20100125838 | Method and Apparatus for Optimizing a Program - In accordance with an example embodiment of the present invention, an apparatus comprising a processor configured to receive from a first device, a first profile information related to a first part of a program, receive from a second device, a second profile information related to a second part of the program, perform optimization on the program based at least in part on the first profile information and the second profile information, generate a first program information associated with the optimized program comprising a first directive for collecting profile information relating to a first part of the optimized program, generate a second program information associated with the optimized program comprising a second directive for collecting profile information relating to a second part of the optimized program, send the first program information to the first device, and send the second program information to the second device is disclosed. | 05-20-2010 |
20100138820 | Framework for Control Flow-Aware Processes - An improved system and method are disclosed for processing Java program code. Java source code is annotated with a Module or a ControlFlow annotation. The Java source code is then compiled to produce Java bytecode, which in turn is compiled by a just-in-time compiler to produce native code, which retains the annotations. The native code with annotations is then executed. If a bug is identified during the execution of the native code, an associated Module is selected for debugging, followed by determining associated Java source code segments within the responsible control flow path. Debugging operations are then performed on the associated Java source code segments. | 06-03-2010 |
20100153939 | REMAPPING DEBUGGABLE CODE - User script code that has been developed for execution in a host application can be remapped to debuggable script code, based on explicit debugging gestures, allowing for appropriate debugging coverage for the code while mitigating execution (in)efficiency issues. Capabilities of an application virtual machine used for the host application can be determined, and the user script code can be instrumented with guards for detecting explicit debugging gestures based on a virtual machine's (VM′) capabilities. The instrumented user script code can be executed in a runtime environment, for example, by a just-in-time compilation service. If an explicit debugging gesture is detected, a function where the gesture was detected can be transformed into debuggable script code, in one embodiment, based on the debuggable gesture detected. | 06-17-2010 |
20100205591 | PRESENTING ENERGY CONSUMPTION INFORMATION IN AN INTEGRATED DEVELOPMENT ENVIRONMENT TOOL - Embodiments of the invention provide techniques for presenting energy consumption information in an IDE tool. In one embodiment, the IDE tool may be configured to determine energy requirements associated with specific elements of the source code, and to present graphical indications of energy requirements along with those code elements. Such energy requirements may be determined by matching code elements to a stored data structure describing energy requirements for executing various code elements. The stored data may be based on predefined standards, and/or may be based on historical measurements of energy consumption during prior instances of executing code elements on a target computer system. Additionally, developers may specify priority for compiling portions of source code, according to desired energy requirements. | 08-12-2010 |
20110016460 | MULTIPLE PASS COMPILER INSTRUMENTATION INFRASTRUCTURE - A method includes configuring one or more processors to perform operations. The operations include instrumenting at least one code region of an application with at least one annotation for generating profile data when the at least one code region is executed. The operations include executing the application to generate profile data for the at least one code region. The operations also include identifying, from the profile data, a delinquent code region from the generated profile data. The operations include instrumenting the delinquent code region with annotations for generating profile data when the code regions are executed. The operations include executing the application to generate additional profile data for the at least one code region, including the delinquent code region. | 01-20-2011 |
20110093838 | MANAGING SPECULATIVE ASSIST THREADS - An illustrative embodiment provides a computer-implemented process for managing speculative assist threads for data pre-fetching that analyzes collected source code and cache profiling information to identify a code region containing a delinquent load instruction and generates an assist thread, including a value for a local version number, at a program entry point within the identified code region. Upon activation of the assist thread the local version number of the assist thread is compared to the global unique version number of the main thread for the identified code region and an iteration distance between the assist thread relative to the main thread is compared to a predefined value. The assist thread is executed when the local version number of the assist thread matches the global unique version number of the main thread, and the iteration distance between the assist thread relative to the main thread is within a predefined range of values. | 04-21-2011 |
20110131560 | Maintainable Dynamic Instrumentation Technique For Changing Versions Of Software - A technique for the dynamic instrumentation of a running software system. One or more callable instrumentation functions are accessible in a first memory space associated with the software system. The one or more callable instrumentation functions are adapted to probe an operation of the software system and return data regarding the probed operation. Probed operation environment information needed by the one or more instrumentation functions is provided to a second memory space associated with the software system. First memory space addresses associated with the probed operation environment information are determined from a resource that is accessible in the second memory space. A probe handler is generated that includes calls to the one or more instrumentation functions with references to the first memory space addresses. The probe handler is callable as part of the probed operation. | 06-02-2011 |
20120210309 | DETERMINING A BENEFIT OF REDUCING MEMORY FOOTPRINT OF A JAVA APPLICATION - Changes in performance in a Java program are deduced from information related to garbage collection events of the program. Assumptions are made about the system, the application and garbage collection, and changes in performance that will result from modifying the program are deduced. | 08-16-2012 |
20120246627 | Adding Instrumentation to a Body of Code to Enable Generation of Code Coverage Data - A method apparatus and computer program product is disclosed for adding instrumentation to a body of code to enable generation of code coverage data for said body of code in which used instrumentation code is arranged to be optimized out by a compiler. | 09-27-2012 |
20120278793 | SYSTEM AND METHOD FOR ANALYZING DYNAMIC PERFORMANCE OF COMPLEX APPLICATIONS - 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. | 11-01-2012 |
20130055226 | INTEGRATION OF TRACE SELECTION AND TRACE PROFILING IN DYNAMIC OPTIMIZERS - Integrated trace selection and profiling in dynamic optimizers may include selecting a trace head based on profile of basic blocks that are executed. The basic blocks executed from the trace head may be recorded as a trace. The trace may be added to a trace nursery in non-compiled state. The trace may be interpreted and profiled until the trace matures. Under a profiling mode, path sensitive runtime information such as values, types, targets of call-sites, and exit frequencies can be collected. The trace may be moved out of the nursery to a compilation queue in response to determining that the trace has matured based on an execution count of the profiled trace. | 02-28-2013 |
20130074059 | METHOD FOR IDENTIFYING PROBLEMATIC LOOPS IN AN APPLICATION AND DEVICES THEREOF - This invention relates to a method, computer readable medium, and apparatus for identifying one or more problematic loops in an application. This invention provides a Directed Acyclic Graph or DAG representation of structure of one or more loops in the application by performing a static and a dynamic analysis of the application source code and depicts the loop information as LoopID, loop weight, total loop iteration, average loop iteration, total loop iteration time, average loop iteration time and embedded vector size. This aids a programmer to concentrate on problematic loops in the application and analyze them further for potential parallelism. | 03-21-2013 |
20130086569 | Packed Data Objects - A computer-implemented process for creating a packed data object, the computer-implemented process comprising providing instrumentation to an enhanced runtime by an enhanced compiler for a computer executable program portion, detecting a special class in the computer executable program portion by the enhanced runtime, creating an internal representation of a packed data object header using the instrumentation, calculating a size of elements for a packed data object associated with the computer executable program portion, determining a type of packed data object using information in the packed data object header, and responsive to a determination that the type of packed data object is an on-heap packed data object, storing the packed data object header and associated packed data object data together for the packed data object in a memory heap. | 04-04-2013 |
20130097593 | Computer-Guided Holistic Optimization of MapReduce Applications - 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. | 04-18-2013 |
20130125103 | Information Processing Device, Profile Target Determining Program, and Method - The information processing system of the present invention includes a profile information collection unit for storing access-related profile information in response to detecting access to an object set as a profile target on the basis of the sampling frequency for each class or object allocation site during the execution of a program, and a sampling frequency updating unit for calculating the allocation percentage of an object having properties used in the optimization of the program at each class or object allocation site on the basis of profile information, and for reducing the sampling frequency regarding a class or object allocation site in which the calculated percentage is below a predetermined threshold value. | 05-16-2013 |
20130139137 | Systems and Methods for Customizing Optimization/Transformation/ Processing Strategies - A method for tailored compiler optimization is provided. The method includes extracting kernels from an application program, performance tuning the kernels to determine a tailored optimization strategy for each of the kernels, the tailored optimization strategy different than a default optimization strategy of a compiler for each of the kernels, and annotating the application program, using a computer, to identify the tailored optimization strategy determined for each of the kernels. In an embodiment, the method also includes the design and implementation for adjusting a compiler to customize optimization strategies for different kernels. | 05-30-2013 |
20130219379 | OPTIMIZATION OF AN APPLICATION TO REDUCE LOCAL MEMORY USAGE - 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. | 08-22-2013 |
20130232477 | Execution Time Profiling for Interpreted Programming Languages - Aspects of the invention are directed towards profiling computer programs that include interpreted functions. Various implementations provide for profiling a computer program, written in a first programming language, which includes an interpretive function that can execute a computer program, written in a second programming language. During profiling, when the interpretive function is called, the functions of the computer program written in the second programming languages are profiled. | 09-05-2013 |
20130263102 | LOGICAL GROUPING OF PROFILE DATA - Profile data can be ascribed to groups as a function of an organizational scheme that defines groups and relationships between groups. The groups can be abstractions over profile data that are meaningful for computer program analysis. Subsequently, grouped data can be disseminated, queried, and visualized in numerous ways to further aid program analysis. | 10-03-2013 |
20130268921 | OPTIMIZATION OF AN APPLICATION TO REDUCE LOCAL MEMORY USAGE - Optimizing an application to reduce local memory usage. At least one executable class file of the application can be instrumented with analysis code, the executable class file including bytecode. The class file can be executed on a virtual machine, wherein during execution the analysis code generates data related to the application's use of local memory. The data related to the application's use of the local memory can be analyzed to generate a memory profile analysis. Based on the memory profile analysis, at least one portion of the bytecode can be automatically revised to reduce an amount of the local memory used by the application. | 10-10-2013 |
20130332913 | Indirect Software Performance Analysis - 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. | 12-12-2013 |
20140040872 | SYSTEMS AND METHODS FOR TESTING A COMPILER THROUGH COMPILE-TIME DECISION FEEDBACK - 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. | 02-06-2014 |
20140096118 | Code Profiling in Embedded ULE Applications - Mobile electronic devices and related methods to achieve an enhanced security level are disclosed. A security module is deeply embedded in a non-open companion chip of the mobile device, wherein the companion chip controls vital functions of the mobile device. Any security technology can be provided by the security module. The security module can, in case of a security violation, disable all vital functions of the companion chip without requiring communicating to other components of the mobile device. The vital functions deployed in the companion chip comprise e.g. system power management or audio functions. | 04-03-2014 |
20140215448 | COMPILING METHOD AND APPARATUS FOR SCHEDULING BLOCK IN PIPELINE - 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. | 07-31-2014 |
20140258998 | ENLARGING CONTROL REGIONS TO OPTIMIZE SCRIPT CODE COMPILATION - 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. | 09-11-2014 |
20140282455 | APPLICATION PROFILING - 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. | 09-18-2014 |
20140282456 | METHODS, SYSTEMS AND COMPUTER-READABLE MEDIA FOR CODE PROFILING AND MIGRATION EFFORT ESTIMATION - 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. The transformation points may be used to determine an overall migration effort for migrating the application to one or more of the second computing environments. | 09-18-2014 |
20140298307 | FRAMEWORK FOR USER-DIRECTED PROFILE-DRIVEN OPTIMIZATIONS - 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. | 10-02-2014 |
20140317609 | AUTOMATIC REFERENCE COUNTING - 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. | 10-23-2014 |
20150067661 | SOFTWARE CODE PROFILING - An on-chip function call aware software code profiling counter system and method is disclosed. When building software code a compiler/tool-chain can modify prologues and epilogues of functions to add instrumentation code which uniquely identifies the function. Each function included in the instrumented source code tree is assigned a unique identifier (ID) by the compiler/tool-chain. Writing a unique ID for a function to a register starts profiling for the function. The profiling is performed by a counter that counts the number of instruction cycles since the last unique ID was written to the register. When a unique ID for a next function to be profiled is written to the register, the old register value and the counter value are latched to one or more buffers and the counter is cleared to start the next count sequence for the next function to be profiled. | 03-05-2015 |
20150095896 | RUNTIME DISPATCHING AMONG A HETEROGENEOUS GROUP OF PROCESSORS - Systems, apparatus, articles, and methods are described including operations for runtime dispatching among a heterogeneous group of processors. | 04-02-2015 |
20150143350 | MULTISTATE DEVELOPMENT WORKFLOW FOR GENERATING A CUSTOM INSTRUCTION SET RECONFIGURABLE PROCESSOR - Systems and methods which implement workflows for providing reconfigurable processor core algorithms operable with associated capabilities using description files, thereby facilitating the development and generation of instruction sets for use with reconfigurable processors, are shown. Embodiments implement a multistage workflow in which program code is parsed into custom instructions and corresponding capability descriptions for generating reconfigurable processor loadable instruction sets. The multistage workflow of embodiments includes a hybrid threading complier operable to compile input program code into custom instructions using a hardware timing agnostic approach. A timing manager of the multistage workflow of embodiments utilizes capabilities information provided in association with the custom instructions generated by the hybrid threading complier to impose hardware timing on the custom instructions. A framework generator and hardware description language complier are also included in the multistage workflow of embodiments. | 05-21-2015 |
20160048376 | PORTABLE BINARY IMAGE FORMAT (PBIF) FOR PRE-COMPILED KERNELS - Embodiments include methods, systems, and computer-readable medium directed to a compiler for compiling a portable binary image. The compiler compiles a program source code into a first executable specific to a first instruction set architecture (ISA). The compiler then compiles the program source code into a code generator output. Additionally the compiler combines the executable and the code generator output into a portable binary image. At runtime on a target device, the code generator output can be compiled into a second executable in accordance to a second ISA specific to the target device if the originally compiled first executable specific to the first ISA is not executable on the target device. | 02-18-2016 |
20160077828 | LOGICAL GROUPING OF PROFILE DATA - Profile data can be ascribed to groups as a function of an organizational scheme that defines groups and relationships between groups. The groups can be abstractions over profile data that are meaningful for computer program analysis. Subsequently, grouped data can be disseminated, queried, and visualized in numerous ways to further aid program analysis. | 03-17-2016 |
20160085526 | STATICALLY SPECULATIVE COMPILATION AND EXECUTION - A system, for use with a compiler architecture framework, includes performing a statically speculative compilation process to extract and use speculative static information, encoding the speculative static information in an instruction set architecture of a processor, and executing a compiled computer program using the speculative static information, wherein executing supports static speculation driven mechanisms and controls. | 03-24-2016 |
20160103665 | Real-Time Reporting Based on Instrumentation of Software - A data analysis system processes data generated by instrumented software. The data analysis system receives data streams generated by instances of instrumented software executing on systems. The data analysis system also receives metadata describing data streams. The data analysis system receives an expression based on the metadata. The data analysis system receives data of data streams for each time interval and computes the result of the expression based on the received data values. The data analysis system repeats these steps for each time interval. The data analysis system may quantize data values of data streams for each time interval by generating an aggregate value for the time interval based on data received for each data stream for that time interval. The data analysis system evaluates the expression using the quantized data for the time interval. | 04-14-2016 |
20160110173 | PROFILING AND OPTIMIZATION OF PROGRAM CODE/APPLICATION - 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. | 04-21-2016 |
20160124728 | COLLECTING PROFILE DATA FOR MODIFIED GLOBAL VARIABLES - A PGO compiler can instrument an executable to collect profile data from which global variables that were modified during the execution of a training executable can be identified. PGO optimization using a list of modified global variables identified from the profile data can be used to optimize a program in a second compilation phase. The global variables that were modified during the training run are identified by capturing a current snapshot of global variables and comparing their state to a baseline snapshot to ascertain the addresses of global variables that were modified. The addresses that changed can be mapped to global variable names to create a list of global variables that were modified during execution of the training executable. The list of global variables that have been modified can be to enable the compiler to perform optimizations such as but not limited to co-locate the modified global variables in memory. | 05-05-2016 |
20160139891 | COMPILER ARCHITECTURE FOR PROGRAMMABLE APPLICATION SPECIFIC INTEGRATED CIRCUIT BASED NETWORK DEVICES - A processing network including a plurality of lookup and decision engines (LDEs) each having one or more configuration registers and a plurality of on-chip routers forming a matrix for routing the data between the LDEs, wherein each of the on-chip routers is communicatively coupled with one or more of the LDEs. The processing network further including an LDE compiler stored on a memory and communicatively coupled with each of the LDEs, wherein the LDE compiler is configured to generate values based on input source code that when programmed into the configuration registers of the LDEs cause the LDEs to implement the functionality defined by the input source code. | 05-19-2016 |
20160139898 | ALGORITHM TO ACHIEVE OPTIMAL LAYOUT OF INSTRUCTION TABLES FOR PROGRAMMABLE NETWORK DEVICES - A processing network including a plurality of lookup and decision engines (LDEs) each having one or more configuration registers and a plurality of on-chip routers forming a matrix for routing the data between the LDEs, wherein each of the on-chip routers is communicatively coupled with one or more of the LDEs. The processing network further including an LDE compiler stored on a memory and communicatively coupled with each of the LDEs, wherein the LDE compiler is configured to generate values based on input source code that when programmed into the configuration registers of the LDEs cause the LDEs to implement the functionality defined by the input source code. | 05-19-2016 |
20160179488 | DYNAMICALLY CHANGING INPUT DATA STREAMS PROCESSED BY DATA STREAM LANGUAGE PROGRAMS | 06-23-2016 |
20160202960 | Method And System For Automated, Static Instrumentation For Applications Designed For Execution In Environments With Restricted Resources, Like Mobile Devices Or TV Set Top Boxes | 07-14-2016 |
20180024821 | DETECTING SEQUENTIAL ACCESS DATA AND RANDOM ACCESS DATA FOR PLACEMENT ON HYBRID MAIN MEMORY FOR IN-MEMORY DATABASES | 01-25-2018 |