一种用于实时流媒体传输系统的内存管理方法

文档序号:6542530阅读:135来源:国知局
一种用于实时流媒体传输系统的内存管理方法
【专利摘要】本发明公开了一种用于实时流媒体传输系统的内存管理方法,包括如下步骤:内存空间预申请步骤:预申请一块大的内存空间;内存空间处理步骤:将内存空间分割为若干小内存块,对小内存块进行处理;内存空间使用步骤:以队列的方式申请或释放小内存块;内存空间释放步骤:在退出系统时,释放内存空间。本发明具有以下有益效果:在系统启动时预申请一块大的内存空间供系统工作时使用,避免了由于内存的频繁申请而造成的系统损耗;对申请的内存空间进行相应的管理,使得内存空间使用井然有序,且通过编排序列号的方式,使得内存出现问题时,很容易定位到错误内存的位置,有利于系统的维护。
【专利说明】一种用于实时流媒体传输系统的内存管理方法
【技术领域】
[0001]本发明属于内存管理【技术领域】,具体涉及一种用于实时流媒体传输系统的内存管理方法。
【背景技术】
[0002]传统的内存处理采用用时申请,不用时释放的方式;而实时流媒体传输系统由于其自身的特点,在工作时需要频繁申请内存,由此会带来相应的系统损耗。同时,系统在进行大量内存处理时,一旦发生内存泄露,很难对出现问题的内存进行定位。基于现有技术中的上述缺陷,有必要提出一种内存管理的方法,对实时流媒体传输系统的内存申请进行有效的管理,以克服上述技术缺陷。

【发明内容】

[0003]为了克服现有技术中存在的缺陷,本发明提供一种用于实时流媒体传输系统的内存管理方法,具体的技术方案如下:
一种用于实时流媒体传输系统的内存管理方法,包括如下步骤:
内存空间预申请步骤:在启动实时流媒体传输系统时,预申请一块大小为NXM个字节的内存空间;其中N是指预设的分配系数,该分配系数为整数;M是指系统的MTU值;
内存空间处理步骤:将预申请获得的内存空间以MTU值为单位分割为N个小内存块;对N个小内存块进行排序,并分配相应的序列号;将N个小内存块依次放入队列;
内存空间使用步骤:当系统申请小内存块时,从队列的队首取出,进行处理;当系统释放小内存块时,从队列的队尾放回,完成释放;
内存空间释放步骤:在退出系统时,释放内存空间。
[0004]作为优化方案,预申请的内存空间的大小为可用物理内存的50%。
[0005]作为优化方案,在内存空间处理步骤中,将N个小内存块根据对应的内存地址的先后顺序进行排序。
[0006]作为优化方案,内存空间使用步骤进一步包括:当系统出现内存问题时,通过相应小内存块的序列号,判断出对应的出现错误的内存地址,完成错误内存的定位。
[0007]作为优化方案,在内存空间释放步骤之前,还包括内存空间补充步骤:
当内存空间队列内的内存不够满足使用时,重复执行内存空间预申请步骤和内存空间处理步骤,再申请一块内存空间,然后再执行内存空间使用步骤。
[0008]与现有技术相比,本发明具有以下有益效果:
(1)本发明在系统启动时预申请一块大的内存空间供系统工作时使用,避免了由于内存的频繁申请而造成的系统损耗;
(2)对申请的内存空间进行相应的管理,使得内存空间使用井然有序,且通过编排序列号的方式,使得内存出现问题时,很容易定位到错误内存的位置,有利于系统的维护;
(3 )本发明的步骤简单明了,易于实现。【专利附图】

