CN103577335A - 一种内存垃圾回收系统及方法 - Google Patents
一种内存垃圾回收系统及方法 Download PDFInfo
- Publication number
- CN103577335A CN103577335A CN201310504532.4A CN201310504532A CN103577335A CN 103577335 A CN103577335 A CN 103577335A CN 201310504532 A CN201310504532 A CN 201310504532A CN 103577335 A CN103577335 A CN 103577335A
- Authority
- CN
- China
- Prior art keywords
- data object
- garbage
- information
- internal memory
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及内存垃圾回收系统及方法,包含垃圾分析模块,记录内存分配和释放信息,查询页表获取物理地址信息,以确定每个数据对象是否存在于内存中,得到该数据对象对应的物理地址空间信息;并将该信息更新到垃圾监控模块中的数据对象监控列表,以确定数据对象对应的物理地址空间信息。垃圾监控模块,用于维护该数据对象监控列表,将新分配的数据对象加入;将删除的数据对象从数据对象监控列表中删除;并监控所有的访存请求,将访存关联到数据对象,更新数据对象的访问信息,并将这些访存请求关联到数据对象监控列表中的数据对象,更新访问信息。垃圾监控模块定期将数据对象访问信息反馈给垃圾分析模块,垃圾分析模块分析根据这些信息负责分析出可疑的内存垃圾块,并在可疑的垃圾块中确定真正的内存垃圾块,高精度低开销回收其内存空间。
Description
技术领域
本发明涉及计算机内存管理领域,特别涉及一种内存垃圾回收系统及方法。
背景技术
垃圾回收是计算机内存管理领域一个很重要的方面。应用程序为每个数据对象都分配一定的内存空间,内存中不再被程序使用的数据对象所占用的内存空间称为垃圾块。垃圾回收器能够自动回收内存中用不到的垃圾块,从而合理的使用和分配内存,避免因内存垃圾过多而造成的内存泄露等问题。
垃圾回收的原则是找到程序中不再使用,但是又没有进行释放的数据对象,然后回收这些数据对象所对应的内存资源。
在Java等类型安全的语言中,采用垃圾回收器(GC),进行垃圾回收。以Java为例,垃圾回收器的回收机制在Java虚拟机(Java Virtual Machine,JVM)中实现,对应用程序透明。Java虚拟机采用堆栈的结构管理内存,数据对象(包括数组)都被分配在堆上,垃圾回收器主要运行在堆上,监控每一个数据对象的运行状态,包括数据对象的申请、引用、被引用、赋值等。
Mark-Sweep方法是现有垃圾回收技术中使用的比较广泛的一种方法,在这种方法中,内存中的每个数据对象都会保留一个专门用来实现垃圾回收的标记位。Mark-Sweep方法将堆视为一张有向可达图,每个数据对象视为一个堆节点,根目录(Root Set)为程序中的各种变量,这些变量被分配在栈上,根目录中的节点称为根节点,从根节点出发,可以访问到程序中正在使用的全部数据对象,堆上剩余的其它数据对象即为在程序中不能再被使用的数据对象,其对应的内存资源即为垃圾块,可被释放回收。
Mark-Sweep方法的工作流程如下:
1、Mark阶段
从根节点出发,遍历有向可达图,标记每一个被遍历到的节点(该节点为可达的)所对应数据对象的标记位,表示该数据对象正在被程序使用。
2、Sweep阶段
扫面整个内存,如果数据对象的标记位没有被标记,说明在Mark阶段没有遍历到该节点(该节点为不可达的),该数据对象不再被程序使用,则回收该数据对象所占用的内存空间。如果数据对象的标记位被标记,则重置该标记位。Sweep阶段示意图如图1所示。
现有垃圾回收器的不足:
1、若采用Mark-Sweep方法,则需从根节点出发,从上而下的扫描方式,需要扫描程序的整个工作集,而且Sweep阶段需要再次扫描整个内存,开销比较大。
2、为了提高垃圾回收器的运行速度,减少对应用程序的影响,而且为了保证在垃圾回收器执行过程中不会因数据对象之间引用关系的变化而对垃圾回收器造成影响,很多垃圾回收器采用了Stop-The-World的工作方式,即在垃圾回收器运行的时候,需要暂停所有的应用程序。这样会对应用程序的性能有较大的影响。
3、在内存数量不足时才触发垃圾回收器进行垃圾回收的操作,此时由于应用程序已运行较长时间,内存中的数据对象数目较多,则需要较长的时间运行来扫描应用程序使用的数据对象,回收大量的垃圾块。
发明内容
为了解决上述问题,本发明的目的在于公开一种内存垃圾回收系统及方法,解决通过纯软件方式进行垃圾回收存在的需要多次访问内存,开销比较大,运行时间较长,而且会对应用程序产生较大影响的问题,提出一种高精度,低开销的内存垃圾回收方法。
具体地讲,本发明公开了一种内存垃圾回收系统,包含垃圾监控模块和垃圾分析模块,其中:
垃圾分析模块,用于记录内存分配和释放信息,查询页表获取物理地址信息,以确定每个数据对象是否存在于内存中,得到该数据对象对应的物理地址空间信息;并将该物理地址空间信息更新到垃圾监控模块中的数据对象监控列表,以确定垃圾监控模块数据对象监控列表中的数据对象对应的物理地址空间信息。
垃圾监控模块,用于维护该数据对象监控列表,将新分配的数据对象加入到数据对象监控列表;将删除的数据对象从数据对象监控列表中删除;并监控所有的访存请求,将访存关联到数据对象,更新数据对象的访问信息,并将这些访存请求关联到数据对象监控列表中的数据对象,更新这些数据对象的访问信息。
垃圾监控模块定期将数据对象访问信息反馈给垃圾分析模块,垃圾分析模块分析根据这些信息负责分析出可疑的内存垃圾块,并在可疑的垃圾块中确定真正的内存垃圾块,回收其内存空间。
所述内存垃圾回收系统的垃圾监控模块,还用于维护每个数据对象物理地址空间信息,进入监控列表的时间和访问时间信息以及维护数据对象的空闲时间计数信息。
所述内存垃圾回收系统的垃圾分析模块,用于只维护数据对象的分配、释放和引用信息。
所述内存垃圾回收系统的垃圾监控模块将数据对象访问信息反馈给垃圾分析模块,垃圾分析模块利用这些数据对象访问信息来先检测出可疑的内存垃圾块,然后在可疑的内存垃圾块中检测真正的内存垃圾块,回收其对应的内存资源,以提高垃圾回收的速度和检测内存垃圾的精度。
所述内存垃圾回收系统,该数据对象之间的引用采用双向指针。
所述内存垃圾回收系统的垃圾分析模块监控数据对象的内存分配和释放信息,包括数据对象的指针,起始地址,数据对象的大小和数据对象的创建时间戳信息,然后通过查询页表来将数据对象的虚拟地址信息转换为物理地址信息。
所述内存垃圾回收系统的垃圾监控模块侦听内存总线上的访存信号,获取该访存的物理地址,然后查询数据对象监控列表,将访存关联到数据对象,如果该访存为第一次访问某个数据对象,则记录该数据对象的第一次访问时间,否则更新数据对象的最后一次访问时间。
所述内存垃圾回收系统的垃圾监控模块通过访存监控卡或是在内存控制器内部增加逻辑单元实现侦听内存总线上的访存信号。
本发明还公开了一种内存垃圾回收方法,包括如下步骤:
步骤10、垃圾分析模块记录数据对象的内存分配和释放信息,然后通过查询页表将数据对象的虚拟地址空间信息转换为物理地址空间信息;
步骤20、垃圾分析模块将查询到的数据对象物理地址空间信息更新到垃圾监控模块的数据对象监控列表中;
步骤30、垃圾监控模块维护数据对象监控列表,如果是新分配的数据对象,则将其加入到数据对象监控列表中,如果是删除数据对象,则将数据对象从数据对象监控列表中删除;
步骤40、垃圾监控模块监控所有的访存请求,获取访存请求的物理地址,然后将该访存请求关联到数据对象监控列表中的数据对象,更新数据对象监控列表中数据对象的访问信息;
步骤50、垃圾监控模块定期将数据对象访问信息反馈给垃圾分析模块件,垃圾分析模块根据这些信息负责分析出可疑的内存垃圾块;
步骤60、垃圾分析模块确定可疑内存垃圾块中的内存垃圾,回收这些内存资源。
所述内存垃圾回收方法中,垃圾监控模块将数据对象访问信息反馈给垃圾分析模块,垃圾分析模块利用这些数据对象访问信息来先检测出可疑的内存垃圾块,然后在可疑的内存垃圾块中检测真正的内存垃圾块,回收其对应的内存资源,以提高垃圾回收的速度和检测内存垃圾的精度。
所述检测出可疑的内存垃圾块包括如下步骤:
垃圾分析模块根据该数据对象访问信息来分析数据对象最后一次访问到当前时间的时间长度,以及数据对象的最后一次访问和第一次访问的时间间隔,将数据对象的空闲时间较长,或是空闲时间和活动时间的比值超过阈值的数据对象设置为可疑的内存垃圾块。
所述内存垃圾回收方法,垃圾分析模块监控数据对象的内存分配和释放信息,包括数据对象的指针,起始地址,数据对象的大小和数据对象的创建时间戳信息,然后通过查询页表来将数据对象的虚拟地址信息转换为物理地址信息。
所述内存垃圾回收方法中,垃圾监控模块侦听内存总线上的访存信号,获取该访存的物理地址,然后查询数据对象监控列表,将访存关联到数据对象,如果该访存为第一次访问某个数据对象,则记录该数据对象的第一次访问时间,否则更新数据对象的最后一次访问时间。
所述内存垃圾回收方法中,垃圾监控模块通过访存监控卡或是在内存控制器内部增加逻辑单元实现侦听内存总线上的访存信号。
本发明的技术效果如下:
本发明使用垃圾分析模块记录数据对象的内存分配和释放信息,并通过查询页表来获得数据对象对应的物理地址空间信息,将该信息更新到垃圾监控模块的监控列表,这样便可获得垃圾监控模块的监控列表中数据对象对应的物理地址空间信息。垃圾监控模块监控所有的访存请求,将该请求关联到数据对象,便可通过监控访存请求来获得数据对象的访问信息,开销低而且可以监控所有的访存请求,获得所有线程数据对象的访问信息。最后垃圾分析模块根据垃圾监控模块返回的数据对象访问信息来探测内存垃圾块,速度块,准确性高,而且不用遍历整个内存和程序的整个工作集。
附图说明
图1为Sweep阶段示意图
图2为本发明技术实现方案;
图3为判断可疑内存垃圾块的策略;
图4为确定内存垃圾块示意图;
图5为软硬件结合回收内存垃圾流程图。
具体实施方式
本发明公开的内存垃圾回收系统,该系统包括垃圾监控模块和垃圾分析模块。
垃圾分析模块记录内存分配和释放信息,查询页表获取物理地址信息,以确定每个数据对象是否存在于内存中,得到该数据对象对应的物理地址空间信息。
垃圾分析模块将数据对象的物理地址空间信息更新到垃圾监控模块中的数据对象监控列表,以确定垃圾监控模块数据对象监控列表中的数据对象对应的物理地址空间信息。
垃圾监控模块维护数据对象监控列表,将新分配的数据对象加入到数据对象监控列表;将删除的数据对象从数据对象监控列表中删除。对每个数据对象,维护其物理地址空间信息;维护其进入监控列表的时间和访问时间等信息;维护数据对象的空闲时间计数信息,记录数据对象没被访问的时间。
垃圾监控模块监控所有的访存请求,将访存关联到数据对象,更新数据对象的访问信息。
垃圾分析模块不再维护数据对象的访问信息,只需维护数据对象的分配、释放和引用信息即可。由垃圾监控模块监控所有的访存请求,然后查询数据对象监控列表,将这些访存请求关联到具体的数据对象,更新这些数据对象的访问信息。
垃圾监控模块定期将数据对象访问信息反馈给垃圾分析模块,垃圾分析模块负责分析这些数据对象访问信息,根据这些信息首先确定可疑的内存垃圾块,然后在可疑的垃圾块中确定真正的内存垃圾块,回收其内存空间。
垃圾监控模块将数据对象访问信息反馈给垃圾分析模块,垃圾分析模块利用这些数据对象访问信息来先检测出可疑的内存垃圾块,然后在可疑的内存垃圾块中检测真正的内存垃圾块,回收其对应的内存资源。可以提高垃圾回收的速度和检测内存垃圾的精度,应用程序的执行不会对垃圾回收产生影响,因此不用暂停应用程序的执行;
数据对象之间的引用采用双向指针,即引用数据对象有指向被引用数据对象的指针,被引用数据对象也有指向引用数据对象的指针。这样可以从堆节点出发,确定一个堆节点是否是可达的,即可以确定一个可疑的内存垃圾块是否是真正的内存垃圾块。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图详细说明。
本发明的技术实现方案如图2所示:
垃圾分析模块监控数据对象的内存分配和释放信息,包括数据对象的指针,起始地址(虚拟地址),数据对象的大小和数据对象的创建时间戳等信息,然后通过查询页表来将数据对象的虚拟地址信息转换为物理地址信息。
垃圾分析模块将数据对象的这些信息更新到垃圾监控模块的数据对象监控列表中,如果是新建数据对象,则将数据对象加入到监控列表中,如果是删除数据对象,则将数据对象从监控列表中删除。通过垃圾监控模块来维护数据对象监控列表,对每个数据对象,需要维护其物理地址空间信息,维护数据对象进入监控列表的时间,最后一次访问时间等其它有助于判断该数据对象是否是内存垃圾块的信息。
垃圾监控模块侦听内存总线上的访存信号,获取该访存的物理地址,然后查询数据对象监控列表,将访存关联到数据对象,如果该访存为第一次访问某个数据对象,则记录该数据对象的第一次访问时间,否则更新数据对象的最后一次访问时间。侦听访存信号可以通过访存监控卡或是在内存控制器内部增加逻辑单元等方法实现。
垃圾监控模块将访问信息反馈给垃圾分析模块,垃圾分析模块根据这些信息来分析数据对象最后一次访问到当前时间的时间长度(即数据对象的空闲时间),以及数据对象的最后一次访问和第一次访问的时间间隔(即数据对象的活动时间),将数据对象的空闲时间较长,或是空闲时间和活动时间的比值(即数据对象的空闲限度)超过阈值的数据对象设置为可疑的内存垃圾块(称为Cold-Spot)。
一种判断可疑内存垃圾块的策略如图3所示,空闲时间的阈值和空闲限度的阈值可以根据情况灵活设定。
从可疑的内存垃圾块出发,确定这些可疑的内存垃圾块是否是内存垃圾,然后回收确定了的内存垃圾块。
确定内存垃圾块的策略如图4所示:将存储器视为一张双向可达图,为了实现这个目的,需要将数据对象之间的引用改为双向指针,即如果一个数据对象a引用了另外一个数据对象b时,该数据对象a有一个指向被引用数据对象b的指针,被引用数据对象b也有一个指向引用数据对象a的指针。这样便可以从可疑的内存垃圾块出发,对存储器进行遍历。可以遍历到根节点的节点为可达的(其对应的数据对象为应用程序正在使用的数据对象,不可回收),不能遍历到根节点的节点为不可达的(其对应的数据对象为应用程序不再使用的数据对象,为可回收的内存垃圾块)。最后将可回收的内存垃圾块加入到空闲链表中。
图5所示是本发明公开的一种内存垃圾回收方法的步骤:
步骤10、垃圾分析模块记录数据对象的内存分配和释放信息,然后通过查询页表将数据对象的虚拟地址空间信息转换为物理地址空间信息。
步骤20、垃圾分析模块将查询到的数据对象物理地址空间信息更新到垃圾监控模块的数据对象监控列表中。
步骤30、垃圾监控模块维护数据对象监控列表,如果是新分配的数据对象,则将其加入到数据对象监控列表中,如果是删除数据对象,则将数据对象从数据对象监控列表中删除。
步骤40、垃圾监控模块监控所有的访存请求,获取访存请求的物理地址,然后将该访存请求关联到数据对象监控列表中的数据对象,更新数据对象监控列表中数据对象的访问信息。
步骤50、垃圾监控模块定期将数据对象访问信息反馈给垃圾分析模块件,垃圾分析模块根据这些信息负责分析出可疑的内存垃圾块。
步骤60、垃圾分析模块确定可疑内存垃圾块中的内存垃圾,回收这些内存资源。
综上,本发明公开的垃圾回收方法提供垃圾分析模块和垃圾监控模块相结合的方式,实现低开销、运行时间较短的垃圾回收方法。
Claims (14)
1.一种内存垃圾回收系统,其特征在于,包含垃圾监控模块和垃圾分析模块,其中:
垃圾分析模块,用于记录内存分配和释放信息,查询页表获取物理地址信息,以确定每个数据对象是否存在于内存中,得到该数据对象对应的物理地址空间信息;并将该物理地址空间信息更新到垃圾监控模块中的数据对象监控列表,以确定垃圾监控模块数据对象监控列表中的数据对象对应的物理地址空间信息;
垃圾监控模块,用于维护该数据对象监控列表,将新分配的数据对象加入到数据对象监控列表;将删除的数据对象从数据对象监控列表中删除;并监控所有的访存请求,将访存关联到数据对象,更新数据对象的访问信息,并将这些访存请求关联到数据对象监控列表中的数据对象,更新这些数据对象的访问信息。
垃圾监控模块定期将数据对象访问信息反馈给垃圾分析模块,垃圾分析模块分析根据这些信息负责分析出可疑的内存垃圾块,并在可疑的垃圾块中确定真正的内存垃圾块,回收其内存空间。
2.如权利要求1所述内存垃圾回收系统,其特征在于,垃圾监控模块,还用于维护每个数据对象物理地址空间信息,进入监控列表的时间和访问时间信息以及维护数据对象的空闲时间计数信息。
3.如权利要求1所述内存垃圾回收系统,其特征在于,垃圾分析模块,用于只维护数据对象的分配、释放和引用信息。
4.如权利要求1所述内存垃圾回收系统,其特征在于,垃圾监控模块将数据对象访问信息反馈给垃圾分析模块,垃圾分析模块利用这些数据对象访问信息来先检测出可疑的内存垃圾块,然后在可疑的内存垃圾块中检测真正的内存垃圾块,回收其对应的内存资源,以提高垃圾回收的速度和检测内存垃圾的精度。
5.如权利要求1所述内存垃圾回收系统,其特征在于,该数据对象之间的引用采用双向指针。
6.如权利要求1所述内存垃圾回收系统,其特征在于,垃圾分析模块监控数据对象的内存分配和释放信息,包括数据对象的指针,起始地址,数据对象的大小和数据对象的创建时间戳信息,然后通过查询页表来将数据对象的虚拟地址信息转换为物理地址信息。
7.如权利要求1所述内存垃圾回收系统,其特征在于,垃圾监控模块侦听内存总线上的访存信号,获取该访存的物理地址,然后查询数据对象监控列表,将访存关联到数据对象,如果该访存为第一次访问某个数据对象,则记录该数据对象的第一次访问时间,否则更新数据对象的最后一次访问时间。
8.如权利要求7所述内存垃圾回收系统,其特征在于,垃圾监控模块通过访存监控卡或是在内存控制器内部增加逻辑单元实现侦听内存总线上的访存信号。
9.一种内存垃圾回收方法,其特征在于,包括如下步骤:
步骤10、垃圾分析模块记录数据对象的内存分配和释放信息,然后通过查询页表将数据对象的虚拟地址空间信息转换为物理地址空间信息;
步骤20、垃圾分析模块将查询到的数据对象物理地址空间信息更新到垃圾监控模块的数据对象监控列表中;
步骤30、垃圾监控模块维护数据对象监控列表,如果是新分配的数据对象,则将其加入到数据对象监控列表中,如果是删除数据对象,则将数据对象从数据对象监控列表中删除;
步骤40、垃圾监控模块监控所有的访存请求,获取访存请求的物理地址,然后将该访存请求关联到数据对象监控列表中的数据对象,更新数据对象监控列表中数据对象的访问信息;
步骤50、垃圾监控模块定期将数据对象访问信息反馈给垃圾分析模块件,垃圾分析模块根据这些信息负责分析出可疑的内存垃圾块;
步骤60、垃圾分析模块确定可疑内存垃圾块中的内存垃圾,回收这些内存资源。
10.如权利要求9所述内存垃圾回收方法,其特征在于,垃圾监控模块将数据对象访问信息反馈给垃圾分析模块,垃圾分析模块利用这些数据对象访问信息来先检测出可疑的内存垃圾块,然后在可疑的内存垃圾块中检测真正的内存垃圾块,回收其对应的内存资源,以提高垃圾回收的速度和检测内存垃圾的精度。
11.如权利要求10所述内存垃圾回收方法,其特征在于,所述检测出可疑的内存垃圾块包括如下步骤:
垃圾分析模块根据该数据对象访问信息来分析数据对象最后一次访问到当前时间的时间长度,以及数据对象的最后一次访问和第一次访问的时间间隔,将数据对象的空闲时间较长,或是空闲时间和活动时间的比值超过阈值的数据对象设置为可疑的内存垃圾块。
12.如权利要求9所述内存垃圾回收方法,其特征在于,垃圾分析模块监控数据对象的内存分配和释放信息,包括数据对象的指针,起始地址,数据对象的大小和数据对象的创建时间戳信息,然后通过查询页表来将数据对象的虚拟地址信息转换为物理地址信息。
13.如权利要求9所述内存垃圾回收方法,其特征在于,垃圾监控模块侦听内存总线上的访存信号,获取该访存的物理地址,然后查询数据对象监控列表,将访存关联到数据对象,如果该访存为第一次访问某个数据对象,则记录该数据对象的第一次访问时间,否则更新数据对象的最后一次访问时间。
14.如权利要求13所述内存垃圾回收方法,其特征在于,垃圾监控模块通过访存监控卡或是在内存控制器内部增加逻辑单元实现侦听内存总线上的访存信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310504532.4A CN103577335B (zh) | 2013-10-23 | 2013-10-23 | 一种内存垃圾回收系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310504532.4A CN103577335B (zh) | 2013-10-23 | 2013-10-23 | 一种内存垃圾回收系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103577335A true CN103577335A (zh) | 2014-02-12 |
CN103577335B CN103577335B (zh) | 2016-09-07 |
Family
ID=50049158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310504532.4A Active CN103577335B (zh) | 2013-10-23 | 2013-10-23 | 一种内存垃圾回收系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103577335B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870315A (zh) * | 2014-03-26 | 2014-06-18 | 中国联合网络通信集团有限公司 | 一种jvm能耗控制方法及装置 |
CN104063245A (zh) * | 2014-06-24 | 2014-09-24 | 用友优普信息技术有限公司 | 基于垃圾回收的内存分析优化方法及系统 |
CN106874121A (zh) * | 2017-03-01 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种虚拟机内存回收方法及装置 |
CN108073439A (zh) * | 2016-11-11 | 2018-05-25 | 深圳业拓讯通信科技有限公司 | 一种jvm内存泄露自动检测方法以及系统 |
CN108304145A (zh) * | 2018-01-30 | 2018-07-20 | 国科美国研究实验室 | 数据贮存装置的垃圾回收方法 |
CN108376101A (zh) * | 2018-01-23 | 2018-08-07 | 珠海金山网络游戏科技有限公司 | 一种Unity3D运行时资源管理方法和装置 |
CN108664390A (zh) * | 2017-03-31 | 2018-10-16 | 华为技术有限公司 | 一种内存泄露检测方法及设备 |
CN109426739A (zh) * | 2017-09-01 | 2019-03-05 | 龙芯中科技术有限公司 | 处理器和空指针攻击检测方法 |
CN109901908A (zh) * | 2017-12-11 | 2019-06-18 | 中国移动通信集团山西有限公司 | 销毁docker容器的方法、装置、设备和介质 |
WO2019137252A1 (zh) * | 2018-01-10 | 2019-07-18 | Oppo广东移动通信有限公司 | 内存处理方法、电子设备、计算机可读存储介质 |
CN110704176A (zh) * | 2019-08-19 | 2020-01-17 | 深圳英飞拓科技股份有限公司 | 系统堆残留内存的监测方法及装置 |
CN110928804A (zh) * | 2018-09-20 | 2020-03-27 | 阿里巴巴集团控股有限公司 | 垃圾回收的优化方法、装置、终端设备及机器可读介质 |
CN111309645A (zh) * | 2020-03-12 | 2020-06-19 | 上海交通大学 | 基于非易失性内存的新型混合内存垃圾回收方法及系统 |
CN112219196A (zh) * | 2018-06-25 | 2021-01-12 | 国际商业机器公司 | 表示用于无暂停垃圾收集的激活帧的方法和装置 |
CN113900743A (zh) * | 2021-09-24 | 2022-01-07 | 阿里云计算有限公司 | 一种Java对象访问的方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814049A (zh) * | 2010-03-23 | 2010-08-25 | 北京大学 | 一种内存泄漏探测方法 |
CN102262591A (zh) * | 2010-05-31 | 2011-11-30 | 国际商业机器公司 | 用于内存复制系统进行垃圾回收的方法和系统 |
CN102866953A (zh) * | 2011-07-08 | 2013-01-09 | 风网科技(北京)有限公司 | 存储管理系统及其存储管理方法 |
-
2013
- 2013-10-23 CN CN201310504532.4A patent/CN103577335B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814049A (zh) * | 2010-03-23 | 2010-08-25 | 北京大学 | 一种内存泄漏探测方法 |
CN102262591A (zh) * | 2010-05-31 | 2011-11-30 | 国际商业机器公司 | 用于内存复制系统进行垃圾回收的方法和系统 |
CN102866953A (zh) * | 2011-07-08 | 2013-01-09 | 风网科技(北京)有限公司 | 存储管理系统及其存储管理方法 |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870315B (zh) * | 2014-03-26 | 2017-05-31 | 中国联合网络通信集团有限公司 | 一种jvm能耗控制方法及装置 |
CN103870315A (zh) * | 2014-03-26 | 2014-06-18 | 中国联合网络通信集团有限公司 | 一种jvm能耗控制方法及装置 |
CN104063245A (zh) * | 2014-06-24 | 2014-09-24 | 用友优普信息技术有限公司 | 基于垃圾回收的内存分析优化方法及系统 |
CN108073439A (zh) * | 2016-11-11 | 2018-05-25 | 深圳业拓讯通信科技有限公司 | 一种jvm内存泄露自动检测方法以及系统 |
CN106874121A (zh) * | 2017-03-01 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种虚拟机内存回收方法及装置 |
CN108664390B (zh) * | 2017-03-31 | 2021-10-01 | 华为技术有限公司 | 一种内存泄露检测方法及设备 |
CN108664390A (zh) * | 2017-03-31 | 2018-10-16 | 华为技术有限公司 | 一种内存泄露检测方法及设备 |
CN109426739B (zh) * | 2017-09-01 | 2020-10-30 | 龙芯中科技术有限公司 | 处理器和空指针攻击检测方法 |
CN109426739A (zh) * | 2017-09-01 | 2019-03-05 | 龙芯中科技术有限公司 | 处理器和空指针攻击检测方法 |
CN109901908A (zh) * | 2017-12-11 | 2019-06-18 | 中国移动通信集团山西有限公司 | 销毁docker容器的方法、装置、设备和介质 |
WO2019137252A1 (zh) * | 2018-01-10 | 2019-07-18 | Oppo广东移动通信有限公司 | 内存处理方法、电子设备、计算机可读存储介质 |
CN108376101B (zh) * | 2018-01-23 | 2022-06-07 | 珠海金山网络游戏科技有限公司 | 一种Unity3D运行时资源管理方法和装置 |
CN108376101A (zh) * | 2018-01-23 | 2018-08-07 | 珠海金山网络游戏科技有限公司 | 一种Unity3D运行时资源管理方法和装置 |
CN108304145A (zh) * | 2018-01-30 | 2018-07-20 | 国科美国研究实验室 | 数据贮存装置的垃圾回收方法 |
CN112219196A (zh) * | 2018-06-25 | 2021-01-12 | 国际商业机器公司 | 表示用于无暂停垃圾收集的激活帧的方法和装置 |
CN112219196B (zh) * | 2018-06-25 | 2023-12-26 | 国际商业机器公司 | 表示用于无暂停垃圾收集的激活帧的方法和装置 |
CN110928804A (zh) * | 2018-09-20 | 2020-03-27 | 阿里巴巴集团控股有限公司 | 垃圾回收的优化方法、装置、终端设备及机器可读介质 |
CN110928804B (zh) * | 2018-09-20 | 2024-05-28 | 斑马智行网络(香港)有限公司 | 垃圾回收的优化方法、装置、终端设备及机器可读介质 |
CN110704176A (zh) * | 2019-08-19 | 2020-01-17 | 深圳英飞拓科技股份有限公司 | 系统堆残留内存的监测方法及装置 |
CN111309645A (zh) * | 2020-03-12 | 2020-06-19 | 上海交通大学 | 基于非易失性内存的新型混合内存垃圾回收方法及系统 |
CN111309645B (zh) * | 2020-03-12 | 2023-06-27 | 上海交通大学 | 基于非易失性内存的新型混合内存垃圾回收方法及系统 |
CN113900743A (zh) * | 2021-09-24 | 2022-01-07 | 阿里云计算有限公司 | 一种Java对象访问的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103577335B (zh) | 2016-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103577335A (zh) | 一种内存垃圾回收系统及方法 | |
US6148310A (en) | Method for combining card marking with remembered sets for old area of a memory heap | |
US6865585B1 (en) | Method and system for multiprocessor garbage collection | |
US10261913B2 (en) | Persistent memory for key-value storage | |
EP3254210B1 (en) | Big data statistics at data-block level | |
EP3155522B1 (en) | Precisely tracking memory usage in multi-process computing environment | |
US9715519B2 (en) | Managing updates to multiple sets of metadata pertaining to a memory | |
US7937419B2 (en) | Garbage collection via multiobjects | |
US9448927B1 (en) | System and methods for removing obsolete data in a distributed system of hybrid storage and compute nodes | |
CN103150258B (zh) | 一种固态存储系统的写入、读取及垃圾收集方法 | |
US8185880B2 (en) | Optimizing heap memory usage | |
US9940040B2 (en) | Systems, solid-state mass storage devices, and methods for host-assisted garbage collection | |
EP2754054B1 (en) | Managing object lifetime in a cyclic graph | |
CN104317800A (zh) | 一种海量智能用电数据混合存储系统及方法 | |
US20130166828A1 (en) | Data update apparatus and method for flash memory file system | |
CN107391391A (zh) | 在固态硬盘的ftl实现数据拷贝的方法、系统及固态硬盘 | |
CN110309233A (zh) | 数据存储的方法、装置、服务器和存储介质 | |
WO2016101145A1 (zh) | 一种控制器、识别数据块稳定性的方法和存储系统 | |
Dayan et al. | GeckoFTL: Scalable flash translation techniques for very large flash devices | |
Zhao et al. | Low-latency, high-throughput garbage collection | |
Ma et al. | Mako: A low-pause, high-throughput evacuating collector for memory-disaggregated datacenters | |
Yang et al. | Ars: Reducing f2fs fragmentation for smartphones using decision trees | |
CN112783711A (zh) | NodeJS上程序内存分析的方法、存储介质 | |
CN108959614A (zh) | 一种快照管理方法、系统、装置、设备及可读存储介质 | |
CN108829345A (zh) | 日志文件的数据处理方法和终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |