System and method for compacting a computer system heap
    1.
    发明授权
    System and method for compacting a computer system heap 有权
    用于压缩计算机系统堆的系统和方法

    公开(公告)号:US07010555B2

    公开(公告)日:2006-03-07

    申请号:US10273642

    申请日:2002-10-17

    IPC分类号: G06F17/30

    摘要: A system and method for incrementally compacting a computer system heap is presented. A heap, such as a garbage-collected heap in a Java environment, is divided into logical regions. When the heap is becoming fragmented, an incremental compaction cycle is commenced. During a first time period, the first region of the heap is compacted, with subsequent regions being compacted during subsequent time periods. A time period commences when a garbage collection event occurs. In a multiprocessor environment the regions can be divided into a number of sections which are each compacted using a different processor. One or more break tables are constructed indicating how far contiguous groups of moveable objects should be moved to better group objects and eliminate interspersed free spaces. References throughout the heap that point to objects within the compacted region are then adjusted so that the references point to the new object locations.

    摘要翻译: 提出了一种用于逐步压缩计算机系统堆的系统和方法。 诸如Java环境中垃圾收集堆的堆被分成逻辑区域。 当堆成分碎片时,开始增量压缩循环。 在第一时间段期间,堆的第一区域被压实,随后的区域在随后的时间段内被压实。 发生垃圾回收事件时,时间段开始。 在多处理器环境中,区域可以分为多个部分,每个部分使用不同的处理器进行压缩。 构建一个或多个中断表,指示可移动对象的多少距离移动到更好的组对象并消除散布的空闲空间。 然后对整个堆中指向压实区域内的对象的引用进行调整,以使引用指向新的对象位置。

    Method and apparatus for identifying differences in runs of a computer program due to code changes
    2.
    发明授权
    Method and apparatus for identifying differences in runs of a computer program due to code changes 失效
    用于识别由于代码变化导致的计算机程序的运行差异的方法和装置

    公开(公告)号:US07506330B2

    公开(公告)日:2009-03-17

    申请号:US10777872

    申请日:2004-02-12

    IPC分类号: G06F9/45

    摘要: A method and apparatus for identifying differences in runs of a computer program that are due to changes in the code of the computer program. With the apparatus and method, call trees are generated for two or more builds of a computer program. The apparatus and method perform a “tree-subtract” operation in which the two or more call trees generated during runs of two or more different builds of a computer program are subtracted from one another to identify build to build differences in the execution of the computer program. From the resulting tree, portions of the runs of the different builds of the computer program where the resource utilization of the computer program has not changed are easily identifiable. Moreover, portions of the runs of the different builds of the computer program where there are improvements or regressions in resource utilization of the computer program may be easily identifiable.

    摘要翻译: 一种用于识别计算机程序运行中由于计算机程序的代码变化而导致的差异的方法和装置。 使用该设备和方法,可以为计算机程序的两个或多个构建生成调用树。 该装置和方法执行“减法”操作,其中在计算机程序的两个或多个不同构建的运行期间产生的两个或更多个调用树从彼此中减去以识别构建以构建计算机的执行中的差异 程序。 从结果树中,计算机程序的资源利用率未改变的计算机程序的不同构建的运行的部分容易识别。 此外,计算机程序的资源利用的改进或回归的计算机程序的不同构建的运行的部分可以容易地识别。

    CALL STACK SAMPLING WITH LIGHTWEIGHT THREAD MIGRATION PREVENTION
    3.
    发明申请
    CALL STACK SAMPLING WITH LIGHTWEIGHT THREAD MIGRATION PREVENTION 有权
    使用轻型螺纹预防措施来呼叫堆栈采样

    公开(公告)号:US20110307640A1

    公开(公告)日:2011-12-15

    申请号:US12813706

    申请日:2010-06-11

    IPC分类号: G06F13/24

    CPC分类号: G06F13/24 G06F9/4812

    摘要: A sample is generated based on an event. Further, an interrupt handler captures information for an interrupted thread on a current processor. In addition, an affinity of the interrupted thread is set such that the interrupted thread runs only on the current processor without being able to migrate to a different processor. A sampler thread that runs on the current processor retrieves a call stack associated with the interrupted thread after the affinity of the interrupted thread has been set to the current processor. The affinity of the interrupted thread is restored after the call stack has been retrieved.

    摘要翻译: 基于事件生成示例。 此外,中断处理程序捕获当前处理器上的中断线程的信息。 此外,中断线程的亲和性被设置为使得被中断的线程仅在当前处理器上运行,而不能迁移到不同的处理器。 在当前处理器上运行的采样器线程在中断线程的相关性已设置为当前处理器之后检索与中断线程相关联的调用堆栈。 在检索到调用堆栈之后,中断的线程的亲和性将被恢复。

    SCALABLE CALL STACK SAMPLING
    4.
    发明申请
    SCALABLE CALL STACK SAMPLING 有权
    可调电话采样

    公开(公告)号:US20120191893A1

    公开(公告)日:2012-07-26

    申请号:US13011621

    申请日:2011-01-21

    IPC分类号: G06F13/24

    CPC分类号: G06F13/24 G06F9/4812

    摘要: An interrupt is generated based on an event. Further, a thread is selected for monitoring. In addition, an interrupt handler captures information for the monitored thread. An affinity of the monitored thread is set such that the monitored thread runs only on a current processor without being able to migrate to a different processor. A sampler thread that runs on the current processor retrieves a call stack associated with a monitored thread after the affinity of the monitored thread has been set to the current processor.

    摘要翻译: 基于事件产生中断。 此外,选择线程进行监视。 此外,中断处理程序捕获被监视线程的信息。 被监视线程的亲和性被设置为使得所监视的线程仅在当前处理器上运行,而不能迁移到不同的处理器。 在当前处理器上运行的采样器线程将在被监视线程的亲和性设置为当前处理器之后检索与被监视线程相关联的调用堆栈。

    Call Stack Sampling for a Multi-Processor System
    5.
    发明申请
    Call Stack Sampling for a Multi-Processor System 审中-公开
    多处理器系统的呼叫栈采样

    公开(公告)号:US20100017583A1

    公开(公告)日:2010-01-21

    申请号:US12173047

    申请日:2008-07-15

    IPC分类号: G06F9/30

    CPC分类号: G06F11/3612

    摘要: A computer implemented method, apparatus, and computer usable program code for sampling call stack information. Responsive to identifying an interrupt, a determination is made as to whether all processors in a plurality of processors have generated the interrupt. A determination is made as whether to sample the call stack information based on a policy in response to a determination that all of the processors have generated the interrupt. The call stack information is sampled if a determination is made to sample the call stack information based on the policy

    摘要翻译: 计算机实现的方法,装置和用于对呼叫栈信息进行采样的计算机可用程序代码。 响应于识别中断,确定多个处理器中的所有处理器是否已经产生中断。 作出响应于所有处理器已经产生中断的确定,基于策略对采样堆栈信息进行采样的确定。 如果确定根据策略对呼叫堆栈信息进行采样,则调用堆栈信息被采样

    System and Method for Call Stack Sampling Combined with Node and Instruction Tracing
    7.
    发明申请
    System and Method for Call Stack Sampling Combined with Node and Instruction Tracing 失效
    与节点和指令跟踪组合的调用堆栈采样的系统和方法

    公开(公告)号:US20080307441A1

    公开(公告)日:2008-12-11

    申请号:US11759588

    申请日:2007-06-07

    IPC分类号: G06F9/44

    CPC分类号: G06F9/4484

    摘要: A system and method for Java™ call stack sampling combined with native sampling is presented. A kernel-mode device driver records and stores sampled context information that includes a program counter, a thread identifier, and a process identifier. The sampling thread receives a notification from the kernel-mode device driver, and proceeds to collect call stack information from a Java™ Virtual Machine. In turn, the sampling thread retrieves the sampled context information and harvests symbols corresponding to a loaded module. Once symbols are harvested, the sampling thread combines returned call stack nodes with native function leaf nodes into a unified output tree that provides the relationship between the two different node types. In one embodiment, the sampling thread may generate native function leaf nodes and the unified output tree in a post-processing manner.

    摘要翻译: 提出了一种用于Java(TM)调用堆栈抽样与本机抽样结合的系统和方法。 内核模式设备驱动程序记录并存储包括程序计数器,线程标识符和进程标识符的采样上下文信息。 采样线程从内核模式设备驱动程序接收通知,并继续从Java(TM)虚拟机收集调用堆栈信息。 反过来,采样线程检索采样的上下文信息并收获对应于加载的模块的符号。 一旦收到符号,采样线程将返回的调用堆栈节点与本机功能叶节点组合成统一的输出树,提供两种不同节点类型之间的关系。 在一个实施例中,采样线程可以以后处理方式生成本机功能叶节点和统一输出树。

    Scalable system call stack sampling
    8.
    发明授权
    Scalable system call stack sampling 有权
    可扩展系统调用堆栈采样

    公开(公告)号:US08799904B2

    公开(公告)日:2014-08-05

    申请号:US13011621

    申请日:2011-01-21

    IPC分类号: G06F9/455 G06F9/44

    CPC分类号: G06F13/24 G06F9/4812

    摘要: An interrupt is generated based on an event. Further, a thread is selected for monitoring. In addition, an interrupt handler captures information for the monitored thread. An affinity of the monitored thread is set such that the monitored thread runs only on a current processor without being able to migrate to a different processor. A sampler thread that runs on the current processor retrieves a call stack associated with a monitored thread after the affinity of the monitored thread has been set to the current processor.

    摘要翻译: 基于事件产生中断。 此外,选择线程进行监视。 此外,中断处理程序捕获被监视线程的信息。 被监视线程的亲和性被设置为使得所监视的线程仅在当前处理器上运行,而不能迁移到不同的处理器。 在当前处理器上运行的采样器线程将在被监视线程的亲和性设置为当前处理器之后检索与被监视线程相关联的调用堆栈。

    System and method for call stack sampling combined with node and instruction tracing
    9.
    发明授权
    System and method for call stack sampling combined with node and instruction tracing 失效
    用于调用堆栈采样的系统和方法结合节点和指令跟踪

    公开(公告)号:US07962924B2

    公开(公告)日:2011-06-14

    申请号:US11759588

    申请日:2007-06-07

    IPC分类号: G06F3/00 G06F9/45

    CPC分类号: G06F9/4484

    摘要: A system and method for Java™ call stack sampling combined with native sampling is presented. A kernel-mode device driver records and stores sampled context information that includes a program counter, a thread identifier, and a process identifier. The sampling thread receives a notification from the kernel-mode device driver, and proceeds to collect call stack information from a Java™ Virtual Machine. In turn, the sampling thread retrieves the sampled context information and harvests symbols corresponding to a loaded module. Once symbols are harvested, the sampling thread combines returned call stack nodes with native function leaf nodes into a unified output tree that provides the relationship between the two different node types. In one embodiment, the sampling thread may generate native function leaf nodes and the unified output tree in a post-processing manner.

    摘要翻译: 提出了一种用于Java™调用堆栈采样与本地采样相结合的系统和方法。 内核模式设备驱动程序记录并存储包括程序计数器,线程标识符和进程标识符的采样上下文信息。 采样线程从内核模式设备驱动程序接收通知,并继续从Java™虚拟机收集调用堆栈信息。 反过来,采样线程检索采样的上下文信息并收获对应于加载的模块的符号。 一旦收到符号,采样线程将返回的调用堆栈节点与本机功能叶节点组合成统一的输出树,提供两种不同节点类型之间的关系。 在一个实施例中,采样线程可以以后处理方式生成本机功能叶节点和统一输出树。

    Time Based Context Sampling of Trace Data with Support for Multiple Virtual Machines
    10.
    发明申请
    Time Based Context Sampling of Trace Data with Support for Multiple Virtual Machines 审中-公开
    支持多个虚拟机的跟踪数据的基于时间的背景采样

    公开(公告)号:US20100333071A1

    公开(公告)日:2010-12-30

    申请号:US12494469

    申请日:2009-06-30

    IPC分类号: G06F9/44

    CPC分类号: G06F11/3612 G06F11/3466

    摘要: Mechanisms for time based context sampling of trace data with support for multiple virtual machines are provided. In response to the occurrence of an event, a plurality of sampling threads associated with a plurality of executing threads executing on processors of a data processing system are awakened. For each sampling thread, an execution state of a corresponding executing thread is determined with regard to one or more virtual machines of interest. For each sampling thread, based on the execution state of the corresponding executing thread, a determination is made whether to retrieve trace information from a virtual machine of interest associated with the corresponding executing thread. For each sampling thread, in response to a determination that trace information is to be retrieved from a virtual machine of interest associated with the corresponding executing thread, the trace information is retrieved from the virtual machine.

    摘要翻译: 提供了对支持多个虚拟机的跟踪数据进行基于时间的上下文采样的机制。 响应于事件的发生,与数据处理系统的处理器上执行的多个执行线程相关联的多个采样线程被唤醒。 对于每个采样线程,相对于一个或多个感兴趣的虚拟机确定相应的执行线程的执行状态。 对于每个采样线程,基于对应的执行线程的执行状态,确定是否从与相应的执行线程相关联的感兴趣的虚拟机检索跟踪信息。 对于每个采样线程,响应于从与相应的执行线程相关联的感兴趣的虚拟机检索跟踪信息的确定,从虚拟机检索跟踪信息。