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

技术编号:10248426 阅读:160 留言:0更新日期:2014-07-24 02:45
本发明专利技术公开了一种用于实时流媒体传输系统的内存管理方法,包括如下步骤:内存空间预申请步骤:预申请一块大的内存空间;内存空间处理步骤:将内存空间分割为若干小内存块,对小内存块进行处理;内存空间使用步骤:以队列的方式申请或释放小内存块;内存空间释放步骤:在退出系统时,释放内存空间。本发明专利技术具有以下有益效果:在系统启动时预申请一块大的内存空间供系统工作时使用,避免了由于内存的频繁申请而造成的系统损耗;对申请的内存空间进行相应的管理,使得内存空间使用井然有序,且通过编排序列号的方式,使得内存出现问题时,很容易定位到错误内存的位置,有利于系统的维护。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了,包括如下步骤:内存空间预申请步骤:预申请一块大的内存空间;内存空间处理步骤:将内存空间分割为若干小内存块,对小内存块进行处理;内存空间使用步骤:以队列的方式申请或释放小内存块;内存空间释放步骤:在退出系统时,释放内存空间。本专利技术具有以下有益效果:在系统启动时预申请一块大的内存空间供系统工作时使用,避免了由于内存的频繁申请而造成的系统损耗;对申请的内存空间进行相应的管理,使得内存空间使用井然有序,且通过编排序列号的方式,使得内存出现问题时,很容易定位到错误内存的位置,有利于系统的维护。【专利说明】
本专利技术属于内存管理
,具体涉及。
技术介绍
传统的内存处理采用用时申请,不用时释放的方式;而实时流媒体传输系统由于其自身的特点,在工作时需要频繁申请内存,由此会带来相应的系统损耗。同时,系统在进行大量内存处理时,一旦发生内存泄露,很难对出现问题的内存进行定位。基于现有技术中的上述缺陷,有必要提出一种内存管理的方法,对实时流媒体传输系统的内存申请进行有效的管理,以克服上述技术缺陷。
技术实现思路
为了克服现有技术中存在的缺陷,本专利技术提供,具体的技术方案如下: ,包括如下步骤: 内存空间预申请步骤:在启动实时流媒体传输系统时,预申请一块大小为NXM个字节的内存空间;其中N是指预设的分配系数,该分配系数为整数;M是指系统的MTU值; 内存空间处理步骤:将预申请获得的内存空间以MTU值为单位分割为N个小内存块;对N个小内存块进行排序,并分配相应的序列号;将N个小内存块依次放入队列; 内存空间使用步骤:当系统申请小内存块时,从队列的队首取出,进行处理;当系统释放小内存块时,从队列的队尾放回,完成释放; 内存空间释放步骤:在退出系统时,释放内存空间。作为优化方案,预申请的内存空间的大小为可用物理内存的50%。作为优化方案,在内存空间处理步骤中,将N个小内存块根据对应的内存地址的先后顺序进行排序。作为优化方案,内存空间使用步骤进一步包括:当系统出现内存问题时,通过相应小内存块的序列号,判断出对应的出现错误的内存地址,完成错误内存的定位。作为优化方案,在内存空间释放步骤之前,还包括内存空间补充步骤: 当内存空间队列内的内存不够满足使用时,重复执行内存空间预申请步骤和内存空间处理步骤,再申请一块内存空间,然后再执行内存空间使用步骤。与现有技术相比,本专利技术具有以下有益效果: (1)本专利技术在系统启动时预申请一块大的内存空间供系统工作时使用,避免了由于内存的频繁申请而造成的系统损耗; (2)对申请的内存空间进行相应的管理,使得内存空间使用井然有序,且通过编排序列号的方式,使得内存出现问题时,很容易定位到错误内存的位置,有利于系统的维护; (3 )本专利技术的步骤简单明了,易于实现。【专利附图】【附图说明】图1为本专利技术的总流程图; 图2为实施例1的示意图。【具体实施方式】下面结合附图以实施例的方式详细描述本专利技术。实施例1: 如图1所示,,包括如下步骤: 步骤S101,内存空间预申请步骤:在启动所述实时流媒体传输系统时,预申请一块大小为NXM个字节的内存空间;其中N是指预设的分配系数,该分配系数为整数…是指系统的MTU值。预申请的内存空间的大小受限于分配给系统运行的物理内存的总大小,一般来说将预申请的内存空间的大小设置为物理内存的50%为宜,若内存空间的大小到达物理内存的70%-80%,则占用了过多的内存资源,物理内存没有足够的预留空间执行其他任务,不利用系统整体的运行。预申请的内存空间的大小还受限于系统采用的网络传输方式,由于实时流媒体传输系统往往采用UDP协议(User Datagram Protocol,用户数据报协议)的方式进行流数据传输,这种传输方式本身决定了单个数据包的大小不超过MTU值。其中,MTU (MaximumTransmission Unit)是指最大传输单元,MTU值是一个系统默认值。在MTU值确定的情况下,分配系数N的大小决定了预申请的内存空间的大小。分配系数N的大小可根据系统运行的终端的特点来决定,例如,对于PC客户端或手机客户端的使用,应当申请较小的内存,一般来说将分配系数N的值设为100比较合适;而对于流媒体服务器的使用,应当申请较大的内存,具体与流媒体服务器支持的最大客户端并发通道的数量,假设流媒体服务器最大支持1000个并发通道,则相应的将分配系数N的值设为1000X 100,也就是100000比较合适。当然,需要说明的是,以上仅为本专利技术的一种较佳的实施方式,仅作参考,本专利技术并不对分配系数N的大小做具体限制,可根据实际情况进行设置。步骤S102,内存空间处理步骤:将预申请获得的内存空间以所述MTU值为单位分割为N个小内存块;对N个小内存块进行排序,并分配相应的序列号;将N个小内存块依次放入队列。结合图2可以很清楚地理解本步骤的处理流程,将大的内存空间分片为若干小内存块,每个小内存块的大小等于MTU值,每次系统申请内存时,都提供一块MTU值大小的小内存块,符合实时流媒体传输系统的自身特点。对所有小内存块进行排序、分配序列号并按序放入队列等操作是为了实现错误内存的快速定位。在本实施例中,将N个小内存块根据对应的内存地址的先后顺序进行排序,但此仅为举例说明,也可采用其他的排序方式。步骤S103,内存空间使用步骤:当系统申请小内存块时,从队列的队首取出,进行处理;当系统释放小内存块时,从队列的队尾放回,完成释放。当系统出现内存问题时,通过相应小内存块的序列号,判断出对应的出现错误的内存地址,完成错误内存的定位。本专利技术提供的内存管理方法通过队列的方式将预申请的内存空间提供给系统使用,基于队列先入先出的特点,申请时,系统从队首取出小内存块,释放时,系统从队尾放回小内存块。这样能够保证内存空间中各个小内存块的使用和释放按序进行。而由于事先为小内存块分配了序列号,当系统出现内存问题时,可通过序列号查到到对应的内存地址,便于定位。步骤S104,内存空间释放步骤:在退出系统时,释放所述内存空间。实施例2: 本实施例与实施例1的区别在于:在内存空间释放步骤之前,还包括步骤S201,内存空间补充步骤: 当所述内存空间队列内的内存不够满足使用时,重复执行内存空间预申请步骤和内存空间处理步骤,再申请一块内存空间,然后再执行内存空间使用步骤。本实施例是在实施例1的基础上所做的改进,以解决预申请的内存空间不足的问题,采用与实施例1相同的方式再预申请一块新的内存空间,以满足系统需求。还是以实施例1中举的例子进行说明,假设流媒体服务器最大支持1000个并发通道,在本实施例中,不将分配系数N的值设为1000 X 100,而是取10%,将分配系数N的值设为100X 100,即10000。理由在于,1000是并发通道的最大支持数,不可能1000个通道同时工作,若一次性申请N为100000的内存空间,大部分内存空间不会被使用,从而造成内存的浪费。因此,将N的值减小为10000,首次申请内存空间时不申请过多的内存,若首次申请的内存不够用时,重复内存空间预申请步骤和内存空间处理步骤,再申请一块同样大小的内存空间,以此类推,若内存空间还不够用,可以继续申请。就以上举的本文档来自技高网...

【技术保护点】
一种用于实时流媒体传输系统的内存管理方法,其特征在于,包括如下步骤:内存空间预申请步骤:在启动所述实时流媒体传输系统时,预申请一块大小为N×M个字节的内存空间;其中N是指预设的分配系数,该分配系数为整数;M是指系统的MTU值;内存空间处理步骤:将预申请获得的内存空间以所述MTU值为单位分割为N个小内存块;对N个小内存块进行排序,并分配相应的序列号;将N个小内存块依次放入队列;内存空间使用步骤:当系统申请小内存块时,从队列的队首取出,进行处理;当系统释放小内存块时,从队列的队尾放回,完成释放;内存空间释放步骤:在退出系统时,释放所述内存空间。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈强戴立言李庆瑜
申请(专利权)人:上海网达软件股份有限公司
类型:发明
国别省市:上海;31

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

1