内存分配的监测方法及装置制造方法及图纸

技术编号:12713110 阅读:98 留言:0更新日期:2016-01-14 19:39
本发明专利技术提供一种内存分配的监测方法及装置。该方法,包括:获取文件信息和内存信息,所述文件信息包括触发分配内存的文件名称和文件行号,所述内存信息包括为执行所述文件行号指示的文件所分配的内存信息,所述文件行号为所述文件名称指示的文件的行号;根据所述文件信息和内存信息,确定所述文件行号指示的文件占用的内存总量。实现了对程序运行的过程中内存占用量的实时监测,从而避免了内存泄漏,进而减少了系统崩溃的几率。

【技术实现步骤摘要】

本专利技术涉及计算机领域,尤其涉及一种内存分配的监测方法及装置
技术介绍
系统在程序运行的过程中,可能发生频繁死机或无法正常工作的现象,即系统崩溃。导致系统崩溃的原因很多,比如,系统中存在病毒,或者,运行的程序中存在漏洞(bug),或者,内存泄漏等。其中,内存泄露是指在程序运行时,系统不断的为正在运行的程序分配内存,并将指向内存的指针保存在一个数据存储中,直到程序退出时,才依次释放指针所指向的内存块,该指针为存储在数据存储中的指针。系统在运行程序的过程中,若内存占用量不断增加,则可能导致内存泄漏,从而产生系统崩溃,然而,本领域技术人员发现,现有技术中无法对程序运行的过程中内存占用量进行实时监测。
技术实现思路
本专利技术提供一种内存分配的监测方法及装置,用以解决无法对程序运行的过程中内存占用量进行实时监测的问题。本专利技术的第一个方面是提供一种内存分配的监测方法,包括:获取文件信息和内存信息,所述文件信息包括触发分配内存的文件名称和文件行号,所述内存信息包括为执行所述文件行号指示的文件所分配的内存信息,所述文件行号为所述文件名称指示的文件的行号;根据所述文件信息和内存信息,确定所述文件行号指示的文件占用的内存总量。进一步的,所述获取文件信息和内存信息,还包括:将所述文件信息和所述内存信息存储在消息队列中,所述消息队列包括文件名称、文件行号和为所述文件行号分配的内存信息。进一步的,所述根据所述文件信息和内存信息,确定所述文件行号指示的文件占用的内存总量,包括:根据所述文件名称对应的文件标识和所述消息队列,确定所述文件行号指示的文件占用的内存总量。进一步的,所述获取文件信息和内存信息之后,还包括:根据所述文件信息和所述消息队列,确定所述文件名称标示的文件占用的总内存量;将所述内存总量与所述总内存量相除,获得内存百分比;若所述内存百分比大于一预设值,则确定存在内存泄漏;若所述内存百分比小于或等于一预设值,则确定不存在内存泄漏。进一步的,所述获取文件信息和内存信息之前,还包括:在申请内存模块函数中设置获取所述文件信息和所述内存信息。本专利技术的第额个方面是提供一种内存分配的监测装置,包括:获取模块,用于获取文件信息和内存信息,所述文件信息包括触发分配内存的文件名称和文件行号,所述内存信息包括为执行所述文件行号指示的文件所分配的内存信息,所述文件行号为所述文件名称指示的文件的行号;确定模块,用于根据所述文件信息和内存信息,确定所述文件行号指示的文件占用的内存总量。进一步的,还包括:存储模块,所述存储模块,用于将所述文件信息和所述内存信息存储在消息队列中,所述消息队列包括文件名称、文件行号和为所述文件行号分配的内存信息。进一步的,所述确定模块,具体用于根据所述文件名称对应的文件标识和所述消息队列,确定所述文件行号指示的文件占用的内存总量。进一步的,所述确定模块,还用于根据所述文件信息和所述消息队列,确定所述文件名称标示的文件占用的总内存量;将所述内存总量与所述总内存量相除,获得内存百分比;若所述内存百分比大于一预设值,则确定存在内存泄漏;若所述内存百分比小于或等于一预设值,则确定不存在内存泄漏。进一步的,所述获取模块,还用于在申请内存模块函数中设置获取所述文件信息和所述内存信息。本专利技术提供一种内存分配的监测方法及装置。通过获取文件信息和内存信息,所述文件信息包括触发分配内存的文件名称和文件行号,所述内存信息包括为执行所述文件行号指示的文件所分配的内存信息,所述文件行号为所述文件名称指示的文件的行号;根据所述文件信息和内存信息,确定所述文件行号指示的文件占用的内存总量。实现了对程序运行的过程中内存占用量的实时监测,从而避免了内存泄漏,进而减少了系统崩溃的几率。附图说明图1为本专利技术内存分配的监测方法一实施例的流程示意图;图2为本专利技术内存分配的监测装置一实施例的结构示意图;图3为本专利技术内存分配的监测装置二实施例的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为本专利技术内存分配的监测方法一实施例的流程示意图,如图1所示,内存分配的监测方法,包括:步骤101、获取文件信息和内存信息。在本实施例中,所述文件信息包括触发分配内存的文件名称和文件行号,所述内存信息包括为执行所述文件行号指示的文件所分配的内存信息,所述文件行号为所述文件名称指示的文件的行号。本实施例的适用场景是在linux下运行程序并分配内存时,例如,在调用申请内存模块(new)函数时。本实施例中的文件可以理解为正在运行的程序。步骤102、根据所述文件信息和内存信息,确定所述文件行号指示的文件占用的内存总量。在本实施例中,文件行号占用的内存总量是指,为文件行号指示的文件分配的内存且未释放的内存总量。具体的,如果在连续多个时间间隔的统计结果中,某一文件行号对应的文件所分配的内存总量不断增长而始终没有减少,则可能会造成隐式内存泄漏。在本实施例中,获取文件信息和内存信息,所述文件信息包括触发分配内存的文件名称和文件行号,所述内存信息包括为执行所述文件行号指示的文件所分配的内存信息,所述文件行号为所述文件名称指示的文件的行号;根据所述文件信息和内存信息,确定所述文件行号指示的文件占用的内存总量。实现了对程序运行的过程中内存占用量的实时监测,从而避免了内存泄漏,进而减少了系统崩溃的几率。在上述实施例的基础上,所述获取文件信息和内存信息,还包括:将所述文件信息和所述内存信息存储在消息队列中,所述消息队列包括文件名称、文件行号和为所述文件行号分配的内存信息。需要说明的是,该消息队列是通过文件标识组成的索引值创建的,在内存分配时,将分配信息写入到消息队列,该分配信息包括分配内存的文件名称、文件行号、内存信息。在内存释放执行时,在消息队列中删除内存分配。或者,在一时长周期内,对内存分配进行一次统计分析,即通过文件标识,确定通过文件标识创建的消息队列,再根据文件行号,确定该文件行号对应的内存信息。进一步的,在上述实本文档来自技高网...

