CN107145451A - 一种JavaScript对象存储、回收方法及装置 - Google Patents

一种JavaScript对象存储、回收方法及装置 Download PDF

Info

Publication number
CN107145451A
CN107145451A CN201710322366.4A CN201710322366A CN107145451A CN 107145451 A CN107145451 A CN 107145451A CN 201710322366 A CN201710322366 A CN 201710322366A CN 107145451 A CN107145451 A CN 107145451A
Authority
CN
China
Prior art keywords
javascript
heap memory
memory
size
javascript object
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710322366.4A
Other languages
English (en)
Other versions
CN107145451B (zh
Inventor
徐佳宏
刘瑞顺
朱吕亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Ipanel TV Inc
Original Assignee
Shenzhen Ipanel TV Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Ipanel TV Inc filed Critical Shenzhen Ipanel TV Inc
Priority to CN201710322366.4A priority Critical patent/CN107145451B/zh
Publication of CN107145451A publication Critical patent/CN107145451A/zh
Application granted granted Critical
Publication of CN107145451B publication Critical patent/CN107145451B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本申请实施例提供一种JavaScript对象存储、回收方法及装置,通过确定JavaScript对象的大小是否到达预设的对象阈值;若是,从通用内存中为JavaScript专用内存分配一个堆内存,所述堆内存设置有独占标记;将所述JavaScript对象存储至所述堆内存中的方式,保证了大小到达预设的对象阈值的JavaScript对象在一堆内存中的单独存储,使得在进行JavaScript对象回收时,所述JavaScript对象占用的堆内存的回收与其他JavaScript对象占用的堆内存的回收之间互不影响,进而实现了节省通用内存,提高数字电视中间件的运行效率的目的。

Description

一种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专用内存中是否存在剩余空间不小于所述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对象占用的堆内存的回收之间互不影响,进而实现了节省通用内存,提高数字电视中间件的运行效率的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种JavaScript对象存储方法流程图;
图2为本申请实施例提供的另一种JavaScript对象存储方法流程图;
图3为本申请实施例提供的一种从JavaScript专用内存中确定用于存储所述JavaScript对象的设置有非独占标记的第一目标堆内存方法流程图;
图4为本申请实施例提供的另一种从JavaScript专用内存中确定用于存储所述JavaScript对象的设置有非独占标记的第一目标堆内存方法流程图;
图5为本申请实施例提供的一种JavaScript对象存储装置的结构示意图;
图6为本申请实施例提供的一种JavaScript对象回收方法流程图;
图7为本申请实施例提供的一种JavaScript对象回收装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
实施例:
图1为本申请实施例提供的一种JavaScript对象存储方法流程图。
如图1所示,该方法包括:
S101、确定JavaScript引擎在处理JavaScript脚本的过程中产生的JavaScript对象;
S102、确定所述JavaScript对象的大小是否到达预设的对象阈值;若确定所述JavaScript对象的大小到达预设的对象阈值,执行步骤S103;
S103、从通用内存中为JavaScript专用内存分配一个仅用于存储所述JavaScript对象的堆内存,所述堆内存设置有独占标记;
可选的,从通用内存中为JavaScript专用内存分配一个仅用于存储所述JavaScript对象的堆内存的大小,满足所述JavaScript对象的存储需求。
S104、将所述JavaScript对象存储至所述JavaScript专用内存中的所述堆内存中。
图2为本申请实施例提供的另一种JavaScript对象存储方法流程图。
如图2所示,该方法包括:
S201、确定JavaScript引擎在处理JavaScript脚本的过程中产生的JavaScript对象;
S202、确定所述JavaScript对象的大小是否到达预设的对象阈值;若确定所述JavaScript对象的大小到达预设的对象阈值,执行步骤S203;若确定所述JavaScript对象的大小未到达预设的对象阈值,执行步骤S205;
S203、从通用内存中为JavaScript专用内存分配一个仅用于存储所述JavaScript对象的堆内存,所述堆内存设置有独占标记;
S204、将所述JavaScript对象存储至所述JavaScript专用内存中的所述堆内存中;
本申请实施例提供的步骤S201-S204的执行过程与上述实施例提供的步骤S101-S104的执行过程相同,有关步骤S201-S204的执行过程请参照上述对步骤S101-S104的描述,在此不做赘述。
S205、从JavaScript专用内存中确定用于存储所述JavaScript对象的设置有非独占标记的第一目标堆内存,所述第一目标堆内存的剩余空间大于所述JavaScript对象;
S206、将所述JavaScript对象存储至所述第一目标堆内存。
图3为本申请实施例提供的一种从JavaScript专用内存中确定用于存储所述JavaScript对象的设置有非独占标记的第一目标堆内存方法流程图。
如图3所示,该方法包括:
S301、确定JavaScript专用内存中是否存在剩余空间不小于所述JavaScript对象的大小的设置有非独占标记的堆内存;若确定JavaScript专用内存中存在剩余空间不小于所述JavaScript对象的大小的设置有非独占标记的堆内存,执行步骤S302;若确定JavaScript专用内存中不存在剩余空间不小于所述JavaScript对象的大小的设置有非独占标记的堆内存,执行步骤S303;
S302、从所述JavaScript专用内存中确定第一目标堆内存,所述第一目标堆内存的剩余空间不小于所述JavaScript对象的大小;
S303、比较所述JavaScript对象的大小与预设的堆内存的大小;当所述JavaScript对象的大小不大于预设的堆内存的大小时,执行步骤S304;当所述JavaScript对象的大小大于预设的堆内存的大小时,执行步骤S305;
S304、从通用内存中为所述JavaScript专用内存分配一个堆内存,所分配的堆内存的大小与所述预设的堆内存的大小相同,所分配的堆内存设置有非独占标记;
S305、从通用内存中为所述JavaScript专用内存分配一个堆内存,所分配的堆内存的大小满足所述JavaScript对象的存储需求,所分配的堆内存设置有非独占标记。
图4为本申请实施例提供的另一种从JavaScript专用内存中确定用于存储所述JavaScript对象的设置有非独占标记的第一目标堆内存方法流程图。
如图4所示,该方法包括:
S401、确定JavaScript专用内存中是否存在设置有非独占标记的堆内存;若确定JavaScript专用内存中存在设置有非独占标记的堆内存,执行步骤S402、若确定JavaScript专用内存中不存在设置有非独占标记的堆内存,执行步骤S404;
S402、确定JavaScript专用内存中是否存在剩余空间不小于所述JavaScript对象的大小的设置有非独占标记的堆内存;若确定JavaScript专用内存中存在剩余空间不小于所述JavaScript对象的大小的设置有非独占标记的堆内存,执行步骤S403;若确定JavaScript专用内存中不存在剩余空间不小于所述JavaScript对象的大小的设置有非独占标记的堆内存,执行步骤S404、
S403、从所述JavaScript专用内存中确定第一目标堆内存,所述第一目标堆内存的剩余空间不小于所述JavaScript对象的大小;
S404、比较所述JavaScript对象的大小与预设的堆内存的大小;当所述JavaScript对象的大小不大于预设的堆内存的大小时,执行步骤S405;当所述JavaScript对象的大小大于预设的堆内存的大小时,执行步骤S406;
S405、从通用内存中为所述JavaScript专用内存分配一个堆内存,所分配的堆内存的大小与所述预设的堆内存的大小相同,所分配的堆内存设置有非独占标记;
S406、从通用内存中为所述JavaScript专用内存分配一个堆内存,所分配的堆内存的大小满足所述JavaScript对象的存储需求,所分配的堆内存设置有非独占标记。
在本申请实施例中,优选的,JavaScript对象携带回收标识,所述回收标识指示JavaScript对象可被回收/不可被回收。
在本申请实施例中,优选的,所述对象阈值的大小不大于所述预设的堆内存的大小。
以上仅仅是本申请实施例的优选方式,发明人可根据自己的需求人员设置对象阈值的大小,以及预设的堆内存的大小,在此不做限定。
本申请实施例提供一种JavaScript对象存储方法,通过确定JavaScript对象的大小是否到达预设的对象阈值;若是,从通用内存中为JavaScript专用内存分配一个堆内存,所述堆内存设置有独占标记;将所述JavaScript对象存储至所述堆内存中的方式,保证了大小到达预设的对象阈值的JavaScript对象在一堆内存中的单独存储,使得在进行JavaScript对象回收时,所述JavaScript对象占用的堆内存的回收与其他JavaScript对象占用的堆内存的回收之间互不影响,进而实现了节省通用内存,提高数字电视中间件的运行效率的目的。
图5为本申请实施例提供的一种JavaScript对象存储装置的结构示意图。
如图5所示,该装置包括:
JavaScript对象确定单元51,用于确定JavaScript引擎在处理JavaScript脚本的过程中产生的JavaScript对象;
对象阈值确定单元52,用于确定所述JavaScript对象的大小是否到达预设的对象阈值;
堆内存分配单元53,用于若确定所述JavaScript对象的大小到达预设的对象阈值,从通用内存中为JavaScript专用内存分配一个堆内存,所述堆内存设置有独占标记;
存储单元54,用于将所述JavaScript对象存储至所述JavaScript专用内存中的所述堆内存中。
在本申请实施例中,优选的,所述对象阈值的大小不大于所述预设的堆内存的大小。
本申请实施例提供一种JavaScript对象存储装置,通过确定JavaScript对象的大小是否到达预设的对象阈值;若是,从通用内存中为JavaScript专用内存分配一个堆内存,所述堆内存设置有独占标记;将所述JavaScript对象存储至所述堆内存中的方式,保证了大小到达预设的对象阈值的JavaScript对象在一堆内存中的单独存储,使得在进行JavaScript对象回收时,所述JavaScript对象占用的堆内存的回收与其他JavaScript对象占用的堆内存的回收之间互不影响,进而实现了节省通用内存,提高数字电视中间件的运行效率的目的。
图6为本申请实施例提供的一种JavaScript对象回收方法流程图。
如图6所示,该方法包括:
S601、在满足JavaScript对象回收条件的情况下,从JavaScript专用内存中确定第二目标堆内存,所述第二目标堆内存中的每个JavaScript对象携带的回收标识均指示JavaScript对象可被回收;
可选的,可选的,满足JavaScript对象回收条件,包括:接收到JavaScript对象回收请求。
所述在满足JavaScript对象回收条件的情况下,从JavaScript专用内存中确定第二目标堆内存,包括:响应接收到的JavaScript对象回收请求,从所述JavaScript对象回收请求指示的JavaScript专用内存中确定第二目标堆内存。
S602、释放所述第二目标堆内存中的每个JavaScript对象。
本申请实施例提供一种JavaScript对象回收方法,通过提供针对所述JavaScript对象存储方法的JavaScript对象回收方法,实现了对JavaScript专用内存的回收。
图7为本申请实施例提供的一种JavaScript对象回收装置的结构示意图。
如图7所示,该装置包括:
第二目标堆内存确定单元71,用于在满足JavaScript对象回收条件的情况下,从JavaScript专用内存中确定第二目标堆内存,所述第二目标堆内存中的每个JavaScript对象携带的回收标识均指示JavaScript对象可被回收;
释放单元72,用于释放所述第二目标堆内存中的每个JavaScript对象。
本申请实施例提供一种JavaScript对象回收装置,通过提供针对所述JavaScript对象存储方法的JavaScript对象回收装置,实现了对JavaScript专用内存的回收。
本发明中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
以上仅是本发明的优选实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种JavaScript对象存储方法,其特征在于,包括:
确定JavaScript引擎在处理JavaScript脚本的过程中产生的JavaScript对象;
确定所述JavaScript对象的大小是否到达预设的对象阈值;
若确定所述JavaScript对象的大小到达预设的对象阈值,从通用内存中为JavaScript专用内存分配一个仅用于存储所述JavaScript对象的堆内存,所述堆内存设置有独占标记;
将所述JavaScript对象存储至所述JavaScript专用内存中的所述堆内存中。
2.根据权利要求1所述的方法,其特征在于,若确定所述JavaScript对象的大小未到达预设的对象阈值,该方法还包括:
从JavaScript专用内存中确定用于存储所述JavaScript对象的设置有非独占标记的第一目标堆内存,所述第一目标堆内存的剩余空间大于所述JavaScript对象;
将所述JavaScript对象存储至所述第一目标堆内存。
3.根据权利要求2所述的方法,其特征在于,所述从JavaScript专用内存中确定用于存储所述JavaScript对象的设置有非独占标记的第一目标堆内存,包括:
确定JavaScript专用内存中是否存在剩余空间不小于所述JavaScript对象的大小的设置有非独占标记的堆内存;
若确定JavaScript专用内存中存在剩余空间不小于所述JavaScript对象的大小的设置有非独占标记的堆内存,从所述JavaScript专用内存中确定第一目标堆内存,所述第一目标堆内存的剩余空间不小于所述JavaScript对象的大小;
若确定JavaScript专用内存中不存在剩余空间不小于所述JavaScript对象的大小的设置有非独占标记的堆内存,比较所述JavaScript对象的大小与预设的堆内存的大小;
当所述JavaScript对象的大小不大于预设的堆内存的大小时,从通用内存中为所述JavaScript专用内存分配一个堆内存,所分配的堆内存的大小与所述预设的堆内存的大小相同,所分配的堆内存设置有非独占标记;
当所述JavaScript对象的大小大于预设的堆内存的大小时,从通用内存中为所述JavaScript专用内存分配一个堆内存,所分配的堆内存的大小满足所述JavaScript对象的存储需求,所分配的堆内存设置有非独占标记。
4.根据权利要求3所述的方法,其特征在于,在所述确定JavaScript专用内存中是否存在剩余空间不小于所述JavaScript对象的大小的设置有非独占标记的堆内存之前,该方法还包括:
确定JavaScript专用内存中是否存在设置有非独占标记的堆内存;
若确定JavaScript专用内存中不存在设置有非独占标记的堆内存,比较所述JavaScript对象的大小与预设的堆内存的大小;
当所述JavaScript对象的大小不大于预设的堆内存的大小时,从通用内存中为所述JavaScript专用内存分配一个堆内存,所分配的堆内存的大小与所述预设的堆内存的大小相同,所分配的堆内存设置有非独占标记;
当所述JavaScript对象的大小大于预设的堆内存的大小时,从通用内存中为所述JavaScript专用内存分配一个堆内存,所分配的堆内存的大小满足所述JavaScript对象的存储需求,所分配的堆内存设置有非独占标记;
所述确定JavaScript专用内存中是否存在剩余空间不小于所述JavaScript对象的大小的设置有非独占标记的堆内存,包括:若确定JavaScript专用内存中存在设置有非独占标记的堆内存,确定所述JavaScript专用内存中是否存在剩余空间不小于所述JavaScript对象的大小的设置有非独占标记的堆内存。
5.根据权利要求1所述的方法,其特征在于,JavaScript对象携带回收标识,所述回收标识指示JavaScript对象可被回收/不可被回收。
6.根据权利要求1所述的方法,其特征在于,所述对象阈值的大小不大于所述预设的堆内存的大小。
7.一种JavaScript对象存储装置,其特征在于,包括:
JavaScript对象确定单元,用于确定JavaScript引擎在处理JavaScript脚本的过程中产生的JavaScript对象;
对象阈值确定单元,用于确定所述JavaScript对象的大小是否到达预设的对象阈值;
堆内存分配单元,用于若确定所述JavaScript对象的大小到达预设的对象阈值,从通用内存中为JavaScript专用内存分配一个堆内存,所述堆内存设置有独占标记;
存储单元,用于将所述JavaScript对象存储至所述JavaScript专用内存中的所述堆内存中。
8.根据权利要6所述的装置,其特征在于,所述对象阈值的大小不大于所述预设的堆内存的大小。
9.一种基于如上述权利要求1-5任意一项所述的JavaScript对象存储方法的JavaScript对象回收方法,其特征在于,包括:
在满足JavaScript对象回收条件的情况下,从JavaScript专用内存中确定第二目标堆内存,所述第二目标堆内存中的每个JavaScript对象携带的回收标识均指示JavaScript对象可被回收;
释放所述第二目标堆内存中的每个JavaScript对象。
10.一种JavaScript对象回收装置,其特征在于,包括:
第二目标堆内存确定单元,用于在满足JavaScript对象回收条件的情况下,从JavaScript专用内存中确定第二目标堆内存,所述第二目标堆内存中的每个JavaScript对象携带的回收标识均指示JavaScript对象可被回收;
释放单元,用于释放所述第二目标堆内存中的每个JavaScript对象。
CN201710322366.4A 2017-05-09 2017-05-09 一种JavaScript对象存储、回收方法及装置 Active CN107145451B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710322366.4A CN107145451B (zh) 2017-05-09 2017-05-09 一种JavaScript对象存储、回收方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710322366.4A CN107145451B (zh) 2017-05-09 2017-05-09 一种JavaScript对象存储、回收方法及装置

Publications (2)

Publication Number Publication Date
CN107145451A true CN107145451A (zh) 2017-09-08
CN107145451B CN107145451B (zh) 2020-09-25

Family

ID=59777345

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710322366.4A Active CN107145451B (zh) 2017-05-09 2017-05-09 一种JavaScript对象存储、回收方法及装置

Country Status (1)

Country Link
CN (1) CN107145451B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108563517A (zh) * 2018-03-30 2018-09-21 腾讯科技(深圳)有限公司 系统接口的调用方法及装置
CN109324904A (zh) * 2018-09-29 2019-02-12 智器云南京信息科技有限公司 动态内存管理方法及装置
CN110020314A (zh) * 2017-12-21 2019-07-16 广州市动景计算机科技有限公司 Web页面数据处理方法、装置、计算设备和存储介质
CN112965822A (zh) * 2021-03-18 2021-06-15 上海交通大学 利用数组池优化javaScript/typeScript程序内存性能的方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100235587A1 (en) * 2009-03-16 2010-09-16 Argilsoft Llc Staged Software Transactional Memory
CN102736984A (zh) * 2011-03-29 2012-10-17 微软公司 用于存储器管理的使用并发标记和并发扫掠的保守垃圾收集
US20140040565A1 (en) * 2012-07-31 2014-02-06 Anthony Asaro Shared Memory Space in a Unified Memory Model
CN104412240A (zh) * 2012-07-27 2015-03-11 英特尔公司 用于存储器管理的系统和方法
CN105227342A (zh) * 2014-06-27 2016-01-06 瞻博网络公司 用于网络服务域中的服务规划和配置的图形数据库
CN105589890A (zh) * 2014-11-05 2016-05-18 中国银联股份有限公司 内存共享框架系统
CN105630599A (zh) * 2014-10-28 2016-06-01 龙芯中科技术有限公司 基于32/64位混合操作系统的显存分配方法及装置
CN105808219A (zh) * 2014-12-29 2016-07-27 中国移动通信集团公司 一种内存空间分配方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100235587A1 (en) * 2009-03-16 2010-09-16 Argilsoft Llc Staged Software Transactional Memory
CN102736984A (zh) * 2011-03-29 2012-10-17 微软公司 用于存储器管理的使用并发标记和并发扫掠的保守垃圾收集
CN104412240A (zh) * 2012-07-27 2015-03-11 英特尔公司 用于存储器管理的系统和方法
US20140040565A1 (en) * 2012-07-31 2014-02-06 Anthony Asaro Shared Memory Space in a Unified Memory Model
CN105227342A (zh) * 2014-06-27 2016-01-06 瞻博网络公司 用于网络服务域中的服务规划和配置的图形数据库
CN105630599A (zh) * 2014-10-28 2016-06-01 龙芯中科技术有限公司 基于32/64位混合操作系统的显存分配方法及装置
CN105589890A (zh) * 2014-11-05 2016-05-18 中国银联股份有限公司 内存共享框架系统
CN105808219A (zh) * 2014-12-29 2016-07-27 中国移动通信集团公司 一种内存空间分配方法及装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110020314A (zh) * 2017-12-21 2019-07-16 广州市动景计算机科技有限公司 Web页面数据处理方法、装置、计算设备和存储介质
CN108563517A (zh) * 2018-03-30 2018-09-21 腾讯科技(深圳)有限公司 系统接口的调用方法及装置
CN108563517B (zh) * 2018-03-30 2020-11-03 腾讯科技(深圳)有限公司 系统接口的调用方法及装置
CN109324904A (zh) * 2018-09-29 2019-02-12 智器云南京信息科技有限公司 动态内存管理方法及装置
CN112965822A (zh) * 2021-03-18 2021-06-15 上海交通大学 利用数组池优化javaScript/typeScript程序内存性能的方法

Also Published As

Publication number Publication date
CN107145451B (zh) 2020-09-25

Similar Documents

Publication Publication Date Title
CN107145451A (zh) 一种JavaScript对象存储、回收方法及装置
CN102685272B (zh) 一种分配公网地址的方法及装置
CN107105050B (zh) 一种业务对象的存储、下载方法及系统
CN104780232B (zh) 一种资源分配方法、控制器及系统
CN104378455A (zh) Ip地址分配方法以及装置
CN114070822B (zh) 一种Kubernetes Overlay IP地址管理方法
CN104394096A (zh) 一种基于多核处理器的报文处理方法及多核处理器
CN112214313A (zh) 内存分配方法及相关设备
CN107209716A (zh) 内存管理装置和方法
CN108984295A (zh) 内存回收方法、计算机装置及计算机可读存储介质
CN103389945A (zh) 一种内存管理的方法及装置
CN108882053A (zh) 弹幕消息分发方法、装置、设备及存储介质
CN115426361A (zh) 分布式客户端打包方法、装置、主服务器及存储介质
CN103888364A (zh) 报文分流方法及设备
CN105208137A (zh) 一种互联网协议ip地址分配方法、装置、服务器和终端
CN106484755A (zh) 异步快速加载视频缩略图的方法
CN107168887A (zh) 一种JavaScript对象存储、回收方法及装置
CN102761545A (zh) 服务处理方法、服务处理器及服务处理系统
CN105450679A (zh) 进行数据云存储的方法及系统
CN101207608A (zh) 一种接入宽带网络的方法
CN101237405A (zh) 数据缓存方法和装置
CN104969533A (zh) 一种数据包处理方法和装置
CN105812178A (zh) 一种终端升级方法及终端
CN107222793B (zh) 一种数据传输的方法及装置
CN102377576B (zh) 多播的实现方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant