-
公开(公告)号:US09507713B1
公开(公告)日:2016-11-29
申请号:US14492845
申请日:2014-09-22
Applicant: GOOGLE INC.
Inventor: Hannes Payer , Daniel Clifford , Michael Vincent Stanton , Benedikt Meurer
IPC: G06F12/02
CPC classification number: G06F12/0253 , G06F12/0276 , G06F2212/1016 , G06F2212/702
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: 计算机实现的方法可以包括接收一组用于由计算设备执行的软件指令,并且编译该组软件指令以生成一组可执行指令。 编译可以包括识别第一存储器对象分配指令。 该方法还可以包括执行一组可执行指令,其中执行包括在年轻垃圾收集生成中使用第一存储器对象分配指令分配多个存储器对象。 该方法还可以包括确定由第一存储器对象分配指令分配的多个存储器对象的存活率。 响应于生存率大于存活率阈值,该方法可以包括在可执行指令集中替换第一存储器对象分配指令与第二存储器对象分配指令,其被配置为直接分配旧的存储器对象 垃圾收集生成。