一种JavaScript对象存储、回收方法及装置制造方法及图纸

技术编号:16216351 阅读:28 留言:0更新日期:2017-09-15 22:32
本申请实施例提供一种JavaScript对象存储、回收方法及装置,通过将确定的JavaScript对象存储至目标存储位置(不同于JavaScript专用内存),获取用于指示目标存储位置的地址信息;从JavaScript专用内存中确定第一目标堆内存并存储地址信息的方式实现了对JavaScript对象的存储,降低了JavaScript引擎在运行过程中产生的JavaScript对象对JavaScript专用内存的占用,节省了通用内存、提高了数字电视中间件的运行效率。相应的,通过提供针对JavaScript对象存储方法的JavaScript对象回收方法,实现了对JavaScript专用内存的回收。

JavaScript object storage and recovery method and device

The embodiment of the application and device with a JavaScript object storage and recovery method, the JavaScript will determine the object storage to the target storage location (unlike JavaScript dedicated memory), to obtain the address information indicating the target location; the JavaScript object storage target first heap memory and stored address information to determine the way from JavaScript special memory, reducing the JavaScript engine in the process of running the JavaScript object JavaScript occupying dedicated memory, save memory and improve the general efficiency of the digital electro optic middleware. Accordingly, recovery of JavaScript dedicated memory is achieved by providing a JavaScript object recovery method for a JavaScript object storage method.

