CN104951370A - 一种内存管理方法及装置 - Google Patents
一种内存管理方法及装置 Download PDFInfo
- Publication number
- CN104951370A CN104951370A CN201510295719.7A CN201510295719A CN104951370A CN 104951370 A CN104951370 A CN 104951370A CN 201510295719 A CN201510295719 A CN 201510295719A CN 104951370 A CN104951370 A CN 104951370A
- Authority
- CN
- China
- Prior art keywords
- application module
- memory block
- module user
- memory
- chained list
- 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
Landscapes
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种内存管理方法及装置,用以当存在内存泄露时,可以快速恢复泄露的内存,避免由于内存泄露导致单板故障、业务异常。所述内存管理方法,包括:当接收到应用模块用户申请内存的请求消息时,根据该请求消息为所述应用模块用户分配一个内存块,并且建立该内存块被该应用模块用户占用的记录信息;当确定需要释放为所述应用模块用户分配的任一内存块时,释放该内存块,并且删除该内存块被该应用模块用户占用的记录信息;当需要释放所述应用模块用户时,若确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息,则释放该记录信息中记录的被该应用模块用户占用的内存块,并且删除该内存块被该应用模块用户占用的记录信息。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种内存管理方法及装置。
背景技术
通信系统中在进行业务传输或小区切换时,网络设备中应用模块用户将会频繁的进行接入与删除,每个应用模块用户需要维护多个协议实体的信息,涉及多项业务流程的建立与删除,在业务建立时,需要在网络设备中为该业务申请内存块,在该业务删除时,需要在网络设备中释放为该业务申请的内存块,当由于程序错误或其它原因导致某业务申请的内存块未能释放时,就出现了内存泄露,当内存泄露较多时,容易导致单板故障,业务异常等重大问题,并且这些问题难于定位,软件规模越大,越难定位。
现有技术中针对内存泄露,主要有以下几种解决方案:
方案一:针对特定操作系统提出的内存泄漏保护方法,例如:vxWorks,Linux;选用Java开发环境,Java有垃圾回收机制,可以很大程度避免内存泄漏情况发生。该方案仅针对特定操作系统,有局限性,Java可以从底层机制防止内存泄漏,但效率慢,网络设备一般不使用Java。
方案二:增加内存管理模块,添加一些统计,事件,日志等信息,由这些信息定位内存泄漏问题。该方案中泄漏内存不能自恢复,需要通过记录信息分析原因,然后打补丁解决问题。
方案三:内存管理模块给每个在用内存块增加时间标签,如果某个内存块使用时间超过某个设置的时长门限,则判断该内存已泄漏,强制释放。该方案中时长门限难以确定,有些场景内存块可能占用较长时间或一直占用,例如:无线网络设备里的小区内存资源,而且该方案释放内存有滞后性,泄漏内存需要等待时长门限后才能释放。
综上所述,现有技术提供的三种方案均不能用于解决网络设备中的内存泄露问题,网络设备中应用模块用户频繁接入与删除,每一应用模块用户均涉及多项业务的建立与删除,在业务删除过程中由于程序错误或其它原因导致应用模块用户的某些业务申请的内存块未能释放,从而出现内存泄露,进而导致单板故障、业务异常,影响网络设备的正常使用。
发明内容
本发明实施例提供了一种内存管理方法及装置,用以当存在内存泄露时,可以快速恢复泄露的内存,避免由于内存泄露导致单板故障、业务异常。
本发明实施例提供的一种内存管理方法,该方法包括:当接收到应用模块用户申请内存的请求消息时,根据该请求消息为所述应用模块用户分配一个内存块,并且建立该内存块被该应用模块用户占用的记录信息;当确定需要释放为所述应用模块用户分配的任一内存块时,释放该内存块,并且删除该内存块被该应用模块用户占用的记录信息;当需要释放所述应用模块用户时,若确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息,则释放该记录信息中记录的被该应用模块用户占用的内存块,并且删除该内存块被该应用模块用户占用的记录信息。
本发明实施例提供的上述方法中,接收到应用模块用户申请内存的请求消息时,根据该请求消息为应用模块用户分配一个内存块,建立该内存块被该应用模块用户占用的记录信息,当确定需要释放该内存块时,释放该内存块,并且删除该内存块被该应用模块用户占用的记录信息,则当需要释放应用模块用户时,若确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息,则确定该应用模块用户对应的内存块未能完全释放,发生内存泄露,则释放该记录信息中记录的被该应用模块用户占用的内存块,恢复泄露的内存,与现有技术中由于程序错误或其它原因导致应用模块用户的某些业务申请的内存块未能释放而引起内存泄露,进而导致单板故障、业务异常相比,当需要释放应用模块用户时,若确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息,则释放该记录信息中记录的被该应用模块用户占用的内存块,也即检测到内存泄露时,及时释放泄露的内存,避免由于内存泄露导致单板故障、业务异常,而且实现简单高效。
在一种可能的实施方式中,本发明实施例提供的上述方法中,所述根据该请求消息为所述应用模块用户分配一个内存块,并且建立该内存块被该应用模块用户占用的记录信息,具体包括:针对为该应用模块用户分配的每一内存块:在预设的内存管理链表中存储所述应用模块用户标识与该内存块属性信息之间的对应关系,其中,所述内存管理链表中的表项与内存块一一对应,用于记录每一内存块被应用模块用户占用的记录信息,所述内存块属性信息包括内存块的标识和地址信息。
在一种可能的实施方式中,本发明实施例提供的上述方法中,所述内存管理链表中包括忙链表和闲链表,当为应用模块用户分配一内存块时,从所述闲链表中获取一表项存储该内存块被该应用模块用户占用的记录信息,并添加到所述忙链表中。
在一种可能的实施方式中,本发明实施例提供的上述方法中,在从所述闲链表中获取一表项存储该内存块被该应用模块用户占用的记录信息之后,该方法还包括:在预先存储的内存关系表中存储所述表项标识与内存块标识之间的对应关系;当确定需要释放为所述应用模块用户分配的任一内存块时,释放该内存块,并且删除该内存块被该应用模块用户占用的记录信息,具体包括:当确定需要释放为所述应用模块用户分配的任一内存块时,释放该内存块,并根据所述内存关系表以及该内存块标识,确定该内存块标识对应的表项,删除该表项中存储的该内存块被该应用模块用户占用的记录信息;然后,将该表项添加到闲链表中。
在一种可能的实施方式中,本发明实施例提供的上述方法中,通过如下方式确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息:当所述内存管理链表的忙链表中存在所述应用模块用户标识与内存块属性信息之间的对应关系时,确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息。
在一种可能的实施方式中,本发明实施例提供的上述方法中,所述忙链表的每一表项中还记录有应用模块用户申请的内存块所处理的业务信息;所述确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息之后,该方法还包括:将记录有该记录信息的表项中记录的应用模块用户申请的内存块所处理的业务信息进行转存。
本发明实施例提供的上述方法中,在忙链表的每一表项中记录应用模块用户申请的内存块所处理的业务信息,当需要释放应用模块用户时,若忙链表中任一表项中仍然存储有该应用模块用户对应的内存块被该应用模块用户占用的记录信息,则该应用模块用户占用的内存块存在内存泄露,则将该记录有记录信息的表项中记录的应用模块用户申请的内存块所处理的业务信息进行转存,便于后续内存泄露定位。
在一种可能的实施方式中,本发明实施例提供的上述方法中,预先设置多个内存管理链表,并且,该方法还包括:当接入多个应用模块用户时,对所述多个应用模块用户进行分组,得到多个应用模块用户组,建立所述应用模块用户组与内存管理链表之间的映射关系;通过如下方式确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息:确定该应用模块用户所在的应用模块用户组,并根据所述映射关系,确定所述应用模块用户对应的内存管理链表,当确定该内存管理链表的忙链表中存在所述应用模块用户标识与内存块属性信息之间的对应关系时,确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息。
本发明实施例提供的上述方法中,当预先设置多个内存管理链表,并且接入的应用模块用户为多个时,对多个应用模块用户进行分组,得到多个应用模块用户组,建立应用模块用户组与内存管理链表之间的映射关系,则可以通过如下方式确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息:确定该应用模块用户所在的应用模块用户组,并根据所述映射关系,确定应用模块用户对应的内存管理链表,当确定该内存管理链表的忙链表中存在应用模块用户标识与内存块属性信息之间的对应关系时,确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息,确定应用模块用户所在的应用模块用户组,并根据映射关系确定该应用模块用户组对应的内存管理链表,在该内存管理链表中的忙链表中查找是否存在应用模块用户标识与内存块属性信息之间的对应关系,从而避免在预先设置的多个内存管理链表中查找是否存在应用模块用户标识与内存块属性信息之间的对应关系,缩小内存泄露的检测范围,提高内存泄露的检测效率。
本发明实施例提供的一种内存管理装置,包括:内存分配单元,用于当接收到应用模块用户申请内存的请求消息时,根据该请求消息为所述应用模块用户分配一个内存块,并且建立该内存块被该应用模块用户占用的记录信息;内存释放单元,连接至所述内存分配单元,用于当确定需要释放为所述应用模块用户分配的任一内存块时,释放该内存块,并且删除该内存块被该应用模块用户占用的记录信息;处理单元,连接至所述内存分配单元和所述内存释放单元,用于当需要释放所述应用模块用户时,若确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息,则释放该记录信息中记录的被该应用模块用户占用的内存块,并且删除该内存块被该应用模块用户占用的记录信息。
本发明实施例提供的上述装置中,接收到应用模块用户申请内存的请求消息时,根据该请求消息为应用模块用户分配一个内存块,建立该内存块被该应用模块用户占用的记录信息,当确定需要释放该内存块时,释放该内存块,并且删除该内存块被该应用模块用户占用的记录信息,则当需要释放应用模块用户时,若确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息,则确定该应用模块用户对应的内存块未能完全释放,发生内存泄露,则释放该记录信息中记录的被该应用模块用户占用的内存块,恢复泄露的内存,与现有技术中由于程序错误或其它原因导致应用模块用户的某些业务申请的内存块未能释放而引起内存泄露,进而导致单板故障、业务异常相比,当需要释放应用模块用户时,若确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息,则释放该记录信息中记录的被该应用模块用户占用的内存块,也即检测到内存泄露时,及时释放泄露的内存,避免由于内存泄露导致单板故障、业务异常,而且实现简单高效。
在一种可能的实施方式中,本发明实施例提供的上述装置中,所述内存分配单元根据该请求消息为所述应用模块用户分配一个内存块,并且建立该内存块被该应用模块用户占用的记录信息,具体用于:针对为该应用模块用户分配的每一内存块:所述内存分配单元在预设的内存管理链表中存储所述应用模块用户标识与该内存块属性信息之间的对应关系,其中,所述内存管理链表中的表项与内存块一一对应,用于记录每一内存块被应用模块用户占用的记录信息,所述内存块属性信息包括内存块的标识和地址信息。
在一种可能的实施方式中,本发明实施例提供的上述装置中,所述内存管理链表中包括忙链表和闲链表,当所述内存分配单元为应用模块用户分配一内存块时,从所述闲链表中获取一表项存储该内存块被该应用模块用户占用的记录信息,并添加到所述忙链表中。
在一种可能的实施方式中,本发明实施例提供的上述装置中,所述内存分配单元从所述闲链表中获取一表项存储该内存块被该应用模块用户占用的记录信息之后,还用于:在预先存储的内存关系表中存储所述表项标识与内存块标识之间的对应关系;所述内存释放单元具体用于:当确定需要释放为所述应用模块用户分配的任一内存块时,释放该内存块,并根据所述内存关系表以及该内存块标识,确定该内存块标识对应的表项,删除该表项中存储的该内存块被该应用模块用户占用的记录信息;然后,将该表项添加到闲链表中。
在一种可能的实施方式中,本发明实施例提供的上述装置中,所述处理单元通过如下方式确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息:当所述处理单元确定所述内存管理链表的忙链表中存在所述应用模块用户标识与内存块属性信息之间的对应关系时,所述处理单元确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息。
在一种可能的实施方式中,本发明实施例提供的上述装置中,所述内存分配单元还用于:在所述忙链表的每一表项中记录应用模块用户申请的内存块所处理的业务信息;所述处理单元确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息之后,还用于:将记录有该记录信息的表项中记录的应用模块用户申请的内存块所处理的业务信息进行转存。
本发明实施例提供的上述装置中,在忙链表的每一表项中记录应用模块用户申请的内存块所处理的业务信息,当需要释放应用模块用户时,若忙链表中任一表项中仍然存储有该应用模块用户对应的内存块被该应用模块用户占用的记录信息,则该应用模块用户占用的内存块存在内存泄露,则将该记录有记录信息的表项中记录的应用模块用户申请的内存块所处理的业务信息进行转存,便于后续内存泄露定位。
在一种可能的实施方式中,本发明实施例提供的上述装置中,预先设置多个内存管理链表,并且,所述处理单元还用于:当接入多个应用模块用户时,对所述多个应用模块用户进行分组,得到多个应用模块用户组,建立所述应用模块用户组与内存管理链表之间的映射关系;所述处理单元通过如下方式确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息:所述处理单元确定该应用模块用户所在的应用模块用户组,并根据所述映射关系,确定所述应用模块用户对应的内存管理链表,当确定该内存管理链表的忙链表中存在所述应用模块用户标识与内存块属性信息之间的对应关系时,确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息。
本发明实施例提供的上述装置中,当预先设置多个内存管理链表,并且接入的应用模块用户为多个时,对多个应用模块用户进行分组,得到多个应用模块用户组,建立应用模块用户组与内存管理链表之间的映射关系,则可以通过如下方式确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息:确定该应用模块用户所在的应用模块用户组,并根据所述映射关系,确定应用模块用户对应的内存管理链表,当确定该内存管理链表的忙链表中存在应用模块用户标识与内存块属性信息之间的对应关系时,确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息,确定应用模块用户所在的应用模块用户组,并根据映射关系确定该应用模块用户组对应的内存管理链表,在该内存管理链表中的忙链表中查找是否存在应用模块用户标识与内存块属性信息之间的对应关系,从而避免在预先设置的多个内存管理链表中查找是否存在应用模块用户标识与内存块属性信息之间的对应关系,缩小内存泄露的检测范围,提高内存泄露的检测效率。
附图说明
图1为本发明实施例提供的一种内存管理方法的示意流程图;
图2A-图2F为本发明实施例提供的内存管理链表的工作原理示意图;
图3为本发明实施例提供的一种内存管理装置的结构示意图。
具体实施方式
下面结合附图,对本发明实施例提供的一种内存管理方法及装置的具体实施方式进行详细地说明。
本发明实施例提供的一种内存管理方法,如图1所示,该方法包括:
步骤102,当接收到应用模块用户申请内存的请求消息时,根据该请求消息为该应用模块用户分配一个内存块,并且建立该内存块被该应用模块用户占用的记录信息;
步骤104,当确定需要释放为该应用模块用户分配的任一内存块时,释放该内存块,并且删除该内存块被该应用模块用户占用的记录信息;
步骤106,当需要释放该应用模块用户时,若确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息,则释放该记录信息中记录的被该应用模块用户占用的内存块,并且删除该内存块被该应用模块用户占用的记录信息。
当然,当需要释放该应用模块用户时,若确定不存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息,则表明该应用模块用户占用的内存块已全部释放,未发生内存泄露,其中,应用模块用户包括任一接入设备中应用模块的用户。
本发明实施例提供的方法中,接收到应用模块用户申请内存的请求消息时,根据该请求消息为应用模块用户分配一个内存块,建立该内存块被该应用模块用户占用的记录信息,当确定需要释放该内存块时,释放该内存块,并且删除该内存块被该应用模块用户占用的记录信息,则当需要释放应用模块用户时,若确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息,则确定该应用模块用户对应的内存块未能完全释放,发生内存泄露,则释放该记录信息中记录的被该应用模块用户占用的内存块,恢复泄露的内存,与现有技术中由于程序错误或其它原因导致应用模块用户的某些业务申请的内存块未能释放而引起内存泄露,进而导致单板故障、业务异常相比,当需要释放应用模块用户时,若确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息,则释放该记录信息中记录的被该应用模块用户占用的内存块,也即检测到内存泄露时,及时释放泄露的内存,避免由于内存泄露导致单板故障、业务异常,而且实现简单高效。
具体实施时,根据接收到的应用模块用户申请内存的请求消息为应用模块用户分配一个内存块,该内存块包括内存空间中的动态内存,该一个内存块可以是同一应用模块用户的同一业务、流程或协议实体申请的,但对于每一内存块,均需要建立该内存块被该应用模块用户占用的记录信息。需要说明的是,为应用模块用户分配内存块之后,需要把分配的内存块的指针信息返回给应用模块用户,以便应用模块用户使用。
在一种可能的实施方式中,本发明实施例提供的方法中,根据该请求消息为应用模块用户分配一个内存块,并且建立该内存块被该应用模块用户占用的记录信息,具体包括:针对为该应用模块用户分配的每一内存块:在预设的内存管理链表中存储应用模块用户标识与该内存块属性信息之间的对应关系,其中,内存管理链表中的表项与内存块一一对应,用于记录每一内存块被应用模块用户占用的记录信息,内存块属性信息包括内存块的标识和地址信息。
具体实施时,预设的内存管理链表中包括一个表项,该表项与内存块一一对应,用于记录每一内存块被应用模块用户占用的记录信息,也即存储应用模块用户标识与该内存块属性信息之间的对应关系,值得说明的是,应用模块用户标识可以在应用模块用户接入时获取,应用模块用户标识可以是应用模块用户的序列号、手机号码或者接入时生成的序号等等,内存块的属性信息包括内存块标识和地址信息,当为应用模块用户分配内存块时,可以获取内存块标识和地址信息,该内存块标识可以是对内存块的编号,该地址信息可以是内存块的指针信息。
在一种可能的实施方式中,本发明实施例提供的方法中,内存管理链表中包括忙链表和闲链表,当为应用模块用户分配一内存块时,从闲链表中获取一表项存储该内存块被该应用模块用户占用的记录信息,并添加到忙链表中。
下面结合图2A-图2F对本发明实施例的内存管理链表的工作原理进行详细说明,具体来说:
如图2A所示,作为较为具体的实施例,内存管理链表包括5个表项,分别为:表项1、表项2、表项3、表项4、表项5,首先初始化内存管理链表,也即图2A中所示的5个表项均为闲链表。
如图2B所示,当为应用模块用户分配第一块内存块时,则从闲链表中获取一表项(图2B中的表项1)存储该内存块被该应用模块用户占用的记录信息,并添加到忙链表中。
如图2C所示,当为应用模块用户分配第二块内存块时,则从闲链表中获取一表项(图2C中的表项2)存储该内存块被该应用模块用户占用的记录信息,并添加到忙链表中。
如图2D所示,当为应用模块用户分配第三块内存块时,则从闲链表中获取一表项(图2D中的表项3)存储该内存块被该应用模块用户占用的记录信息,并添加到忙链表中。
如图2E所示,当确定需要释放为该应用模块用户分配的第二块内存块时,释放该内存块,并且删除表项2中存储的该内存块被该应用模块用户占用的记录信息。
如图2F所示,当删除表项2中存储的该第二块内存块被该应用模块用户占用的记录信息之后,作为较为优选的实施例,将表项2移动至闲链表的末尾,也即表项5的后面。
在一种可能的实施方式中,本发明实施例提供的方法中,在从闲链表中获取一表项存储该内存块被该应用模块用户占用的记录信息之后,该方法还包括:在预先存储的内存关系表中存储表项标识与内存块标识之间的对应关系;当确定需要释放为应用模块用户分配的任一内存块时,释放该内存块,并且删除该内存块被该应用模块用户占用的记录信息,具体包括:当确定需要释放为应用模块用户分配的任一内存块时,释放该内存块,并根据内存关系表以及该内存块标识,确定该内存块标识对应的表项,删除该表项中存储的该内存块被该应用模块用户占用的记录信息;然后,将该表项添加到闲链表中。
具体实施时,在从闲链表中获取一表项存储该内存块被该应用模块用户占用的记录信息之后,在预先存储的内存关系表中存储表项标识与内存块标识之间的对应关系,则在确定需要释放任一内存块时,释放该内存块,并根据该内存块标识与内存关系表查找确定该内存块标识对应的表项,删除该内存块被该应用模块用户占用的记录信息,也即删除该表项中存储的应用模块用户标识与内存块属性信息之间的对应关系。
当然,本领域技术人员应当理解的是,在确定需要释放任一内存块时,释放该内存块,并且删除该内存块被该应用模块用户占用的记录信息,其中,删除该内存块被该应用模块用户占用的记录信息的方法还有很多,例如:以内存块的地址信息为索引,在内存管理链表中进行查找,确定记录该内存块地址信息的表项,删除该表项中存储的应用模块用户标识与内存块属性信息之间的对应关系,也即删除该内存块被该应用模块用户占用的记录信息。
在一种可能的实施方式中,本发明实施例提供的方法中,通过如下方式确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息:当内存管理链表的忙链表中存在应用模块用户标识与内存块属性信息之间的对应关系时,确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息。
具体实施时,由于内存管理链表的忙链表中的表项存储应用模块用户标识与内存块属性信息之间的对应关系,因此,当内存管理链表的忙链表中存在应用模块用户标识与内存块属性信息之间的对应关系时,则确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息,也即该应用模块用户占用的内存块未完全释放,存在内存泄露。
在一种可能的实施方式中,本发明实施例提供的方法中,忙链表的每一表项中还记录有应用模块用户申请的内存块所处理的业务信息;确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息之后,该方法还包括:将记录有该记录信息的表项中记录的应用模块用户申请的内存块所处理的业务信息进行转存。
本发明实施例提供的方法中,在忙链表的每一表项中记录应用模块用户申请的内存块所处理的业务信息,当需要释放应用模块用户时,若忙链表中任一表项中仍然存储有该应用模块用户对应的内存块被该应用模块用户占用的记录信息,则该应用模块用户占用的内存块存在内存泄露,则将该记录有记录信息的表项中记录的应用模块用户申请的内存块所处理的业务信息进行转存,例如:存储到预先设置的存储器中,便于后续内存泄露定位。其中,值得说明的是,本发明实施例中的业务信息包括业务的文件位置,例如:文件名和行号。
具体实施时,若预先设置多个内存管理链表,则通过在内存管理链表的忙链表中查找是否存在应用模块用户标识与内存块属性信息之间的对应关系,确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息时,需要在预先设置的多个内存管理链表中逐一查找,需要消耗较多的资源,作为较为优选的实施例,在一种可能的实施方式中,本发明实施例提供的方法中,预先设置多个内存管理链表,并且,该方法还包括:当接入多个应用模块用户时,对所述多个应用模块用户进行分组,得到多个应用模块用户组,建立所述应用模块用户组与内存管理链表之间的映射关系;通过如下方式确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息:确定该应用模块用户所在的应用模块用户组,并根据所述映射关系,确定所述应用模块用户对应的内存管理链表,当确定该内存管理链表的忙链表中存在所述应用模块用户标识与内存块属性信息之间的对应关系时,确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息。
本发明实施例提供的方法中,当预先设置多个内存管理链表,并且接入的应用模块用户为多个时,对多个应用模块用户进行分组,得到多个应用模块用户组,建立应用模块用户组与内存管理链表之间的映射关系,则可以通过如下方式确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息:确定该应用模块用户所在的应用模块用户组,并根据映射关系,确定应用模块用户对应的内存管理链表,当确定该内存管理链表的忙链表中存在应用模块用户标识与内存块属性信息之间的对应关系时,确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息,确定应用模块用户所在的应用模块用户组,并根据映射关系确定该应用模块用户组对应的内存管理链表,在该内存管理链表中的忙链表中查找是否存在应用模块用户标识与内存块属性信息之间的对应关系,从而避免在预先设置的多个内存管理链表中查找是否存在应用模块用户标识与内存块属性信息之间的对应关系,缩小内存泄露的检测范围,提高内存泄露的检测效率。
当然,本领域技术人员应当理解的是,对多个应用模块用户进行分组,得到多个应用模块用户组的方法有很多,例如:应用模块用户标识模值相同、应用模块用户标识对同一数值求余的余数相同等等,而在本发明的其它实施例中,也可以不对应用模块用户进行分组,直接建立应用模块用户与内存管理链表之间的映射关系。
作为较为具体的实施例,假设有100个应用模块用户,编号为0~99,也即应用模块用户标识为0~99,10个内存管理链表,编号为0~9,则可以根据应用模块用户标识将应用模块用户分为10个应用模块用户组,例如:采用应用模块用户标识对分组个数取模,模值一样的分在同一应用模块用户组中,则应用模块用户0~9为应用模块用户组0、应用模块用户10~19为应用模块用户组1、依次类推,应用模块用户90~99为应用模块用户组9,然后,建立应用模块用户组与内存管理链表之间的映射关系,本实施例在应用模块用户组和内存管理链表之间建立一一对应关系,例如:应用模块用户组0与内存管理链表0对应,应用模块用户组1与内存管理链表1对应,依次类推,应用模块用户组9与内存管理链表9对应。
以应用模块用户54为例,通过如下方式确定还存在应用模块用户54对应的内存块被该应用模块用户占用的记录信息:应用模块用户标识为54,确定该应用模块用户所在的应用模块用户组为应用模块用户组5,应用模块用户组5对应的内存管理链表为内存管理链表5,当确定内存管理链表5的忙链表中存在应用模块用户54与内存块属性信息之间的对应关系时,确定还存在应用模块用户54对应的内存块被应用模块用户54占用的记录信息,不需要在10个内存管理链表中逐个确定,可以直接在内存管理链表5中确定应用模块用户标识与内存块属性信息之间的对应关系,缩小内存泄露的检测范围,提高内存泄露的检测效率。
本发明实施例提供的一种内存管理装置,如图3所示,包括:内存分配单元302,用于当接收到应用模块用户申请内存的请求消息时,根据该请求消息为应用模块用户分配一个内存块,并且建立该内存块被该应用模块用户占用的记录信息;内存释放单元304,连接至内存分配单元302,用于当确定需要释放为应用模块用户分配的任一内存块时,释放该内存块,并且删除该内存块被该应用模块用户占用的记录信息;处理单元306,连接至内存分配单元302和内存释放单元304,用于当需要释放应用模块用户时,若确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息,则释放该记录信息中记录的被该应用模块用户占用的内存块,并且删除该内存块被该应用模块用户占用的记录信息。
本发明实施例提供的装置中,接收到应用模块用户申请内存的请求消息时,根据该请求消息为应用模块用户分配一个内存块,建立该内存块被该应用模块用户占用的记录信息,当确定需要释放该内存块时,释放该内存块,并且删除该内存块被该应用模块用户占用的记录信息,则当需要释放应用模块用户时,若确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息,则确定该应用模块用户对应的内存块未能完全释放,发生内存泄露,则释放该记录信息中记录的被该应用模块用户占用的内存块,恢复泄露的内存,与现有技术中由于程序错误或其它原因导致应用模块用户的某些业务申请的内存块未能释放而引起内存泄露,进而导致单板故障、业务异常相比,当需要释放应用模块用户时,若确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息,则释放该记录信息中记录的被该应用模块用户占用的内存块,也即检测到内存泄露时,及时释放泄露的内存,避免由于内存泄露导致单板故障、业务异常,而且实现简单高效。
在一种可能的实施方式中,本发明实施例提供的装置中,内存分配单元302根据该请求消息为应用模块用户分配一个内存块,并且建立该内存块被该应用模块用户占用的记录信息,具体用于:针对为该应用模块用户分配的每一内存块:内存分配单元302在预设的内存管理链表中存储应用模块用户标识与该内存块属性信息之间的对应关系,其中,内存管理链表中的表项与内存块一一对应,用于记录每一内存块被应用模块用户占用的记录信息,内存块属性信息包括内存块的标识和地址信息。
在一种可能的实施方式中,本发明实施例提供的装置中,内存管理链表中包括忙链表和闲链表,当内存分配单元302为应用模块用户分配一内存块时,从闲链表中获取一表项存储该内存块被该应用模块用户占用的记录信息,并添加到忙链表中。
在一种可能的实施方式中,本发明实施例提供的装置中,内存分配单元302从闲链表中获取一表项存储该内存块被该应用模块用户占用的记录信息之后,还用于:在预先存储的内存关系表中存储表项标识与内存块标识之间的对应关系;内存释放单元304具体用于:当确定需要释放为应用模块用户分配的任一内存块时,释放该内存块,并根据内存关系表以及该内存块标识,确定该内存块标识对应的表项,删除该表项中存储的该内存块被该应用模块用户占用的记录信息;然后,将该表项添加到闲链表中。
在一种可能的实施方式中,本发明实施例提供的装置中,处理单元306通过如下方式确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息:当处理单元306确定内存管理链表的忙链表中存在应用模块用户标识与内存块属性信息之间的对应关系时,处理单元306确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息。
在一种可能的实施方式中,本发明实施例提供的装置中,内存分配单元302还用于:在忙链表的每一表项中记录应用模块用户申请的内存块所处理的业务信息;处理单元306确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息之后,还用于:将记录有该记录信息的表项中记录的应用模块用户申请的内存块所处理的业务信息进行转存。
本发明实施例提供的装置中,在忙链表的每一表项中记录应用模块用户申请的内存块所处理的业务信息,当需要释放应用模块用户时,若忙链表中任一表项中仍然存储有该应用模块用户对应的内存块被该应用模块用户占用的记录信息,则该应用模块用户占用的内存块存在内存泄露,则将该记录有记录信息的表项中记录的应用模块用户申请的内存块所处理的业务信息进行转存,便于后续内存泄露定位。
在一种可能的实施方式中,本发明实施例提供的装置中,预先设置多个内存管理链表,并且,处理单元306还用于:当接入多个应用模块用户时,对多个应用模块用户进行分组,得到多个应用模块用户组,建立应用模块用户组与内存管理链表之间的映射关系;处理单元306通过如下方式确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息:处理单元306确定该应用模块用户所在的应用模块用户组,并根据应用模块用户组与内存管理链表之间的映射关系,确定应用模块用户对应的内存管理链表,当确定该内存管理链表的忙链表中存在该应用模块用户标识与内存块属性信息之间的对应关系时,确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息。
本发明实施例提供的装置中,当预先设置多个内存管理链表,并且接入的应用模块用户为多个时,对多个应用模块用户进行分组,得到多个应用模块用户组,建立应用模块用户组与内存管理链表之间的映射关系,则可以通过如下方式确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息:确定该应用模块用户所在的应用模块用户组,并根据所述映射关系,确定应用模块用户对应的内存管理链表,当确定该内存管理链表的忙链表中存在应用模块用户标识与内存块属性信息之间的对应关系时,确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息,确定应用模块用户所在的应用模块用户组,并根据映射关系确定该应用模块用户组对应的内存管理链表,在该内存管理链表中的忙链表中查找是否存在应用模块用户标识与内存块属性信息之间的对应关系,从而避免在预先设置的多个内存管理链表中查找是否存在应用模块用户标识与内存块属性信息之间的对应关系,缩小内存泄露的检测范围,提高内存泄露的检测效率。
本发明实施例提供的内存管理装置,可以集成在网络设备中,也可以集成在网络设备的内存管理模块中,其中,内存分配单元302、内存释放单元304和处理单元306均可以采用CPU处理器等。
综上所述,本发明实施例提供的一种内存管理方法及装置,接收到应用模块用户申请内存的请求消息时,根据该请求消息为应用模块用户分配一个内存块,建立该内存块被该应用模块用户占用的记录信息,当确定需要释放该内存块时,释放该内存块,并且删除该内存块被该应用模块用户占用的记录信息,当需要释放应用模块用户时,若确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息,则释放该记录信息中记录的被该应用模块用户占用的内存块,也即检测到内存泄露时,及时释放泄露的内存,避免由于内存泄露导致单板故障、业务异常,而且实现简单高效。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (14)
1.一种内存管理方法,其特征在于,该方法包括:
当接收到应用模块用户申请内存的请求消息时,根据该请求消息为所述应用模块用户分配一个内存块,并且建立该内存块被该应用模块用户占用的记录信息;
当确定需要释放为所述应用模块用户分配的任一内存块时,释放该内存块,并且删除该内存块被该应用模块用户占用的记录信息;
当需要释放所述应用模块用户时,若确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息,则释放该记录信息中记录的被该应用模块用户占用的内存块,并且删除该内存块被该应用模块用户占用的记录信息。
2.根据权利要求1所述的方法,其特征在于,所述根据该请求消息为所述应用模块用户分配一个内存块,并且建立该内存块被该应用模块用户占用的记录信息,具体包括:
针对为该应用模块用户分配的每一内存块:在预设的内存管理链表中存储所述应用模块用户标识与该内存块属性信息之间的对应关系,其中,所述内存管理链表中的表项与内存块一一对应,用于记录每一内存块被应用模块用户占用的记录信息,所述内存块属性信息包括内存块的标识和地址信息。
3.根据权利要求2所述的方法,其特征在于,所述内存管理链表中包括忙链表和闲链表,当为应用模块用户分配一内存块时,从所述闲链表中获取一表项存储该内存块被该应用模块用户占用的记录信息,并添加到所述忙链表中。
4.根据权利要求3所述的方法,其特征在于,在从所述闲链表中获取一表项存储该内存块被该应用模块用户占用的记录信息之后,该方法还包括:在预先存储的内存关系表中存储所述表项标识与内存块标识之间的对应关系;
当确定需要释放为所述应用模块用户分配的任一内存块时,释放该内存块,并且删除该内存块被该应用模块用户占用的记录信息,具体包括:当确定需要释放为所述应用模块用户分配的任一内存块时,释放该内存块,并根据所述内存关系表以及该内存块标识,确定该内存块标识对应的表项,删除该表项中存储的该内存块被该应用模块用户占用的记录信息;然后,将该表项添加到闲链表中。
5.根据权利要求3所述的方法,其特征在于,通过如下方式确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息:
当所述内存管理链表的忙链表中存在所述应用模块用户标识与内存块属性信息之间的对应关系时,确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息。
6.根据权利要求5所述的方法,其特征在于,所述忙链表的每一表项中还记录有应用模块用户申请的内存块所处理的业务信息;
所述确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息之后,该方法还包括:将记录有该记录信息的表项中记录的应用模块用户申请的内存块所处理的业务信息进行转存。
7.根据权利要求5或6所述的方法,其特征在于,预先设置多个内存管理链表,并且,该方法还包括:
当接入多个应用模块用户时,对所述多个应用模块用户进行分组,得到多个应用模块用户组,建立所述应用模块用户组与内存管理链表之间的映射关系;
通过如下方式确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息:
确定该应用模块用户所在的应用模块用户组,并根据所述映射关系,确定所述应用模块用户对应的内存管理链表,当确定该内存管理链表的忙链表中存在所述应用模块用户标识与内存块属性信息之间的对应关系时,确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息。
8.一种内存管理装置,其特征在于,包括:
内存分配单元,用于当接收到应用模块用户申请内存的请求消息时,根据该请求消息为所述应用模块用户分配一个内存块,并且建立该内存块被该应用模块用户占用的记录信息;
内存释放单元,连接至所述内存分配单元,用于当确定需要释放为所述应用模块用户分配的任一内存块时,释放该内存块,并且删除该内存块被该应用模块用户占用的记录信息;
处理单元,连接至所述内存分配单元和所述内存释放单元,用于当需要释放所述应用模块用户时,若确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息,则释放该记录信息中记录的被该应用模块用户占用的内存块,并且删除该内存块被该应用模块用户占用的记录信息。
9.根据权利要求8所述的装置,其特征在于,所述内存分配单元根据该请求消息为所述应用模块用户分配一个内存块,并且建立该内存块被该应用模块用户占用的记录信息,具体用于:
针对为该应用模块用户分配的每一内存块:所述内存分配单元在预设的内存管理链表中存储所述应用模块用户标识与该内存块属性信息之间的对应关系,其中,所述内存管理链表中的表项与内存块一一对应,用于记录每一内存块被应用模块用户占用的记录信息,所述内存块属性信息包括内存块的标识和地址信息。
10.根据权利要求9所述的装置,其特征在于,所述内存管理链表中包括忙链表和闲链表,当所述内存分配单元为应用模块用户分配一内存块时,从所述闲链表中获取一表项存储该内存块被该应用模块用户占用的记录信息,并添加到所述忙链表中。
11.根据权利要求10所述的装置,其特征在于,所述内存分配单元从所述闲链表中获取一表项存储该内存块被该应用模块用户占用的记录信息之后,还用于:在预先存储的内存关系表中存储所述表项标识与内存块标识之间的对应关系;
所述内存释放单元具体用于:当确定需要释放为所述应用模块用户分配的任一内存块时,释放该内存块,并根据所述内存关系表以及该内存块标识,确定该内存块标识对应的表项,删除该表项中存储的该内存块被该应用模块用户占用的记录信息;然后,将该表项添加到闲链表中。
12.根据权利要求10所述的装置,其特征在于,所述处理单元通过如下方式确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息:
当所述处理单元确定所述内存管理链表的忙链表中存在所述应用模块用户标识与内存块属性信息之间的对应关系时,所述处理单元确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息。
13.根据权利要求12所述的装置,其特征在于,所述内存分配单元还用于:在所述忙链表的每一表项中记录应用模块用户申请的内存块所处理的业务信息;
所述处理单元确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息之后,还用于:将记录有该记录信息的表项中记录的应用模块用户申请的内存块所处理的业务信息进行转存。
14.根据权利要求12或13所述的装置,其特征在于,预先设置多个内存管理链表,并且,所述处理单元还用于:
当接入多个应用模块用户时,对所述多个应用模块用户进行分组,得到多个应用模块用户组,建立所述应用模块用户组与内存管理链表之间的映射关系;
所述处理单元通过如下方式确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息:
所述处理单元确定该应用模块用户所在的应用模块用户组,并根据所述映射关系,确定所述应用模块用户对应的内存管理链表,当确定该内存管理链表的忙链表中存在所述应用模块用户标识与内存块属性信息之间的对应关系时,确定还存在该应用模块用户对应的内存块被该应用模块用户占用的记录信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510295719.7A CN104951370B (zh) | 2015-06-02 | 2015-06-02 | 一种内存管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510295719.7A CN104951370B (zh) | 2015-06-02 | 2015-06-02 | 一种内存管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104951370A true CN104951370A (zh) | 2015-09-30 |
CN104951370B CN104951370B (zh) | 2018-08-21 |
Family
ID=54166038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510295719.7A Active CN104951370B (zh) | 2015-06-02 | 2015-06-02 | 一种内存管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104951370B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106802861A (zh) * | 2015-11-26 | 2017-06-06 | 大唐移动通信设备有限公司 | 一种检测内存泄露的方法和装置 |
WO2021093507A1 (zh) * | 2019-11-11 | 2021-05-20 | 上海肇观电子科技有限公司 | 预先分配内存的方法与设备、电路、电子设备及介质 |
CN113778695A (zh) * | 2021-11-12 | 2021-12-10 | 深圳华锐金融技术股份有限公司 | 跨应用生命周期的内存快照管理方法、装置、设备及介质 |
CN113778688A (zh) * | 2021-09-17 | 2021-12-10 | Oppo广东移动通信有限公司 | 内存管理系统、内存管理方法、内存管理装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6760826B2 (en) * | 2000-12-01 | 2004-07-06 | Wind River Systems, Inc. | Store data in the system memory of a computing device |
CN101221536A (zh) * | 2008-01-25 | 2008-07-16 | 中兴通讯股份有限公司 | 嵌入式系统的内存管理方法及装置 |
CN101859261A (zh) * | 2010-06-09 | 2010-10-13 | 中兴通讯股份有限公司 | 一种释放内存的控制方法及控制设备 |
CN103092700A (zh) * | 2013-02-01 | 2013-05-08 | 华为终端有限公司 | 内存清理方法、装置和终端设备 |
CN103425592A (zh) * | 2013-08-05 | 2013-12-04 | 大唐移动通信设备有限公司 | 一种多进程系统中的内存管理方法及装置 |
CN104317734A (zh) * | 2014-11-28 | 2015-01-28 | 迈普通信技术股份有限公司 | 一种适用于slab的内存分配方法及装置 |
-
2015
- 2015-06-02 CN CN201510295719.7A patent/CN104951370B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6760826B2 (en) * | 2000-12-01 | 2004-07-06 | Wind River Systems, Inc. | Store data in the system memory of a computing device |
CN101221536A (zh) * | 2008-01-25 | 2008-07-16 | 中兴通讯股份有限公司 | 嵌入式系统的内存管理方法及装置 |
CN101859261A (zh) * | 2010-06-09 | 2010-10-13 | 中兴通讯股份有限公司 | 一种释放内存的控制方法及控制设备 |
CN103092700A (zh) * | 2013-02-01 | 2013-05-08 | 华为终端有限公司 | 内存清理方法、装置和终端设备 |
CN103425592A (zh) * | 2013-08-05 | 2013-12-04 | 大唐移动通信设备有限公司 | 一种多进程系统中的内存管理方法及装置 |
CN104317734A (zh) * | 2014-11-28 | 2015-01-28 | 迈普通信技术股份有限公司 | 一种适用于slab的内存分配方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106802861A (zh) * | 2015-11-26 | 2017-06-06 | 大唐移动通信设备有限公司 | 一种检测内存泄露的方法和装置 |
WO2021093507A1 (zh) * | 2019-11-11 | 2021-05-20 | 上海肇观电子科技有限公司 | 预先分配内存的方法与设备、电路、电子设备及介质 |
CN113778688A (zh) * | 2021-09-17 | 2021-12-10 | Oppo广东移动通信有限公司 | 内存管理系统、内存管理方法、内存管理装置 |
CN113778695A (zh) * | 2021-11-12 | 2021-12-10 | 深圳华锐金融技术股份有限公司 | 跨应用生命周期的内存快照管理方法、装置、设备及介质 |
CN113778695B (zh) * | 2021-11-12 | 2022-04-29 | 深圳华锐分布式技术股份有限公司 | 跨应用生命周期的内存快照管理方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104951370B (zh) | 2018-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200226100A1 (en) | Metadata query method and apparatus | |
CN103123604B (zh) | 跟踪数据处理系统的内存使用的方法 | |
WO2017167171A1 (zh) | 一种数据操作方法,服务器及存储系统 | |
CN104850301A (zh) | 一种在系统桌面上将应用程序图标分类的方法和系统 | |
CN102541529A (zh) | 一种查询页面生成装置和方法 | |
CN104951370A (zh) | 一种内存管理方法及装置 | |
CN104572460A (zh) | 一种内存泄露的检测方法和装置 | |
CN102760080A (zh) | 一种内存管理的方法和装置 | |
EP3974969A1 (en) | System startup method and related device | |
EP3951607A1 (en) | Data reading method, data writing method, and server | |
CN105468660A (zh) | 分布式文件系统的读方法、客户端设备及分布式文件系统 | |
CN105808449A (zh) | 一种用于虚拟机的虚拟存储映像版本管理方法和系统 | |
CN105446794A (zh) | 一种基于虚拟机的磁盘操作方法、装置及系统 | |
CN105095016A (zh) | 一种磁盘快照回滚方法及装置 | |
CN104423982A (zh) | 请求的处理方法和处理设备 | |
CN109783258A (zh) | 一种消息处理方法、装置及服务器 | |
CN110083581A (zh) | 一种日志追溯的方法、装置、存储介质及计算机设备 | |
CN111046106A (zh) | 缓存数据同步方法、装置、设备及介质 | |
CN110162395B (zh) | 一种内存分配的方法及装置 | |
CN111831691A (zh) | 一种数据读写方法及装置、电子设备、存储介质 | |
CN107346258A (zh) | 一种数据读写分离方法及装置 | |
CN104517067A (zh) | 访问数据的方法、装置及系统 | |
JP2023518136A (ja) | ファイル処理方法、装置、電子デバイス、記憶媒体、及びプログラム | |
CN107451202B (zh) | 一种数据访问方法及设备 | |
US9047299B1 (en) | Reclaiming blocks from a directory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |