内存泄露检查方法及装置制造方法及图纸

技术编号:2830812 阅读:233 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种资源回收方法,该方法包括:将过程的唯一标识通知资源回收模块;在执行该过程时,通过资源回收模块申请所需资源,该资源回收模块记录该过程所申请的资源信息及与该资源信息对应的过程的唯一标识;在该过程执行结束,通知资源回收模块;所述资源回收模块查找该过程所使用的资源信息,并释放所有对应的资源;另外,本发明专利技术还涉及资源回收装置、内存泄漏检查方法及装置,上述方法和装置可以高效地回收各种计算机资源,较好地解决内存泄漏问题,且使用简单、效率高、兼容性好。

【技术实现步骤摘要】

本专利技术涉及计算机领域,特别涉及一种资源回收方法及装置和内存泄漏 检查方法及装置。
技术介绍
目前,计算机及通信行业中,对于要求长时间不停机使用的设备来说, 及时地释放不需要的资源、充分地利用已有资源是保证系统的运行效率及运 行质量的一个重要因素。但是,目前各种资源的回收方法并不能完全地、高效率地回收各种资源, 例如内存泄漏问题就是一个比较严重的问题,内存泄漏是指在程序中动态分 配的内存在使用后没有及时的释放掉而造成的系统无法再次使用,这种情况在使用(70++等语言开发的系统中尤其严重。目前,针对内存泄漏主要是通过以下三种方式发现的1、 利用专用工具进行4企查,如PC-LINT、 Purify等。这种方法主要通过 静态扫描代码或者通过监控系统运行来发现存在的潜在内存漏泄问题。2、 利用通用内存回收机制进行检查,目前,Java等语言提供了通用内 存回收机制,该方法主要是通过扫描系统所使用的内存,没有被引用的内存 即认为是垃圾内存,可以回收重新使用。3、 通过编写高质量的源代码来避免内存泄漏。但是,在实现本专利技术的过程中,专利技术人发现现有技术中至少存在如下问 题第一种方法检查不全面、系统正常运行时无法使用,因为无论是静态工 具或者动态工具,都无法全面的分析代码各种运行路径,所以不可能发现所有可能的内存泄漏问题,并且专用工具一般是在系统测试过程中使用,系统在运行时无法发现并解决内存泄漏问题;第二种方法回收效率低,虽然有各种优化算法,但由于需要扫描全系统的内存使用情况,所以效率无法满足实 时系统的响应时间的要求(一般要求为毫秒级),回收机制无法控制,由于 实时系统要求必须对消息在指定的时间作出响应,而回收机制要求挂起整个 系统,同时因为回收时间较长,这个是实时系统无法接受的,过于依赖于系统运行的环境,只能运用于Java等语言开发的系统,无法运用于其它语言开 发的系统;采用第三种方法,由于系统复杂,处理流程分支特别多,需要处 理的异常情况也是千差万别,很容易出现在某些场景下开发人员因考虑不周 导致申请了内存却没有释放,因此这种方法给开发人员带来了很大的负担, 并且问题也很难得到彻底解决。综上所述,目前缺少一种使用简单、效率高、兼容性好、人员及开发环 境依赖度低、能较好运用于实时系统的资源回收方法和内存泄漏检查方法。
技术实现思路
本专利技术实施例提供了一种资源回收方法及装置和内存泄漏检查方法及装 置,以高效地回收各种计算机资源,较好地解决内存泄漏问题,且使用简单、 效率高、兼容性好。本专利技术实施例提供了一种资源回收方法,该方法具体包括将过程的唯一标识通知资源回收模块;在执行该过程时,通过资源回收模块申请所需资源,该资源回收模块记 录该过程所申请的资源信息及与该资源信息对应的过程的唯一标识; 在该过程执行结束,通知资源回收模块;所述资源回收模块查找该过程所使用的资源信息,并释放所有对应的资源。该方法,采用基于过程的资源回收方法,使用筒单、运行效率高、兼容性好,且能较好地避免资源长期未被使用而没有释放的情况,适于有资源管 理的各种实时系统。本专利技术实施例提供了一种资源回收装置,该装置具体包括资源管理模块、过程管理模块和资源回收模块;其中,过程管理模块包括通知模块,用于将过程的唯一标识或在该过 程执行结束,通知资源回收模块;申请模块,用于在执行该过程中,通过资 源回收模块向资源管理模块申请所需的资源;其中,资源回收模块包括记录模块,用于记录该过程所申请的资源信 息及与该资源信息对应的过程的唯一标识;释放模块,用于查找该过程中所 使用的资源信息,并释放所有对应的资源。该装置,采用基于过程的资源回收机制,使用简单、运行效率高、兼容 性好,且能较好地避免资源长期未被使用而没有释放的情况,适于有资源管 理的各种实时系统。本专利技术实施例提供了 一种内存泄漏检查方法,该方法具体包括将过程的唯一标识通知内存回收模块;在执行该过程中,通过内存回收模块向内存管理模块申请所需的内存, 该内存回收模块记录该过程所申请的内存信息及与该内存信息对应的过程的 唯一标识,且该过程主动释放已经使用完的内存资源;在该过程执行结束,通知内存回收模块;所述内存回收模块查找出该过程还没有释放的内存,所述还没有释放的 内存即为泄漏的内存。该方法,采用基于过程的机制查找泄漏的内存,能完全地发现内存泄漏 问题,也可以较好地回收查找到的泄漏的内存,同时,该方法使用简单、运 行效率高、兼容性好,且适合实时系统。本专利技术实施例提供了一种内存泄漏检查装置,该装置具体包括内存管 理模块、过程管理模块和内存回收模块;其中,过程管理模块包括通知模块,用于将过程的唯一标识或在该过 程执行结束,通知内存回收模块;申请模块,用于在执行该过程中,通过资源回收模块向内存管理模块申请所需的内存;主动释放模块,用于主动释放已经使用完的内存资源;其中,内存回收模块包括记录模块,用于记录该过程所申请的内存信 息及与该内存信息对应的过程的唯一标识和主动释放的内存信息;查找模块, 用于查找出该过程还没有释放的内存。该装置,采用基于过程的内存回收机制,在回收资源时,不需要扫描全 系统的内存使用情况,运行效率高;可以兼容所有的内存分配算法,兼容性 好;能完全地解决内存泄漏问题,同时可以避免重复释放内存的问题和其它 常见的内存问题。下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。 附图说明图1为本专利技术资源回收方法实施例的流程图; 图2为本专利技术资源回收方法另一实施例的流程图; 图3为本专利技术资源回收装置实施例的结构示意图; 图4为本专利技术内存泄漏检查方法实施例的流程图; 图5为本专利技术内存泄漏检查装置实施例的结构示意图。具体实施例方式如图l所示,为本专利技术资源回收方法实施例的流程图,该方法具体包括 步骤101、将过程的唯一标识通知资源回收模块;在该步骤之前还可以包括在首次创建过程时,为该过程分配唯一的标 识,且通过向资源回收模块注册过程标识来将该过程的标识通知资源回收模 块,上述过程是一个通用的概念,包括所有具有开始、结束的处理流程,例如一次呼叫、链路或数据的一次连接使用、 一次事务处理、 一次会话等等,上述唯一标识可以是过程名等信息,只要保证在全系统内唯一即可;步骤102、在执行该过程时,通过资源回收模块申请所需资源,该资源 回收模块记录该过程所申请的资源信息及与该资源信息对应的过程的唯一标识;在执行该过程时,通过资源回收模块向资源管理模块申请所需资源,该 资源回收模块记录该过程所申请的资源信息及该过程的唯一标识,并将二者关耳关起来,上述资源信息包括资源的大小、资源的类型等信息; 步骤103、在该过程执行结束,通知资源回收i^莫块;步骤104、资源回收模块查找该过程所使用的资源信息,并释放所有对 应的资源。当资源回收模块获知该过程结束时,根据该过程的唯一标识查找该过程 所使用的资源信息,并释放对应的资源。另外,上述实施例中的资源可以为各种计算机资源,如内存、硬盘、带 宽或句柄等。上述方法,采用基于过程的资源回收方法,在每个过程结束后,统一释 放资源,可以避免过早地释放资源而造成访问无效的问题,也可以避免同一 资源释;^文多次的问题,由于每次过程执行结束后都会自动释^L资源,所有资 源的回收时机是受控的本文档来自技高网
...

【技术保护点】
一种资源回收方法,其特征在于包括:将过程的唯一标识通知资源回收模块;在执行上述过程时,通过资源回收模块申请所需资源,该资源回收模块记录该过程所申请的资源信息及与该资源信息对应的过程的唯一标识;在该过程执行结束,通知资 源回收模块;所述资源回收模块查找该过程所使用的资源信息,并释放所有对应的资源。

【技术特征摘要】
1、一种资源回收方法,其特征在于包括将过程的唯一标识通知资源回收模块;在执行上述过程时,通过资源回收模块申请所需资源,该资源回收模块记录该过程所申请的资源信息及与该资源信息对应的过程的唯一标识;在该过程执行结束,通知资源回收模块;所述资源回收模块查找该过程所使用的资源信息,并释放所有对应的资源。2、 根据权利要求1所述的资源回收方法,其特征在于所述将过程的唯 一标识通知资源回收模块之前还包括在创建过程时,为该过程分配唯一的 标识。3、 根据权利要求1或2所述的资源回收方法,其特征在于所述资源回 收模块查找该过程中所使用的资源信息具体为所述资源回收模块根据该过 程的唯一标识查找该过程所使用的资源信息。4、 根据权利要求1或2所述的资源回收方法,其特征在于所述通过资 源回收模块向资源管理模块申请所需的资源,该资源回收模块记录该过程所 申请的资源信息及与该资源信息对应的过程的唯一标识具体为通过内存回 收模块向内存管理模块申请所需的内存,该内存回收模块记录该过程所申请 的内存信息及与该内存信息对应的过程的唯一标识。5、 根据权利要求4所述的资源回收方法,其特征在于所述在该过程执 行结束,通知资源回收模块;所述资源回收模块查找该过程所使用的资源信 息,并释放所有对应的资源具体为在该过程执行结束,通知内存回收模块; 所述内存回收模块查找该过程所使用的内存信息,并释;^文所有对应的内存。6、 一种资源回收装置,包括资源管理模块,其特征在于还包括过程管 理模块和资源回收模块,所述过程管理模块包括通知模块,用于将过程的唯一标识或在该过程执行结束,通知资源回收 模块;申请模块,用于在执行该过程中,通过资源回收模块向资源管理模块申请所需的资源;所述资源回收模块包括记录才莫块,用于记录该过程的唯一标识及与该唯一标识对应的过程所申 请的资源信息;释放模块,用于查找该过程中所使用的资源信息,并释放所有对应的资源。7、 根据权利要求6所述的资源回收装置,其特征在于所述过程管理模 块还包括分配模块,用于在创建过程时,为该过程分配唯一的标识。8、 根据权利要求6或7所述的资源回收装置,其特征在于所述资源回 收模块具体为内存回收模块...

【专利技术属性】
技术研发人员:邱霖
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1