一种内存释放方法及系统技术方案

技术编号:21476943 阅读:31 留言:0更新日期:2019-06-29 04:39
本发明专利技术公开了一种内存释放方法及系统,基于内存中每个数据块的多个预设属性,每个预设属性在预设优先级顺序中的位置,以及每个预设属性的属性值,得到表征数据块重要等级的特征编码值,选取特征编码值小的数据块作为目标数据块进行释放。本发明专利技术在确定需要释放的数据块时,通过综合每个数据块的多个预设属性、每个预设属性在预设优先级顺序中的位置,以及每个预设属性的属性值,来确定数据块的重要等级,从而基于数据块的重要等级确定是否释放该数据块,因此大大简化了数据块在内存的释放逻辑,有效避免了数据块释放错误情况的出现。

【技术实现步骤摘要】
一种内存释放方法及系统
本专利技术涉及数据缓存
,更具体的说,涉及一种内存释放方法及系统。
技术介绍
因业务及客户端逻辑架构原因,通常会根据客户端的内容获取速度、网络带宽情况,为每种信号源内容提供若干分辨率的信号获取链路,每个清晰度的视频信号按照时间轴分若干分段,每个分段分若干数据块。在视频播放期间,内存中通常会存在已经播放的分段,未播放的分段,未播放但已下载且未保存的数据块等等。为了不影响视频的正常播放,内存在进行数据块释放时,都需要对上述情况做权衡对比,确定哪个数据块是可以释放的,当前播放位置更适合释放哪个数据块等等。综上,现有方案中数据块在内存的释放逻辑较为复杂,因此,很容易出现数据块释放错误的情况。
技术实现思路
有鉴于此,本专利技术公开一种内存释放方法及系统,以实现简化数据块在内存的释放逻辑,减少内存的数据处理量,有效避免数据块释放错误情况的出现。一种内存释放方法,包括:确定内存中每个数据块的多个预设属性中,每个所述预设属性在预设优先级顺序中的位置;确定每个所述数据块的每个所述预设属性的属性值;基于每个所述数据块的所有的所述预设属性,每个所述预设属性在所述预设优先级顺序中的所述位置,以及每个所述预设属性的所述属性值,得到每个所述数据块的特征编码值,所述特征编码值表征相对应的数据块的重要等级;当满足预设释放条件时,选取预设数量的所述数据块作为目标数据块进行释放,每个所述目标数据块的所述特征编码值小于所述内存中除所述目标数据块以外的任何一个所述数据块的所述特征编码值。可选的,所述预设属性为如下属性中的任意一种:数据块所在分段为当前播放分段;数据块所在分段为当前播放视频的分段;数据块为已播放的数据块;数据块为已保存的数据块;数据块所在当前分段索引距当前播放分段索引的距离;数据块的块编号与当前播放的数据块的块编号的距离;数据块的添加时间。可选的,所述确定每个所述数据块的每个所述预设属性的属性值,具体包括:EPT_PLAY:数据块所在分段为当前播放分段,如果是,则EPT_PLAY相对应的属性值为:1;如果否,则EPT_PLAY相对应的属性值为:0;EPT_VID:数据块所在分段为当前播放视频的分段,如果是,则EPT_VID相对应的属性值为:1;如果否,则EPT_VID相对应的属性值为:0;EPT_PLAYED:数据块为已播放的数据块,如果是,则EPT_PLAYED相对应的属性值为:1;如果否,则EPT_PLAYED相对应的属性值为:0;EPT_SAVED:数据块为已保存的数据块,如果是,则EPT_SAVED相对应的属性值为:1;如果否,则EPT_SAVED相对应的属性值为:0;EPT_FID:数据块所在当前分段索引距当前播放分段索引的距离,当距离为0时,EPT_FID相对应的属性值为:0;当距离为非0时,EPT_FID的属性值的计算公式如下:Value=min(abs(uCurrentFidIndex-uPlayFidIndex),0x7f);式中,min为:两者取最小,abs为:取绝对值,uCurrentFidIndex为:数据块所在当前分段文件的索引序号,uPlayFidIndex为:当前播放分段文件的索引序号,0x7f为:十六进制数字;EPT_BLOCK:数据块的块编号与当前播放的数据块的块编号的距离,当距离为0时,EPT_BLOCK相对应的属性值为:0;当距离为非0时,EPT_BLOCK的属性值的计算公式如下:Value=min(abs(BlockNo–uPlayBlockNo),0x7f);式中,min为:两者取最小,abs为:取绝对值,BlockNo为:分段文件内的块编号,uPlayBlockNo为:当前播放的数据块的块编号,0x7f为:十六进制数字;EPT_TIME:数据块的添加时间,EPT_TIME的属性值为:时间值;时间值的计算公式如下:Value=min((数据块的当前时间戳秒数–数据块最后访问时间戳秒数)/100,0xff);式中,min为:两者取最小,/为取商运算,0xff为:十六进制数字。可选的,所述基于每个所述数据块的所有的所述预设属性,每个所述预设属性在所述预设优先级顺序中的所述位置,以及每个所述预设属性的所述属性值,得到每个所述数据块的特征编码值,具体包括:根据如下公式计算得到所述特征编码值Key,公式如下:式中,i为预设属性的编号,编号为各个预设属性所占用的位置,从右往左,从0开始,依次的顺序号,i>0,当i=0时,不进行移位运算,Ni为编号为i的所述预设属性的属性名,V(Ni)为Ni的属性值,m为所述预设属性的总个数,m>0,Bj为编号为j的预设属性占用的bit位数,j为预设属性的编号,<<为位运算操作符的向左移位操作,为i位置的属性值向左移动的位数,为每个被移动的属性值在参与计算时移位之后的值。可选的,还包括:将释放的所述目标数据块所占用的存储空间回收到所述内存的一个预设位置;当添加新数据块时,释放所述预设位置,并将所述新数据块放置在所述预设位置。一种内存释放系统,包括:第一确定单元,用于确定内存中每个数据块的多个预设属性中,每个所述预设属性在预设优先级顺序中的位置;第二确定单元,用于确定每个所述数据块的每个所述预设属性的属性值;特征编码值获取单元,用于基于每个所述数据块的所有的所述预设属性,每个所述预设属性在所述预设优先级顺序中的所述位置,以及每个所述预设属性的所述属性值,得到每个所述数据块的特征编码值,所述特征编码值表征相对应的数据块的重要等级;释放单元,用于当满足预设释放条件时,选取预设数量的所述数据块作为目标数据块进行释放,每个所述目标数据块的所述特征编码值小于所述内存中除所述目标数据块以外的任何一个所述数据块的所述特征编码值。可选的,所述预设属性为如下属性中的任意一种:数据块所在分段为当前播放分段;数据块所在分段为当前播放视频的分段;数据块为已播放的数据块;数据块为已保存的数据块;数据块所在当前分段索引距当前播放分段索引的距离;数据块的块编号与当前播放的数据块的块编号的距离;数据块的添加时间。可选的,所述第二确定单元具体用于:EPT_PLAY:数据块所在分段为当前播放分段,如果是,则EPT_PLAY相对应的属性值为:1;如果否,则EPT_PLAY相对应的属性值为:0;EPT_VID:数据块所在分段为当前播放视频的分段,如果是,则EPT_VID相对应的属性值为:1;如果否,则EPT_VID相对应的属性值为:0;EPT_PLAYED:数据块为已播放的数据块,如果是,则EPT_PLAYED相对应的属性值为:1;如果否,则EPT_PLAYED相对应的属性值为:0;EPT_SAVED:数据块为已保存的数据块,如果是,则EPT_SAVED相对应的属性值为:1;如果否,则EPT_SAVED相对应的属性值为:0;EPT_FID:数据块所在当前分段索引距当前播放分段索引的距离,当距离为0时,EPT_FID相对应的属性值为:0;当距离为非0时,EPT_FID的属性值的计算公式如下:Value=min(abs(uCurrentFidIndex-uPlayFidIndex),0x7f);式中,min为:两者取最小,abs为:取绝对值,uCurrentF本文档来自技高网...

