[发明专利]jitterbuf内存处理方法及装置在审
申请号: | 201310265300.8 | 申请日: | 2013-06-28 |
公开(公告)号: | CN103399821A | 公开(公告)日: | 2013-11-20 |
发明(设计)人: | 方运江;李晓鹏;周平 | 申请(专利权)人: | 贵阳朗玛信息技术股份有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 550022 贵州省贵阳*** | 国省代码: | 贵州;52 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | jitterbuf 内存 处理 方法 装置 | ||
技术领域
本发明涉及通信领域,具体而言,涉及一种jitterbuf内存处理方法及装置。
背景技术
目前,主要通过以下两种方法实现智能手机抖动缓冲区(jitterbuf)的内存管理。
一种内存管理方案是基于数组的jitterbuf。将数组模拟为环形缓冲区(buffer),jitterbuf根据时间戳(timestamp)和序列号(sequence)存储相应位置的数据包。在基于数组的jitterbuf中,内存已经在初始化的时候分配好,直接将数据存储到数组中就可以了,这种做法的优点是不需要频繁的分配和销毁内存,减轻了CPU负担,并且不会产生内存碎片。但是,该方法存在以下缺点:内存容量不能扩展,为了满足网络延迟等情况,需要在初始化的时候分配足够大的内存,这样造成了资源的极大浪费。
另一种内存管理方案是基于链表的jitterbuf。当接收到一个数据包的时候,jitterbuf会根据收到的数据包来分配一个内存来存储这个数据包,然后根据时间戳(timestamp)和序列号(sequence)将数据包链接到相应的位置。当jitterbuf将完整的帧送去解码后,需要将这些数据包的内存销毁掉。但是,该方法也存在以下缺点:内存的频繁分配和销毁,不但耗时,还容易产生内存碎片。
发明内容
本发明提供了一种jitterbuf内存处理方法及装置,以至少解决相关技术中内存的频繁分配和销毁,不但耗时,还容易产生内存碎片的问题。
根据本发明的一个方面,提供了一种jitterbuf内存处理方法。
根据本发明的jitterbuf内存处理方法包括:在内存池接收到内存释放的请求时,判断上述内存池中的空闲内存块数量是否达到预设阈值;在上述空闲内存块数量没有达到上述预设阈值的情况下,上述内存池保留请求释放的内存块。
根据本发明的另一方面,提供了一种jitterbuf内存处理装置。
根据本发明的jitterbuf内存处理装置包括:判断模块,用于在接收到内存释放的请求时,判断内存池中的空闲内存块数量是否达到预设阈值;保留模块,用于在上述空闲内存块数量没有达到上述预设阈值的情况下,保留请求释放的内存块。
通过本发明,当内存池接收到内存释放的请求,在判断上述空闲内存块数量没有达到上述预设阈值的情况下,不释放请求释放的内存块,而保留该内存块以便后续分配。因而不需要频繁分配和销毁内存块,节省了处理时间,还不容易产生内存碎片。
附图说明
图1为根据本发明实施例的jitterbuf内存处理方法的流程图;
图2为根据本发明优选实施例一的内存释放的流程图;
图3为根据本发明优选实施例二的内存申请的流程图;
图4为根据本发明优选实施例三的内存申请的流程图;
图5为根据本发明优选实施例四的内存释放的流程图;
图6为根据本发明实施例的jitterbuf内存处理装置的结构框图;以及
图7为根据本发明优选实施例的jitterbuf内存处理装置的结构框图。
具体实施方式
下面结合说明书附图对本发明的具体实现方式做一详细描述。
图1为根据本发明实施例的jitterbuf内存处理方法的流程图。如图1所示,该jitterbuf内存处理方法包括以下处理:
步骤S101:在内存池接收到内存释放的请求时,判断上述内存池中的空闲内存块数量是否达到预设阈值;
步骤S103:在上述空闲内存块数量没有达到上述预设阈值的情况下,上述内存池保留请求释放的内存块。
相关技术中,当接收到一个数据包的时候,jitterbuf会根据收到的数据包来分配一个内存来存储这个数据包。当jitterbuf将完整的帧送去解码后,需要将这些数据包的内存销毁掉。因而由于内存的频繁分配和销毁,不但耗时,还容易产生内存碎片。图1所示的方法中,当内存池接收到内存释放的请求,在判断上述空闲内存块数量没有达到上述预设阈值的情况下,不释放请求释放的内存块,而保留该内存块以便后续分配。因而不需要频繁分配和销毁内存块,节省了处理时间,还不容易产生内存碎片。
其中,上述预设阈值是内存池中空闲内存块的最大容忍数,例如,20个,30个等。如果该阈值设置太大,则占用内存较大,而该阈值设置太小,分配和销毁内存块的频率也会较大。因此可以根据实际情况预先动态设置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于贵阳朗玛信息技术股份有限公司,未经贵阳朗玛信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310265300.8/2.html,转载请声明来源钻瓜专利网。