【附图说明】
[0009]图1为本发明的总流程图;
图2为实施例1的示意图。
【具体实施方式】
[0010]下面结合附图以实施例的方式详细描述本发明。
[0011]实施例1:
如图1所示,一种用于实时流媒体传输系统的内存管理方法,包括如下步骤:
步骤S101,内存空间预申请步骤:在启动所述实时流媒体传输系统时,预申请一块大小为NXM个字节的内存空间;其中N是指预设的分配系数,该分配系数为整数…是指系统的MTU值。
[0012]预申请的内存空间的大小受限于分配给系统运行的物理内存的总大小,一般来说将预申请的内存空间的大小设置为物理内存的50%为宜,若内存空间的大小到达物理内存的70%-80%,则占用了过多的内存资源,物理内存没有足够的预留空间执行其他任务,不利用系统整体的运行。
[0013]预申请的内存空间的大小还受限于系统采用的网络传输方式,由于实时流媒体传输系统往往采用UDP协议(User Datagram Protocol,用户数据报协议)的方式进行流数据传输,这种传输方式本身决定了单个数据包的大小不超过MTU值。其中,MTU (MaximumTransmission Unit)是指最大传输单元,MTU值是一个系统默认值。在MTU值确定的情况下,分配系数N的大小决定了预申请的内存空间的大小。分配系数N的大小可根据系统运行的终端的特点来决定,例如,对于PC客户端或手机客户端的使用,应当申请较小的内存,一般来说将分配系数N的值设为100比较合适;而对于流媒体服务器的使用,应当申请较大的内存,具体与流媒体服务器支持的最大客户端并发通道的数量,假设流媒体服务器最大支持1000个并发通道,则相应的将分配系数N的值设为1000X 100,也就是100000比较合适。当然,需要说明的是,以上仅为本发明的一种较佳的实施方式,仅作参考,本发明并不对分配系数N的大小做具体限制,可根据实际情况进行设置。
[0014]步骤S102,内存空间处理步骤:将预申请获得的内存空间以所述MTU值为单位分割为N个小内存块;对N个小内存块进行排序,并分配相应的序列号;将N个小内存块依次放入队列。
[0015]结合图2可以很清楚地理解本步骤的处理流程,将大的内存空间分片为若干小内存块,每个小内存块的大小等于MTU值,每次系统申请内存时,都提供一块MTU值大小的小内存块,符合实时流媒体传输系统的自身特点。对所有小内存块进行排序、分配序列号并按序放入队列等操作是为了实现错误内存的快速定位。在本实施例中,将N个小内存块根据对应的内存地址的先后顺序进行排序,但此仅为举例说明,也可采用其他的排序方式。
[0016]步骤S103,内存空间使用步骤:当系统申请小内存块时,从队列的队首取出,进行处理;当系统释放小内存块时,从队列的队尾放回,完成释放。当系统出现内存问题时,通过相应小内存块的序列号,判断出对应的出现错误的内存地址,完成错误内存的定位。
[0017]本发明提供的内存管理方法通过队列的方式将预申请的内存空间提供给系统使用,基于队列先入先出的特点,申请时,系统从队首取出小内存块,释放时,系统从队尾放回小内存块。这样能够保证内存空间中各个小内存块的使用和释放按序进行。而由于事先为小内存块分配了序列号,当系统出现内存问题时,可通过序列号查到到对应的内存地址,便于定位。
[0018]步骤S104,内存空间释放步骤:在退出系统时,释放所述内存空间。
[0019]实施例2:
本实施例与实施例1的区别在于:在内存空间释放步骤之前,还包括步骤S201,内存空间补充步骤:
当所述内存空间队列内的内存不够满足使用时,重复执行内存空间预申请步骤和内存空间处理步骤,再申请一块内存空间,然后再执行内存空间使用步骤。
[0020]本实施例是在实施例1的基础上所做的改进,以解决预申请的内存空间不足的问题,采用与实施例1相同的方式再预申请一块新的内存空间,以满足系统需求。
[0021]还是以实施例1中举的例子进行说明,假设流媒体服务器最大支持1000个并发通道,在本实施例中,不将分配系数N的值设为1000 X 100,而是取10%,将分配系数N的值设为100X 100,即10000。理由在于,1000是并发通道的最大支持数,不可能1000个通道同时工作,若一次性申请N为100000的内存空间,大部分内存空间不会被使用,从而造成内存的浪费。因此,将N的值减小为10000,首次申请内存空间时不申请过多的内存,若首次申请的内存不够用时,重复内存空间预申请步骤和内存空间处理步骤,再申请一块同样大小的内存空间,以此类推,若内存空间还不够用,可以继续申请。就以上举的例子来看,最多可以申请十块同样的内存空间,对内存的直接申请次数并不频繁,且能大大提高内存的利用率,避免内存浪费。此外,采用本实施例提供的内存管理方法,每次申请的内存空间大小均相同,且处理和使用方式也相同,方法简单实用;而现有的内存管理方法,每次申请的内存空间的大小均不相同,容易造成内存浪费,且难以维护。
[0022]本实施例的其他技术特征与实施例1基本相同,在此不再赘述。
[0023]结合上述两个实施例可知,本发明的有益效果在于:
首先,仅在系统启动时预申请一块大的内存空间或内存空间不足时再进行预申请,系统工作时使用预申请的内存空间,而不直接向内存进行申请,减少了大量的内存处理,避免了由于内存的频繁申请而造成的系统损耗。
[0024]其次,采用队列的方式实现系统对内存空间中小内存块的申请,使得内存空间使用井然有序;且通过编排序列号的方式,使得内存出现问题时,很容易定位到错误内存的位置,有利于系统的维护。
[0025]以上公开的仅为本申请的几个具体实施例,但本申请并非局限于此任何本领域的技术人员能思之的变化,都应落在本申请的保护范围内。
【权利要求】
1.一种用于实时流媒体传输系统的内存管理方法,其特征在于,包括如下步骤: 内存空间预申请步骤:在启动所述实时流媒体传输系统时,预申请一块大小为NXM个字节的内存空间;其中N是指预设的分配系数,该分配系数为整数;M是指系统的MTU值;内存空间处理步骤:将预申请获得的内存空间以所述MTU值为单位分割为N个小内存块;对N个小内存块进行排序,并分配相应的序列号;将N个小内存块依次放入队列; 内存空间使用步骤:当系统申请小内存块时,从队列的队首取出,进行处理;当系统释放小内存块时,从队列的队尾放回,完成释放; 内存空间释放步骤:在退出系统时,释放所述内存空间。
2.根据权利要求1所述的一种用于实时流媒体传输系统的内存管理方法,其特征在于,预申请的内存空间的大小为可用物理内存的50%。
3.根据权利要求1所述的一种用于实时流媒体传输系统的内存管理方法,其特征在于,在内存空间处理步骤中,将N个小内存块根据对应的内存地址的先后顺序进行排序。
4.根据权利要求1所述的一种用于实时流媒体传输系统的内存管理方法,其特征在于,所述内存空间使用步骤进一步包括:当系统出现内存问题时,通过相应小内存块的序列号,判断出对应的出现错误的内存地址,完成错误内存的定位。
5.根据权利要求1所述的一种用于实时流媒体传输系统的内存管理方法,其特征在于,在所述内存空间释放步骤之前,还包括内存空间补充步骤: 当所述内存空间队列内的内存不够满足使用时,重复执行内存空间预申请步骤和内存空间处理步骤,再申请一块内存空间,然后再执行内存空间使用步骤。
【文档编号】G06F12/02GK103942150SQ201410128074
【公开日】2014年7月23日 申请日期:2014年4月1日 优先权日:2014年4月1日
【发明者】陈强, 戴立言, 李庆瑜 申请人:上海网达软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1