【技术保护点】
1.一种内存释放方法,其特征在于,包括:确定内存中每个数据块的多个预设属性中,每个所述预设属性在预设优先级顺序中的位置;确定每个所述数据块的每个所述预设属性的属性值;基于每个所述数据块的所有的所述预设属性,每个所述预设属性在所述预设优先级顺序中的所述位置,以及每个所述预设属性的所述属性值,得到每个所述数据块的特征编码值,所述特征编码值表征相对应的数据块的重要等级;当满足预设释放条件时,选取预设数量的所述数据块作为目标数据块进行释放,每个所述目标数据块的所述特征编码值小于所述内存中除所述目标数据块以外的任何一个所述数据块的所述特征编码值。

【技术特征摘要】
1.一种内存释放方法,其特征在于,包括:确定内存中每个数据块的多个预设属性中,每个所述预设属性在预设优先级顺序中的位置;确定每个所述数据块的每个所述预设属性的属性值;基于每个所述数据块的所有的所述预设属性,每个所述预设属性在所述预设优先级顺序中的所述位置,以及每个所述预设属性的所述属性值,得到每个所述数据块的特征编码值,所述特征编码值表征相对应的数据块的重要等级;当满足预设释放条件时,选取预设数量的所述数据块作为目标数据块进行释放,每个所述目标数据块的所述特征编码值小于所述内存中除所述目标数据块以外的任何一个所述数据块的所述特征编码值。2.根据权利要求1所述的内存释放方法,其特征在于,所述预设属性为如下属性中的任意一种:数据块所在分段为当前播放分段;数据块所在分段为当前播放视频的分段;数据块为已播放的数据块;数据块为已保存的数据块;数据块所在当前分段索引距当前播放分段索引的距离;数据块的块编号与当前播放的数据块的块编号的距离;数据块的添加时间。3.根据权利要求2所述的内存释放方法,其特征在于,所述确定每个所述数据块的每个所述预设属性的属性值,具体包括:EPT_PLAY:数据块所在分段为当前播放分段,如果是,则EPT_PLAY相对应的属性值为:1;如果否,则EPT_PLAY相对应的属性值为:0;EPT_VID:数据块所在分段为当前播放视频的分段,如果是,则EPT_VID相对应的属性值为:1;如果否,则EPT_VID相对应的属性值为:0;EPT_PLAYED:数据块为已播放的数据块,如果是,则EPT_PLAYED相对应的属性值为:1;如果否,则EPT_PLAYED相对应的属性值为:0;EPT_SAVED:数据块为已保存的数据块,如果是,则EPT_SAVED相对应的属性值为:1;如果否,则EPT_SAVED相对应的属性值为:0;EPT_FID:数据块所在当前分段索引距当前播放分段索引的距离,当距离为0时,EPT_FID相对应的属性值为:0;当距离为非0时,EPT_FID的属性值的计算公式如下:Value=min(abs(uCurrentFidIndex-uPlayFidIndex),0x7f);式中,min为:两者取最小,abs为:取绝对值,uCurrentFidIndex为:数据块所在当前分段文件的索引序号,uPlayFidIndex为:当前播放分段文件的索引序号,0x7f为:十六进制数字;EPT_BLOCK:数据块的块编号与当前播放的数据块的块编号的距离,当距离为0时,EPT_BLOCK相对应的属性值为:0;当距离为非0时,EPT_BLOCK的属性值的计算公式如下:Value=min(abs(BlockNo–uPlayBlockNo),0x7f);式中,min为:两者取最小,abs为:取绝对值,BlockNo为:分段文件内的块编号,uPlayBlockNo为:当前播放的数据块的块编号,0x7f为:十六进制数字;EPT_TIME:数据块的添加时间,EPT_TIME的属性值为:时间值;时间值的计算公式如下:Value=min((数据块的当前时间戳秒数–数据块最后访问时间戳秒数)/100,0xff);式中,min为:两者取最小,/为取商运算,0xff为:十六进制数字。4.根据权利要求1-3之任一项所述的内存释放方法,其特征在于,所述基于每个所述数据块的所有的所述预设属性,每个所述预设属性在所述预设优先级顺序中的所述位置,以及每个所述预设属性的所述属性值,得到每个所述数据块的特征编码值,具体包括:根据如下公式计算得到所述特征编码值Key,公式如下:式中,i为预设属性的编号,编号为各个预设属性所占用的位置,从右往左,从0开始,依次的顺序号,i>0,当i=0时,不进行移位运算,Ni为编号为i的所述预设属性的属性名,V(Ni)为Ni的属性值,m为所述预设属性的总个数,m>0,Bj为编号为j的预设属性占用的bit位数,j为预设属性的编号,<<为位运算操作符的向左移位操作,为i位置的属性值向左移动的位数,为每个被移动的属性值在参与计算时移位之后的值。5.根据权利要求1所述的内存释放方法,其特征在于,还包括:将释放的所述目标数据块所占用的存储空间回收到所述内存的一个预设位置;当添加新数据块时,释放所述预设位置,并...

【专利技术属性】
技术研发人员:田江明
申请(专利权)人:北京奇艺世纪科技有限公司
类型:发明
国别省市:北京,11

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

1