Concurrent marking of location and shape changing objects

    公开(公告)号:US10261898B1

    公开(公告)日:2019-04-16

    申请号:US15287679

    申请日:2016-10-06

    Applicant: GOOGLE INC.

    Inventor: Hannes Payer

    Abstract: Aspects of the subject technology relate to concurrent marking of objects in memory. A garbage collection process accesses objects in a marking deque. The objects have status indicators which can be unmarked, pending, processing, and marked. For each object in the marking deque, the garbage collection process determines whether the object is marked. If the object is not marked, the garbage collection process determines whether the object is pending. If the object is pending, the garbage collection process sets the object to processing. The garbage collection process adds objects referenced by the object to the marking deque and determines if the object is marked. If the object is marked already, the garbage collection process removes the referenced objects from the marking deque. If the object was not marked, the garbage collection process marks the object and processes the referenced objects. A mutator process may also update the status indicators for the objects.

    Memory object pretenuring
    2.
    发明授权
    Memory object pretenuring 有权
    内存对象篡改

    公开(公告)号:US09507713B1

    公开(公告)日:2016-11-29

    申请号:US14492845

    申请日:2014-09-22

    Applicant: GOOGLE INC.

    Abstract: A computer-implemented method can include receiving a set of software instructions for execution by a computing device and compiling the set of software instructions to generate a set of executable instructions. The compiling can include identifying a first memory object allocation instruction. The method can also include executing the set of executable instructions, where the executing includes allocating, in a young garbage collection generation, a plurality of memory objects with the first memory object allocation instruction. The method can further include determining a survival rate of the plurality of memory objects allocated by the first memory object allocation instruction. Responsive to the survival rate being larger than a survival rate threshold, the method can include replacing, in the set of executable instructions, the first memory object allocation instruction with a second memory object allocation instruction that is configured to directly allocate memory objects in an old garbage collection generation.

    Abstract translation: 计算机实现的方法可以包括接收一组用于由计算设备执行的软件指令,并且编译该组软件指令以生成一组可执行指令。 编译可以包括识别第一存储器对象分配指令。 该方法还可以包括执行一组可执行指令,其中执行包括在年轻垃圾收集生成中使用第一存储器对象分配指令分配多个存储器对象。 该方法还可以包括确定由第一存储器对象分配指令分配的多个存储器对象的存活率。 响应于生存率大于存活率阈值,该方法可以包括在可执行指令集中替换第一存储器对象分配指令与第二存储器对象分配指令,其被配置为直接分配旧的存储器对象 垃圾收集生成。

    Memory allocation folding based on object dominance
    3.
    发明授权
    Memory allocation folding based on object dominance 有权
    基于对象优势的内存分配折叠

    公开(公告)号:US09448929B1

    公开(公告)日:2016-09-20

    申请号:US14328407

    申请日:2014-07-10

    Applicant: GOOGLE INC.

    CPC classification number: G06F12/0253 G06F12/023 G06F12/0276 G06F2212/1024

    Abstract: A computer-implemented method for compilation of applications can include receiving a set of software instructions and traversing the set of software instructions based on a control-flow order of the set of software instructions. The traversing can include identifying a first allocation instruction in the set of software instructions, the first allocation instruction being configured to allocate a first amount of memory for a first object and identifying a second allocation instruction in the set of software instructions, the second allocation instruction being configured to allocate a second amount of memory for a second object. The method can include determining that the first allocation instruction dominates the second allocation instruction and, in response to the determining, combining the first allocation instruction and the second allocation instruction into a folded allocation instruction that allocates the first amount of memory and the second amount of memory in a single memory allocation operation.

    Abstract translation: 用于编译应用的计算机实现的方法可以包括基于软件指令集的控制流顺序来接收一组软件指令并遍历该组软件指令。 所述遍历可以包括识别所述软件指令集中的第一分配指令,所述第一分配指令被配置为为所述第一对象分配第一数量的存储器,并且在所述软件指令集中识别第二分配指令,所述第二分配指令 被配置为为第二对象分配第二量的存储器。 该方法可以包括确定第一分配指令支配第二分配指令,并且响应于确定,将第一分配指令和第二分配指令合并成分配第一量存储器的折叠分配指令和第二分配指令的第二量 内存在单个内存分配操作中。

Patent Agency Ranking