Dynamic adaptive tenuring of objects
    1.
    发明授权
    Dynamic adaptive tenuring of objects 有权
    物体的动态适应性固定

    公开(公告)号:US06839725B2

    公开(公告)日:2005-01-04

    申请号:US09855453

    申请日:2001-05-15

    IPC分类号: G06F12/02 G06F12/00

    CPC分类号: G06F12/0276 Y10S707/99957

    摘要: Run time sampling techniques have been developed whereby representative object lifetime statistics may be obtained and employed to adaptively affect tenuring decisions, memory object promotion and/or storage location selection. In some realizations, object allocation functionality is dynamically varied to achieve desired behavior on an object category-by-category basis. In some realizations, phase behavior affects sampled lifetimes e.g., for objects allocated at different phases of program execution, and the dynamic facilities described herein provide phase-specific adaptation tenuring decisions, memory object promotion and/or storage location selection. In some realizations, reversal of such decisions is provided.

    Object sampling technique for runtime observations of representative instances thereof
    2.
    发明授权
    Object sampling technique for runtime observations of representative instances thereof 有权
    用于其代表性实例的运行时间观测的对象采样技术

    公开(公告)号:US06799191B2

    公开(公告)日:2004-09-28

    申请号:US09855454

    申请日:2001-05-15

    IPC分类号: G06F1200

    摘要: With better knowledge of the behavior of objects in a running application, it is possible to improve execution environment decisions that affect management of such objects. For example, if available, object lifetime statistics could be employed in decisions that affect how and where objects are placed, e.g., on allocation or during operation of automatic dynamic memory management facilities such as a garbage collector. Typically, instrumenting all objects to sample lifetimes or other characteristics would impose an impractical level of overhead. We present a technique for dynamic sampling of a subset of allocated objects that incurs low runtime overheads. Coupled with automatic memory management or collection facilities, this technique allows us to improve the efficiency of a collector by segregating objects, sampled and non-sampled alike, based on observed characteristics such as object lifetime. The sampling techniques facilitate tracking of many kinds of object information. For purposes of illustration, an exemplary implementation is described in which such sampling techniques are exploited to improve performance of generational garbage collectors.

    摘要翻译: 通过更好地了解正在运行的应用程序中对象的行为,可以改进影响这些对象管理的执行环境决策。 例如,如果可用,则可以在影响如何以及在何处放置对象的决策中使用对象生命周期统计,例如在诸如垃圾收集器的自动动态存储器管理设备的分配或操作期间。 通常,将所有对象检测到样本生命周期或其他特征将会产生不切实际的开销级别。 我们提出了一种用于动态采样分配对象的子集的技术,从而导致低运行时开销。 结合自动记忆管理或收集设备,这种技术使我们能够根据诸如对象寿命等观察特征,通过分离对象,采样和非抽样等来提高收集器的效率。 采样技术有助于跟踪多种物体信息。 为了说明的目的,描述了一种示例性实现,其中利用这种采样技术来改善代代垃圾收集器的性能。

    Train-algorithm-based garbage collector employing farthest-forward-car indicator
    3.
    发明授权
    Train-algorithm-based garbage collector employing farthest-forward-car indicator 有权
    基于火车算法的垃圾收集器采用最前进的车辆指示器

    公开(公告)号:US06415302B1

    公开(公告)日:2002-07-02

    申请号:US09377654

    申请日:1999-08-19

    IPC分类号: G06F1730

    CPC分类号: G06F12/0276 Y10S707/99957

    摘要: A garbage collector collects a generation of a collected heap in accordance with the train algorithm. It employs remembered sets associated with respective car sections to keep track of references into the associated car sections. Each remembered set contains entries that identify respective regions in the generation that contain references into the associated car section. When the collector collects a car section, it reclaims the car section's objects for which there are no references, looking only in regions that the car section's remembered set specifies. Additionally, the collector treats the generation as divided into segments, for each of which it maintains a farthest-forward-car value that identifies which, among the car sections into which the respective segment contains a reference, is closest to collection. When the collector looks for references in a region that the remembered set specifies, it searches only that region's segments whose farthest-forward-car values identify car sections in the remembered set.

    摘要翻译: 垃圾收集器根据列车算法收集一代收集的堆。 它使用与相应轿厢部分相关联的记忆集合来跟踪到相关联的轿厢部分的参考。 每个记住的集合包含标识生成中包含对相关联的汽车部分的引用的各个区域的条目。 当收集者收集汽车部分时,它回收汽车部分没有引用的对象,仅查看汽车部分记忆集指定的区域。 另外,收集器将生成器视为分割段,其中每个区段保持最前进的车辆值,该车辆值识别相应段中包含参考的轿厢区段中哪一个最接近于集合。 当收集器在记忆集指定的区域中查找引用时,它只搜索最远的车辆值识别记忆集中的车辆部分的区域。

    Incremental class unloading in a train-algorithm-based garbage collector
    5.
    发明授权
    Incremental class unloading in a train-algorithm-based garbage collector 有权
    在基于列车算法的垃圾收集器中增量卸载

    公开(公告)号:US06529919B1

    公开(公告)日:2003-03-04

    申请号:US09504091

    申请日:2000-02-15

    IPC分类号: G06F1200

    摘要: A garbage collector collects a train-managed heap in accordance with the train algorithm. In doing so, it concentrates into a respective train the heap-located objects that belong to garbage cycles even if those cycles additionally include certain types of objects that are outside the train-managed heap. It does so by using objects within the heap as proxies for those extra-heap objects, and it evacuates into a proxy object's train any collection-set objects referred to by the extra-heap objects for which the proxy object is a proxy. The objects in those garbage cycles containing the extra-heap objects can thereby be collected incrementally despite the extra-heap references to them.

    摘要翻译: 垃圾收集器根据列车算法收集火车管理的堆。 在这样做时,它集中在各自的列车中,即属于垃圾循环的堆定位对象,即使这些周期还包括列在列车管理堆外部的某些类型的对象。 它通过使用堆内的对象作为这些超堆对象的代理,并将代理对象作为代理的额外堆对象引用的任何集合集对象撤回到代理对象的列表中。 因此,包含堆外对象的这些垃圾循环中的对象可以逐渐收集,尽管对它们进行了额外的引用。

    Reduced-cost remembered-set processing in a train-algorithm-based garbage collector
    6.
    发明授权
    Reduced-cost remembered-set processing in a train-algorithm-based garbage collector 有权
    基于列车算法的垃圾回收器中的降低成本记忆集处理

    公开(公告)号:US06449626B1

    公开(公告)日:2002-09-10

    申请号:US09377137

    申请日:1999-08-19

    IPC分类号: G06F1730

    摘要: A garbage collector collects a generation of a collected heap in accordance with the train algorithm. It employs remembered sets associated with respective car sections to keep track of references into the associated car sections. Each remembered set contains entries that identify respective regions in the generation that contain references into the associated car section. In some collection cycles, the collector collects a collection set of more than one car section. When it does, it processes the remembered-set entries by searching the regions specified thereby not only for references into the associated car sections but also for references into other car sections in the collection set. The collector further treats the generation as divided into segments, for each of which it maintains a Boolean value that indicates whether the segment has been searched during the current collection cycle. If it has, the collector does not search it in response to a subsequently encountered remembered-set entry that identifies a region in which that segment is included.

    摘要翻译: 垃圾收集器根据列车算法收集一代收集的堆。 它使用与相应轿厢部分相关联的记忆集合来跟踪到相关联的轿厢部分的参考。 每个记住的集合包含标识生成中包含对相关联的汽车部分的引用的各个区域的条目。 在一些收集周期中,收集器收集一组多个汽车部分。 当它是这样做时,它通过搜索指定的区域来处理记忆集条目,不仅对于相关联的轿厢部分的引用,而且还用于对集合集合中的其他轿厢部分的引用。 收集器进一步将生成分为段,每个段保持一个布尔值,该值指示在当前收集循环期间是否已搜索段。 如果有,则收集器不会响应于随后遇到的记住集合条目来搜索它,该条目标识了包含该段的区域。

    Concurrent evacuation of the young generation
    7.
    发明申请
    Concurrent evacuation of the young generation 有权
    同时撤离年轻一代

    公开(公告)号:US20080250088A1

    公开(公告)日:2008-10-09

    申请号:US11732785

    申请日:2007-04-03

    IPC分类号: G06F12/00

    CPC分类号: G06F12/0276

    摘要: The invention relates to a method for performing generational garbage collection on a heap comprising a plurality of generations. The method involves dividing a young generation of the heap into a first young generation and a second young generation, evacuating the first young generation concurrently with allocating the second young generation, and evacuating the second young generation concurrently with allocating the first young generation and subsequent to fully evacuating the first young generation.

    摘要翻译: 本发明涉及一种在包含多代的堆上执行代数垃圾收集的方法。 这种方法包括将年轻一代的小朋友分成第一个年轻一代和第二个年轻一代,同时分配第一个年轻一代,分配第二个年轻一代,同时分配第二个年轻一代,分配第一个年轻一代, 全面撤离第一批年轻一代。

    Concurrent incremental garbage collector with a card table summarizing modified reference locations
    8.
    发明授权
    Concurrent incremental garbage collector with a card table summarizing modified reference locations 有权
    并发增量垃圾收集器,带有表格,汇总修改后的参考位置

    公开(公告)号:US07412580B1

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

    申请号:US10679559

    申请日:2003-10-06

    IPC分类号: G06F12/02

    摘要: A concurrent incremental garbage collector where tracking and summarization of modified references is concurrent with application operations. A card table is arranged with write barriers so that an application's modification of objects in memory cards are memorialized in the card table. The collector performs an atomic operation, e.g., a compare-and-swap (CAS), on the card table to detect modified or written to objects. Card table indicators of dirtied cards are reset or emptied and the corresponding dirtied cards are scanned for the modifications and the remembered sets updated. Another CAS is performed on the same card table and if any dirtied cards are indicated the collector preserves the card table with the dirtied indicators and operates on a distant card table. If the CAS succeeds no modifications were made and the collector operates on the next scheduled card table group.

    摘要翻译: 并行增量垃圾回收器,其中跟踪和汇总修改后的引用与应用程序操作并发。 一张卡片表装有写入障碍物,使得应用程序对存储卡中对象的修改被记录在卡片表中。 收集器在卡表上执行原子操作,例如比较和交换(CAS),以检测修改或写入对象。 脏卡的卡片表指示器被复位或清空,并且扫描相应的脏卡以进行修改并更新记忆集。 另一个CAS在相同的卡片表上执行,并且如果指示了任何脏的卡片,则收集器保留具有脏污指示器的卡片表,并在远程卡片表上操作。 如果CAS成功,则不进行修改,并且收集器在下一个预定的卡表组上运行。

    Remembered-set scrubbing to remove stale entries in an incremental garbage collector
    9.
    发明授权
    Remembered-set scrubbing to remove stale entries in an incremental garbage collector 有权
    记忆集擦除以删除增量垃圾收集器中的陈旧条目

    公开(公告)号:US07072918B2

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

    申请号:US10395449

    申请日:2003-03-24

    IPC分类号: G06F17/30

    CPC分类号: G06F12/0276 Y10S707/99957

    摘要: A computer system, method and software for detecting and purging stale entries from remembered sets associated with incrementally collectible regions used in an incremental garbage collection technique like the Trains algorithm is described. Stale entries are detected by a number of techniques, and then purged, eliminated, or scrubbed. These techniques make use of the summarized information about regions such as cards or incrementally collectible regions that indicate age of allocation, time a region was last scanned, last time an entry was inserted into a remembered set, as well as how far forward or backward objects in a given region refer in a generation.

    摘要翻译: 描述了一种计算机系统,方法和软件,用于检测和清除与诸如列车算法之类的增量垃圾收集技术中使用的增量收集区域相关联的记忆集的陈旧条目。 通过多种技术检测陈旧的条目,然后清除,消除或擦洗。 这些技术利用关于诸如卡或递增可收集区域的区域的汇总信息,这些区域指示分配的年龄,上次扫描的时间,上次将记录插入到记忆集中的时间,以及前进或后退的对象 在一个给定的地区,在一代人中引用。

    Better placement of objects reachable from outside a generation managed by the train algorithm
    10.
    发明授权
    Better placement of objects reachable from outside a generation managed by the train algorithm 有权
    从火车算法管理的一代外部可以更好地放置物体

    公开(公告)号:US07072905B2

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

    申请号:US10313657

    申请日:2002-12-06

    IPC分类号: G06F17/30

    摘要: A garbage collector for more efficient placement of objects referenced from external references. The expected life times of these objects is measured by trial and error, by the class or type, by how often the object has been evacuated or the external reference processed, by the stability and longevity of the root source, or by the prolificness of the class or type of object. The measured value is held in the header of each object in an AGE field available for this purpose. These objects may be evacuated into existing trains or into new trains, or into a combination of existing and new trains. When new trains are created the trains are distributed among the existing trains according to a distribution contour that may be linear, normal, gamma or any other contour that might be found useful. Also, when new trains are created the youngest train must be a new train. When objects are evacuated into existing trains the objects are placed in trains according the survivability of the objects with the longer-lived objects placed proportionally in the younger trains. The objects are evacuated into the new trains from oldest to youngest trains according to the value in the AGE field. The higher the value the younger the train. A threshold on the AGE value may be established such that when the threshold is reached, the objects are evacuated into the youngest new train.

    摘要翻译: 一个垃圾回收器,用于更有效地放置从外部引用引用的对象。 这些物体的预期寿命是通过试验和误差,类别或类型,物体被疏散或外部参考物处理的频率,根源的稳定性和寿命,或由 类或类型的对象。 测量值保存在可用于此目的的AGE字段中的每个对象的标题中。 这些物体可能被撤离到现有的火车或新列车中,或者组合到现有的和新的列车中。 当新列车被创建时,根据可能是线性,正常,伽马或任何其他可能被发现有用的轮廓的分布轮廓,在现有列车之间分配列车。 此外,当新列车创建时,最小的火车必须是新的列车。 当物体撤离到现有火车中时,物体按照物体的生存能力放置在列车中,而较长寿命的物体按比例放置在较小的火车上。 这些物品根据AGE领域的价值从最旧到最早的列车撤离到新列车中。 火车越小越贵。 可以建立AGE值的阈值,使得当达到阈值时,物体被排空到最年轻的新列车中。