【技术实现步骤摘要】
一种JavaScript对象存储、回收方法及装置
本专利技术涉及内存管理
,特别是涉及一种JavaScript对象存储、回收方法及装置。
技术介绍
数字电视中间件是运行于机顶盒或数字电视上的一种软件,数字电视中间件的主要功能包括Web应用呈现、电视节目接收与解扰、本地节目播放等。万维网服务的客户端浏览程序(浏览器)可向万维网服务器发送各种请求,并对从服务器发来的超文本信息和各种多媒体数据格式进行解释、显示和播放,其是数字电视中间件的主要模块。JavaScript一种直译式脚本语言(JavaScript中的每个事物都可看成是JavaScript对象),它的解释器被称为JavaScript引擎(JavaScript引擎是一个专门处理JavaScript脚本的虚拟机,一般会附带在浏览器之中),为浏览器的一部分,广泛用于客户端的脚本语言。现有技术通常是将JavaScript专用内存从数字电视中间件的通用内存中分出,以仅用于JavaScript引擎在运行过程中的内存分配,实现对JavaScript引擎在处理JavaScript脚本过程中产生的JavaScript对象的存储。然而,经研究发现,在从通用内存中分配出较大的JavaScript专用内存以仅用于JavaScript引擎在运行过程中的内存分配的情况下,往往会使得通用内存剩余空间较小,进而导致数字电视中间件运行不顺畅的问题。
技术实现思路
有鉴于此,本专利技术实施例提供一种JavaScript对象存储、回收方法及装置,以实现节省通用内存,提高数字电视中间件的运行效率的目的。为了实现上述目的,本专利技术实施例提供的技术方案如下:一种JavaScript对象存储方法,包括:确定JavaScript引擎在处理JavaScript脚本的过程中产生的JavaScript对象;将所述JavaScript对象存储至目标存储位置,并获取用于指示所述目标存储位置的地址信息,所述目标存储位置不同于JavaScript专用内存;从所述JavaScript专用内存中确定用于存储所述地址信息的第一目标堆内存,所述第一目标堆内存的剩余空间大于所述地址信息的大小;将所述地址信息存储至所述第一目标堆内存。优选的,所述从所述JavaScript专用内存中确定用于存储所述地址信息的第一目标堆内存,包括:确定所述JavaScript专用内存中是否存在剩余空间不小于所述地址信息的大小的堆内存;若确定所述JavaScript专用内存中存在剩余空间不小于所述地址信息的大小的堆内存,从所述JavaScript专用内存中确定第一目标堆内存,所述第一目标堆内存的剩余空间不小于所述地址信息的大小;若确定所述JavaScript专用内存中不存在剩余空间大于等于所述地址信息的大小的堆内存,比较所述地址信息的大小与预设的堆内存的大小;当所述地址信息的大小不大于预设的堆内存的大小时,从通用内存中为所述JavaScript专用内存分配一个堆内存,所分配的堆内存的大小与所述预设的堆内存的大小相同;当所述地址信息的大小大于预设的堆内存的大小时,从通用内存中为所述JavaScript专用内存分配一个堆内存,所分配的堆内存的大小满足所述地址信息的存储需求。优选的,在确定所述JavaScript专用内存中是否存在剩余空间不小于所述地址信息的大小的堆内存之前,该方法还包括:确定所述JavaScript专用内存中是否存在堆内存;若确定所述JavaScript专用内存中不存在堆内存,比较所述地址信息的大小与预设的堆内存的大小;当所述地址信息的大小不大于预设的堆内存的大小时,从通用内存中为所述JavaScript专用内存分配一个堆内存,所分配的堆内存的大小与所述预设的堆内存的大小相同;当所述地址信息的大小大于预设的堆内存的大小时,从通用内存中为所述JavaScript专用内存分配一个堆内存,所分配的堆内存的大小满足所述地址信息的存储需求;所述确定所述JavaScript专用内存中是否存在剩余空间不小于所述地址信息的大小的堆内存,包括:若确定所述JavaScript专用内存中存在堆内存,确定所述JavaScript专用内存中是否存在剩余空间不小于所述地址信息的大小的堆内存。优选的,所述地址信息携带属性信息,所述属性信息用于指示所述地址信息指示的目标存储位置中存储的JavaScript对象可被回收/不可被回收。优选的,所述目标存储位置位于所述通用内存中。一种JavaScript对象存储装置,包括:第一确定单元,用于确定JavaScript引擎在处理JavaScript脚本的过程中产生的JavaScript对象;获取单元,用于将所述JavaScript对象存储至目标存储位置,并获取用于指示所述目标存储位置的地址信息,所述目标存储位置不同于JavaScript专用内存;第二确定单元,用于从所述JavaScript专用内存中确定用于存储所述地址信息的第一目标堆内存,所述第一目标堆内存的剩余空间大于所述地址信息的大小;存储单元,用于将所述地址信息存储至所述第一目标堆内存。优选的,所述第二确定单元,包括:第三确定单元,用于确定所述JavaScript专用内存中是否存在剩余空间不小于所述地址信息的大小的堆内存;第四确定单元,用于若确定所述JavaScript专用内存中存在剩余空间不小于所述地址信息的大小的堆内存,从所述JavaScript专用内存中确定第一目标堆内存,所述第一目标堆内存的剩余空间不小于所述地址信息的大小;比较单元,用于若确定所述JavaScript专用内存中不存在剩余空间大于等于所述地址信息的大小的堆内存,比较所述地址信息的大小与预设的堆内存的大小;第一分配单元,用于当所述地址信息的大小不大于预设的堆内存的大小时,从通用内存中为所述JavaScript专用内存分配一个堆内存,所分配的堆内存的大小与所述预设的堆内存的大小相同;第二分配单元,用于当所述地址信息的大小大于预设的堆内存的大小时,从通用内存中为所述JavaScript专用内存分配一个堆内存,所分配的堆内存的大小满足所述地址信息的存储需求。一种基于所述的JavaScript对象存储方法的JavaScript对象回收方法,包括:在满足JavaScript对象回收条件的情况下,从JavaScript专用内存中确定第二目标堆内存;释放所述第二目标堆内存中的每个地址信息,以及所述地址信息指示的目标存储位置中存储的JavaScript对象。优选的,所述第二目标堆内存中不存在目标地址信息,所述目标地址信息携带的属性信息指示所述目标地址信息指示的目标存储位置中存储的JavaScript对象不可被回收。一种JavaScript对象回收装置,包括:第五确定单元,用于在满足JavaScript对象回收条件的情况下,从JavaScript专用内存中确定第二目标堆内存;释放单元,用于释放所述第二目标堆内存中的每个地址信息,以及所述地址信息指示的目标存储位置中存储的JavaScript对象。本申请实施例提供一种JavaScript对象存储、回收方法及装置,通过将确定的JavaScript对象存储至目标存储位置(不同于JavaScript专用内存),获取用于指示目标存储位置的地址信息;从JavaScrip本文档来自技高网...
一种JavaScript对象存储、回收方法及装置

