[发明专利]一种内存池的管理方法、装置、设备及可读存储介质有效
申请号: | 201811308495.9 | 申请日: | 2018-11-05 |
公开(公告)号: | CN109388497B | 公开(公告)日: | 2021-08-31 |
发明(设计)人: | 邹虎 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 管理 方法 装置 设备 可读 存储 介质 | ||
本发明公开了一种内存池的管理方法、装置、设备以及计算机可读存储介质,包括:响应于应用程序的内存申请,将所述应用程序申请预选内存池中内存的操作封装为一个内存请求;判断所述应用程序是否申请到可用内存;若否,则将所述内存请求挂载至所述内存池的等待列队中,以便所述内存池中有内存空间释放时,激活并执行所述内存请求,从而为所述应用程序申请到可用内存。利用本发明所提供的内存池的管理方法、装置、设备以及计算机可读存储介质,保证了在没有内存的情况下应用程序的线程不会陷入无止境的循环查询内存中,节省了CPU的效率,提高了应用程序的响应速度。
技术领域
本发明涉及计算机存储技术领域,特别是涉及一种内存池的管理方法、装置、设备以及计算机可读存储介质。
背景技术
在应用程序开发中,通常需要在栈上申请内存来使用。例如采用malloc等函数进行申请,申请成功后应用程序才可以使用这块内存继续进行处理。通常情况下,对于一般的应用程序来说,由于操作系统会在底层提供虚拟内存管理,所以很难出现申请不到内存的情况。但是对于某些特殊场合,比如使用预先申请好的内存Pool,以及在其他程序将大部分内存都使用了的情况。
通常的做法中,如果调用malloc等函数进行内存申请失败后,会返回一个-1的返回码,告诉应用程序暂时没有内存,应用程序这时候需要针对没有内存的场景进行处理,等待一段时间然后再进行重试。类似应用程序需要做一个轮训的功能,轮训对于需要高响应速度的应用程序来说效率非常低,同时频繁的轮训也会影响CPU的使用效率。综上所述可以看出,如何在没有内存的情况下使应用程序的线程不会陷入无止境的循环查询内存是目前有待解决的问题。
发明内容
本发明的目的是提供一种内存池的管理方法、装置、设备以及计算机可读存储介质,以解决现有技术中在没有内存的情况下应用程序的线程会陷入无止境的循环查询内存的操作,造成应用程序的响应速度低、CPU使用效率低的问题。
为解决上述技术问题,本发明提供一种内存池的管理方法,包括:响应于应用程序的内存申请,将所述应用程序申请预选内存池中内存的操作封装为一个内存请求;判断所述应用程序是否申请到可用内存;若否,则将所述内存请求挂载至所述内存池的等待列队中,以便所述内存池中有内存空间释放时,激活并执行所述内存请求,从而为所述应用程序申请到可用内存。
优选地,所述将所述应用程序申请预选内存池中内存的操作封装为一个内存请求包括:
将所述应用程序申请预选内存池中内存的操作封装为一个内存请求,并在所述内存请求内建立一个链表node。
优选地,所述若否,则将所述内存请求挂载至所述内存池的等待列队中包括:
若所述应用程序未申请到可用内存时,将所述应用程序的内存请求的链表node挂载到所述内存池预先建立的链表head上,以便于所述应用程序进入静默状态。
优选地,所述将所述内存请求挂载至所述内存池的等待列队中,以便所述内存池中有内存空间释放时,激活并执行所述内存请求,从而为所述应用程序申请到可用内存包括:
将所述应用程序的链表node挂载在所述内存池的链表head中,当所述内存池内有内存空间释放时,产生新的可用内存;
判断所述内存池的链表head上是否存在挂载的所述内存请求;
若存在,则激活并执行所述内存请求,从而为所述应用程序申请到可用内存。
优选地,所述响应于应用程序的内存申请,将所述应用程序申请预选内存池中内存的操作封装为一个内存请求还包括:
在存储系统内划分出供应用程序使用的内存池,以便于所述应用程序在所述内存池中申请一块预设大小的内存使用。
本发明还提供了一种内存池的管理装置,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811308495.9/2.html,转载请声明来源钻瓜专利网。