【技术保护点】
一种内存分配的监测方法,其特征在于,包括:获取文件信息和内存信息,所述文件信息包括触发分配内存的文件名称和文件行号,所述内存信息包括为执行所述文件行号指示的文件所分配的内存信息,所述文件行号为所述文件名称指示的文件的行号;根据所述文件信息和所述内存信息,确定所述文件行号指示的文件占用的内存总量。

【技术特征摘要】
1.一种内存分配的监测方法,其特征在于,包括:
获取文件信息和内存信息,所述文件信息包括触发分配内存的文件名称
和文件行号,所述内存信息包括为执行所述文件行号指示的文件所分配的内
存信息,所述文件行号为所述文件名称指示的文件的行号;
根据所述文件信息和所述内存信息,确定所述文件行号指示的文件占用
的内存总量。
2.根据权利要求1所述的方法,其特征在于,所述获取文件信息和内存
信息,还包括:
将所述文件信息和所述内存信息存储在消息队列中,所述消息队列包括
文件名称、文件行号和为所述文件行号分配的内存信息。
3.根据权利要求2所述的方法,其特征在于,所述根据所述文件信息和
所述内存信息,确定所述文件行号指示的文件占用的内存总量,包括:
根据所述文件名称对应的文件标识和所述消息队列,确定所述文件行号
指示的文件占用的内存总量。
4.根据权利要求3所述的方法,其特征在于,所述获取文件信息和内存
信息之后,还包括:
根据所述文件信息和所述消息队列,确定所述文件名称标示的文件占用
的总内存量;
将所述内存总量与所述总内存量相除,获得内存百分比;
若所述内存百分比大于一预设值,则确定存在内存泄漏;
若所述内存百分比小于或等于一预设值,则确定不存在内存泄漏。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述获取文件信
息和内存信息之前,还包括:
在申请内存模...

【专利技术属性】
技术研发人员:宗栋瑞郭美思
申请(专利权)人:浪潮北京电子信息产业有限公司
类型:发明
国别省市:北京;11

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

1