【技术保护点】
一种JavaScript对象存储方法,其特征在于,包括:确定JavaScript引擎在处理JavaScript脚本的过程中产生的JavaScript对象;将所述JavaScript对象存储至目标存储位置,并获取用于指示所述目标存储位置的地址信息,所述目标存储位置不同于JavaScript专用内存;从所述JavaScript专用内存中确定用于存储所述地址信息的第一目标堆内存,所述第一目标堆内存的剩余空间大于所述地址信息的大小;将所述地址信息存储至所述第一目标堆内存。

【技术特征摘要】
1.一种JavaScript对象存储方法,其特征在于,包括:确定JavaScript引擎在处理JavaScript脚本的过程中产生的JavaScript对象;将所述JavaScript对象存储至目标存储位置,并获取用于指示所述目标存储位置的地址信息,所述目标存储位置不同于JavaScript专用内存;从所述JavaScript专用内存中确定用于存储所述地址信息的第一目标堆内存,所述第一目标堆内存的剩余空间大于所述地址信息的大小;将所述地址信息存储至所述第一目标堆内存。2.根据权利要求1所述的方法,其特征在于,所述从所述JavaScript专用内存中确定用于存储所述地址信息的第一目标堆内存,包括:确定所述JavaScript专用内存中是否存在剩余空间不小于所述地址信息的大小的堆内存;若确定所述JavaScript专用内存中存在剩余空间不小于所述地址信息的大小的堆内存,从所述JavaScript专用内存中确定第一目标堆内存,所述第一目标堆内存的剩余空间不小于所述地址信息的大小;若确定所述JavaScript专用内存中不存在剩余空间大于等于所述地址信息的大小的堆内存,比较所述地址信息的大小与预设的堆内存的大小;当所述地址信息的大小不大于预设的堆内存的大小时,从通用内存中为所述JavaScript专用内存分配一个堆内存,所分配的堆内存的大小与所述预设的堆内存的大小相同;当所述地址信息的大小大于预设的堆内存的大小时,从通用内存中为所述JavaScript专用内存分配一个堆内存,所分配的堆内存的大小满足所述地址信息的存储需求。3.根据权利要求2所述的方法,其特征在于,在确定所述JavaScript专用内存中是否存在剩余空间不小于所述地址信息的大小的堆内存之前,该方法还包括:确定所述JavaScript专用内存中是否存在堆内存;若确定所述JavaScript专用内存中不存在堆内存,比较所述地址信息的大小与预设的堆内存的大小;当所述地址信息的大小不大于预设的堆内存的大小时,从通用内存中为所述JavaScript专用内存分配一个堆内存,所分配的堆内存的大小与所述预设的堆内存的大小相同;当所述地址信息的大小大于预设的堆内存的大小时,从通用内存中为所述JavaScript专用内存分配一个堆内存,所分配的堆内存的大小满足所述地址信息的存储需求;所述确定所述JavaScript专用内存中是否存在剩余空间不小于所述地址信息的大小的堆内存,包括:若确定所述JavaScript专用内存中存在堆内存,确定所述JavaScript专用内存中是否存在剩余空间不小于所述地址信息的大小的堆内存。4.根据权利要求3所述的方法,其特征在于,所述地址信息携带属性信息,所述属性信息用于指示所述地址信息指示的目标存储位置中存储的JavaScript对象可被回收...

【专利技术属性】
技术研发人员:徐佳宏刘瑞顺朱吕亮
申请(专利权)人:深圳市茁壮网络股份有限公司
类型:发明
国别省市:广东,44

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

1