背景技术:
1、本公开涉及计算机系统中的垃圾收集,并且更具体地,涉及标记不可达资源以用于垃圾收集。
2、当程序需要资源来完成功能时,一些计算机系统将资源加载到存储器中。这些资源可以由程序内(例如,该程序所使用的另一资源内)的指针来标识,该指针标识资源及其位置。
3、一些计算机系统偶尔执行垃圾收集以释放由计算机系统不再需要的资源(例如,已经被加载到存储器中但是不再由最初需要它们的程序使用的资源)使用的存储器。为此,垃圾收集通常包括识别那些不需要的资源的方法。一些方法包括跟踪资源之间的指针以确定存储器中的任何资源是否未被当前使用的程序或其它资源指向。
技术实现思路
1、本公开的一些实施例可以被图示为一种方法,该方法包括识别在第一存储器地址处的第一对象。该方法还可以包括计算位图中的第一索引位置。第一索引位置可以对应于第一存储器地址。该方法还可以包括在第一索引位置处设置第一位。该方法还可以包括检测指向第一对象内的子对象的指针。该方法还可以包括使用指针来识别子对象的第二存储器地址。该方法还可以包括计算位图中的第二索引位置。第二索引位置可以对应于第二存储器地址。该方法还可以包括在第二索引位置处设置第二位。该方法还可以包括在第三索引位置处设置第三位。第三索引位置可以与第一索引位置相邻。
2、本公开的一些实施例还可以被图示为包括处理器和存储器的系统。存储器可以与处理器通信并且包含程序指令,当由处理器执行时,所述程序指令被配置为使处理器执行上述方法。
3、本公开的一些实施例还可以被图示为包括程序可读存储介质的计算机程序产品。计算机可读存储介质可以具有随其体现的计算机指令。这些程序指令可以由计算机执行以使计算机执行上述方法。
4、上述
技术实现要素:
并非旨在描述本公开的每个所示实施例或每种实施方式。
1.一种方法,包括:
2.如权利要求1所述的方法,其中设置所述第一位表示所述第一对象已经被标记为“灰色”,并且其中设置所述第三位表示所述根对象已经被标记为“黑色”。
3.根据权利要求1所述的方法,其进一步在设置所述第二位时确定设置所述第三位。
4.根据权利要求3所述的方法,其中用与设置所述第二位相同的比较与交换指令设置所述第三位。
5.根据权利要求3所述的方法,其中在设置所述第二位时确定设置所述第三位是基于检测到由所述第一对象指向的子对象数目低于阈值。
6.如权利要求1所述的方法,其中在检测到所述第一对象的所有子对象已经被定位并且标记为“灰色”时,设置所述第三位。
7.如权利要求1所述的方法,其中所述第三位在检测到所述父对象的子对象的阈值百分比已被标记为“灰色”时被设置。
8.如权利要求1所述的方法,进一步包括确定所述第一对象的对象大小大于所述位图的对齐大小。
9.根据权利要求1所述的方法,还包括:
10.根据权利要求9所述的方法,还包括:
11.一种系统,包括:
12.根据权利要求11所述的系统,其中所述方法进一步包括在设置所述第二位时进一步确定设置所述第三位。
13.根据权利要求12所述的系统,其中在设置所述第二位时确定设置所述第三位是基于检测到由所述第一对象指向的子对象数目低于阈值。
14.如权利要求11所述的系统,其中在检测到父对象的子对象的阈值百分比已被标记为“灰色”时,设置所述第三位。
15.根据权利要求11所述的系统,其中所述方法还包括:
16.根据权利要求15所述的系统,其中所述方法还包括:
17.一种计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有随其体现的程序指令,所述程序指令可由计算机执行以使所述计算机:
18.如权利要求17所述的计算机程序产品,其中在检测到父对象的子对象的阈值百分比已经被标记为“灰色”时,设置第三位。
19.根据权利要求17所述的计算机程序产品,其中所述程序指令进一步致使所述计算机:
20.根据权利要求19所述的计算机程序产品,其中所述程序指令进一步致使所述计算机: