[发明专利]堆内存分配方法、装置及存储介质在审
申请号: | 201910967329.8 | 申请日: | 2019-10-12 |
公开(公告)号: | CN112650692A | 公开(公告)日: | 2021-04-13 |
发明(设计)人: | 雷建忠;刘飞;江波 | 申请(专利权)人: | 北京华为数字技术有限公司 |
主分类号: | G06F12/06 | 分类号: | G06F12/06;G06F12/14 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 颜晶 |
地址: | 100085 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 分配 方法 装置 存储 介质 | ||
本申请公开了一种堆内存分配方法、装置及存储介质,属于数据处理领域。在本申请中,可以获取当前申请堆内存的应用程序对应的文件名、行号和内存申请大小,之后,从越界记录文件中查找目标记录。其中,越界记录文件包括多条记录,每条记录包括文件名、行号和越界次数,目标记录是指多条记录中包括的文件名和行号分别与应用程序对应的文件名和行号相同的记录。如果查找到目标记录,则根据目标记录包括的越界次数,确定理论内存扩充大小,并根据内存申请大小和理论内存扩充大小,向应用程序分配堆内存。由此可见,本申请提供的方法考虑了历史越界情况,按照历史越界情况向应用程序分配堆内存之后,可以减少堆内存写越界发生的次数。
技术领域
本申请涉及数据处理领域,特别涉及一种堆内存分配方法、装置及存储介质。
背景技术
堆内存是指应用程序在运行的过程中动态地向操作系统申请的内存。也即是,在应用程序运行的过程中,操作系统可以基于应用程序的申请向应用程序分配堆内存。其中,应用程序在运行的过程中,可能会多次向操作系统申请堆内存,且每次申请的堆内存的内存大小可能相同,也可能不同。
目前,应用程序在运行的过程中可能会出现逻辑错误的情况,在这种情况下,写入堆内存的数据需要的内存大小可能会大于应用程序申请的堆内存的内存大小,这样,写入堆内存的数据会占用其他堆内存的内存空间,导致其他堆内存的数据被改写,从而发生堆内存写越界。并且,在引起堆内存写越界的原因不变的情况下,堆内存写越界会重复发生。
对于这种情况,当操作系统向应用程序分配堆内存时,会在堆内存的末地址写入一个指定魔术字。之后,操作系统可以检测堆内存的末地址写入的数据,当堆内存的末地址写入的数据为指定魔术字时,确定没有发生堆内存写越界。当堆内存的末地址写入的数据不为指定魔术字时,确定当前已发生堆内存写越界,此时,操作系统可以发出堆内存写越界警告。
但是上述写入指定魔术字的方法在检测到已发生堆内存写越界时,只进行堆内存写越界警告,无法减少堆内存写越界发生的次数。
发明内容
本申请提供了一种堆内存分配方法、装置及存储介质,可以解决一旦发生堆内存写越界就会多次发生的问题。所述技术方案如下:
第一方面,提供了一种堆内存分配方法,所述方法包括:
获取当前申请堆内存的应用程序对应的文件名、行号和内存申请大小,所述文件名是指所述应用程序的源代码文件的名称,所述行号是指所述源代码文件中用于申请堆内存的代码所在行的编号,所述内存申请大小是指所述应用程序当前申请的堆内存的大小;
从越界记录文件中查找目标记录,其中,所述越界记录文件包括多条记录,每条记录包括文件名、行号和越界次数,所述目标记录是指所述多条记录中包括的文件名和行号分别与所述应用程序对应的文件名和行号相同的记录;
如果查找到所述目标记录,则根据所述目标记录包括的越界次数,确定理论内存扩充大小;
根据所述内存申请大小和所述理论内存扩充大小,向所述应用程序分配堆内存。
在本申请中,当有应用程序申请堆内存时,可以在越界记录文件中查找目标记录,其中,目标记录包括文件名、行号和越界次数。由于目标记录的文件名和行号分别与应用程序对应的文件名和行号相同,因此,可以根据目标记录中的越界次数,确定理论内存扩充大小,进而按照应用程序申请的堆内存的大小和理论内存扩充大小,向应用程序分配堆内存。也即是,本申请提供的方法考虑了历史越界情况,按照历史越界情况向应用程序分配堆内存之后,可以减少堆内存写越界发生的次数。
可选地,所述根据所述目标记录包括的越界次数,确定理论内存扩充大小,包括:
将所述目标记录包括的越界次数与单次扩充大小之间的乘积,确定为所述理论内存扩充大小。
其中,单次扩充大小是一个可以根据经验预先设置的扩充大小。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京华为数字技术有限公司,未经北京华为数字技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910967329.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:夹具存放库
- 下一篇:一种丝印网纱重复利用的方法