摘要:
Disclosed are methods and compositions for cementing in a subterranean formation. A method comprises introducing a resin composition into a wellbore. The resin composition may comprise a resin, a napthol-based epoxy resin additive, and a hardening agent. The napthol-based epoxy resin additive may comprise two naphthalene functional groups and two epoxide functional groups.
摘要:
Traditional feedback-directed optimization (FDO) is not widely used due to the significant computational overhead involved in using instrumented binaries. The described embodiments provide methods that eliminate the need for instrumented binaries by permitting the conversion of hardware-event sampling information into edge frequencies usable by FDO compilers. Some advantages include: the ability to collect feedback data on production systems; the ability to perform FDO on the OS kernel; and the ability to avoid disrupting timing paths from instrumented binaries.
摘要:
A monitoring interface, includes logic responsive to a pre-fork event, the pre-fork event responsive to a vfork system call. The pre-fork event includes indicia that identifies a child process to be created in accordance with the vfork system call. A method for controlling the execution of a child process created from a parent process, where the parent process is monitored by a software tool includes, receiving indicia that a vfork system call will be executed by the parent process, suspending execution of the parent process, extracting a process identifier from the indicia of the vfork system call, the process identifier corresponding to a child process to be generated by the parent process when the parent process executes the vfork system call, setting a process monitor thread to observe the child process, and resuming execution of the parent process to enable the parent process to execute past the vfork system call.
摘要:
Techniques for partitioning modules into smaller groups are disclosed. In various embodiments, cross-module optimization may be performed on these smaller groups. Further, related modules are grouped together based on a predefined algorithm. Relatedness, or closeness, or affinity, of modules are considered based on various factors including, for example, the number of calls between routines in different modules, possibility of in-lining a first routine in a first module into a second routine in a second module, characteristics of parameters being passed between routines in different modules, etc.
摘要:
Method and apparatus for optimizing an executable computer program having address-bridging code segments. Various embodiments are described for optimizing an executable computer program that occupies a first address space and has address-bridging code segments. Address-bridging code segments, target code segments referenced by the address-bridging segments, and calling code segments that reference the address-bridging segments are identified during execution of the program. A second address space is allocated for storage of relocated functions. The calling code segments and the target code segments are relocated to the second address space, and references to the address-bridging code segments are replaced with references to the target code segments in the second address space. For references to the calling code segments in the first address space, control is directed to the calling code segments in the second address space.
摘要:
Techniques for cloning programming code are disclosed. In an embodiment, the cloned code is in the form of functions in the C language. Further, in a method embodiment, a clone of a function is invoked, and information mapping the clone to the function is generated. At link time, if no function body of the clone is accessible by a linker, then the linker uses information mapping the clone to the function to satisfy a linker's requirement. At load time, if no function body of the clone is accessible by a loader, then the loader, based on the mapping information, allows selection of a body of the function. However, if the body function of the clone is accessible by the loader, then the loader allows selection of the body of the clone.
摘要:
A method and system for reverting a process in an in-line instrumented state to an uninstrumented state. In one embodiment, the present invention modifies selected text segment portions from the process to be uninstrumented. The present embodiment then unmaps instrumented code space such that the instrumented code space is inaccessible to the process. In this embodiment, provided an instruction pointer resides in the instrumented code space, the present invention updates the instruction pointer to uninstrumented code space. The present embodiment also executes the process and, provided the process generates a fault by seeking to access an address in instrumented code space, provides a corresponding address in uninstrumented code space. In one embodiment, the present invention then continues execution at the address in instrumented code space.
摘要:
A method and system for reverting a process in an in-line instrumented state to an uninstrumented state. In one embodiment, the present invention modifies selected text segment portions from the process to be uninstrumented. The present embodiment then unmaps instrumented code space such that the instrumented code space is inaccessible to the process. In this embodiment, the present invention also cleans a call stack of the process by unwinding the call stack and resetting the storage locations for return pointers from the instrumented code space to uninstrumented code space.
摘要:
Systems and methods for branch profiling an executable program are disclosed. One embodiment relates to a method of branch profiling an executable program. The method may comprise inserting an integer add instruction in branches of a loop of the executable program, inserting path counter instructions after a last branch of the loop and prior to an exit point of the loop, and inserting loop counter array update instructions after the exit point of the loop.
摘要:
Method and apparatus for dynamic instrumentation of an executable application program. The application program includes a plurality of functions, each function having an entry point and an endpoint. When the application is executed, a shared memory segment is created for an instrumentation program and the application program. Upon initial invocation of the original functions in the application program, corresponding substitute functions are created in the shared memory segment, the substitute versions including instrumentation code. Thereafter, the substitute functions are executed in lieu of the original functions in the application program.