CN106775889A - 利用对象池实现Flash播放器资源加载的方法及系统 - Google Patents

利用对象池实现Flash播放器资源加载的方法及系统 Download PDF

Info

Publication number
CN106775889A
CN106775889A CN201611237061.5A CN201611237061A CN106775889A CN 106775889 A CN106775889 A CN 106775889A CN 201611237061 A CN201611237061 A CN 201611237061A CN 106775889 A CN106775889 A CN 106775889A
Authority
CN
China
Prior art keywords
resource
dictionary
object pool
pool
flash player
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
CN201611237061.5A
Other languages
English (en)
Other versions
CN106775889B (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.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
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 Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201611237061.5A priority Critical patent/CN106775889B/zh
Publication of CN106775889A publication Critical patent/CN106775889A/zh
Application granted granted Critical
Publication of CN106775889B publication Critical patent/CN106775889B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种利用对象池实现Flash播放器资源加载的方法及系统,涉及Flash播放器的资源加载技术领域。该方法包括:当初始化Flash播放器程序时,创建对象池字典并设置其最大容量;当Flash播放器程序运行过程中需要加载资源时,判断创建的对象池字典中是否已存在所需加载的资源,若是,直接从当前对象池字典中取出所需加载的资源使用,然后继续执行Flash播放器程序;若否,加载并使用所需资源后,将该资源添加至对象池字典中并检查是否出现最大容量的溢出,若是,则进行资源清理,否则,继续执行Flash播放器程序。本发明不但能够降低CPU使用率、合理使用内存,而且能有效提高Flash播放器的加载速度,用户体验好。

Description

利用对象池实现Flash播放器资源加载的方法及系统
技术领域
本发明涉及Flash播放器的资源加载技术领域,具体来讲是一种利用对象池实现Flash播放器资源加载的方法及系统。
背景技术
随着互联网技术的迅速发展,越来越多的用户可以使用电脑、手机等终端通过网络观看在线视频直播。在线视频直播是指利用互联网网络资源进行的现场视频直播服务,通过现场的视频拍摄同步发布到网络上,用户可以同一时间在网络上看到实时的现场情况。
目前,随着Flash播放技术的迅猛发展以及人们生活节奏的不断加快,用户在利用Flash播放器进行直播视频的观看时,对Flash播放器的加载速度提出了越来越高的要求。但是,在目前的直播过程中,由于Flash播放器会反复大量加载资源,反复加载资源的过程中又会大量占用CPU,使得CPU的使用率大增,无法合理使用内存,进而又影响Flash播放器的加载速度,使得资源加载的等待时间较长,用户体验较差。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种利用对象池实现Flash播放器资源加载的方法及系统,不但能够降低CPU使用率、合理使用内存,而且能有效提高Flash播放器的加载速度,用户体验好。
为达到以上目的,本发明提供一种利用对象池实现Flash播放器资源加载的方法,包括以下步骤:A、当初始化Flash播放器程序时,创建对象池字典,该对象池字典用来存储已经被加载过的资源的对象;设置该对象池字典的最大容量,转入B;B、当Flash播放器程序运行过程中需要加载资源时,判断创建的对象池字典中是否已存在所需加载的资源,若是,转入C;若否,转入D;C、从当前对象池字典中直接取出所需加载的资源进行使用;然后,继续执行Flash播放器程序;D、加载并使用所需加载的资源;将所加载的资源添加至对象池字典中,并检查对象池字典加入新资源后是否出现最大容量的溢出,若是,对当前对象池字典中的资源进行清理;若否,继续执行Flash播放器程序。
在上述技术方案的基础上,所述创建的对象池字典中,资源具有对应的资源名,且资源的对象具有资源数据属性、资源数据使用次数属性和资源数据最后一次使用时间属性;在此基础上,步骤C中,在从当前对象池字典中直接取出所需加载的资源进行使用后,还需更新该资源在对象池字典中的资源数据使用次数属性和资源数据最后一次使用时间属性。
在上述技术方案的基础上,步骤D中所述对当前对象池字典中的资源进行清理,具体包括以下步骤:D1、将当前对象池字典中的资源按照使用频率过滤的方式进行删除;D2、重新检查当前对象池字典是否出现最大容量的溢出,若是,转入步骤D3;若否,继续执行Flash播放器程序;D3、将当前对象池字典中的资源按照时间过滤的方式进行删除;然后,继续执行Flash播放器程序。
在上述技术方案的基础上,步骤D1中,将当前对象池字典中的资源按照使用频率过滤的方式进行删除的具体流程为:遍历当前对象池字典,取出对象池字典中存储的每一个资源的对象;判断每个资源的对象的资源数据使用次数属性是否小于预先设置的使用频繁次数的基准值;若是,将该资源的对象从对象池字典中删除,否则,继续在对象池字典中保留该资源对象;
步骤D3中,将当前对象池字典中的资源按照时间过滤的方式进行删除的具体流程为:将对象池字典中的第一个资源对象作为待删除资源对象;遍历对象池字典中剩余的资源对象,将当前待删除资源对象的最后使用时间属性与下一个资源对象的最后使用时间属性进行对比,将最后使用时间小的资源对象作为当前待删除资源对象;重复上述操作,直至遍历完对象池字典中的所有资源对象,然后将当前待删除资源对象所对应的资源删除。
在上述技术方案的基础上,该方法还包括定时清理对象池字典的操作,所述定时清理对象池字典的操作具体包括以下流程:在Flash播放器中创建定时器,并设置该定时器的响应时间;实时判断是否达到定时器的响应时间,若是,清空当前对象池字典;否则,继续执行Flash播放器程序。
本发明同时还提供一种利用对象池实现Flash播放器资源加载的系统,包括对象池字典创建模块、对象池资源判断模块、第一处理模块和第二处理模块;
所述对象池字典创建模块用于:当初始化Flash播放器程序时,创建对象池字典,该对象池字典用来存储已经被加载过的资源的对象;并设置该对象池字典的最大容量;所述对象池资源判断模块用于:当Flash播放器程序运行过程中需要加载资源时,判断创建的对象池字典中是否已存在所需加载的资源,若是,向第一处理模块发出第一处理信号,若否,向第二处理模块发出第二处理信号;所述第一处理模块用于:收到第一处理信号后,从当前对象池字典中直接取出所需加载的资源进行使用,然后,继续执行Flash播放器程序;所述第二处理模块用于:收到第二处理信号后,加载并使用所需加载的资源,将所加载的资源添加至对象池字典中,并检查对象池字典加入新资源后是否出现最大容量的溢出,若是,对当前对象池字典中的资源进行清理,若否,继续执行Flash播放器程序。
在上述技术方案的基础上,所述创建的对象池字典中,资源具有对应的资源名,且资源的对象具有资源数据属性、资源数据使用次数属性和资源数据最后一次使用时间属性;所述第一处理模块在从当前对象池字典中直接取出所需加载的资源进行使用后,还需更新该资源在对象池字典中的资源数据使用次数属性和资源数据最后一次使用时间属性。
在上述技术方案的基础上,所述第二处理模块对当前对象池字典中的资源进行清理的具体流程为:将当前对象池字典中的资源按照使用频率过滤的方式进行删除;然后,重新检查当前对象池字典是否出现最大容量的溢出,若是,先将当前对象池字典中的资源按照时间过滤的方式进行删除,再继续执行Flash播放器程序;若否,直接继续执行Flash播放器程序。
在上述技术方案的基础上,所述第二处理模块将当前对象池字典中的资源按照使用频率过滤的方式进行删除的具体流程为:遍历当前对象池字典,取出对象池字典中存储的每一个资源的对象;判断每个资源的对象的资源数据使用次数属性是否小于预先设置的使用频繁次数的基准值;若是,将该资源的对象从对象池字典中删除,否则,继续在对象池字典中保留该资源对象;
所述第二处理模块将当前对象池字典中的资源按照时间过滤的方式进行删除的具体流程为:将对象池字典中的第一个资源对象作为待删除资源对象;遍历对象池字典中剩余的资源对象,将当前待删除资源对象的最后使用时间属性与下一个资源对象的最后使用时间属性进行对比,将最后使用时间小的资源对象作为当前待删除资源对象;重复上述操作,直至遍历完对象池字典中的所有资源对象,然后将当前待删除资源对象所对应的资源删除。
在上述技术方案的基础上,该系统还包括对象池字典定时清理模块,所述对象池字典定时清理模块用于:在Flash播放器中创建定时器,并设置该定时器的响应时间;实时判断是否达到定时器的响应时间,若是,清空当前对象池字典,否则,继续执行Flash播放器程序。
本发明的有益效果在于:
(1)本发明利用建立的对象池字典来存储已经被加载过的资源,当Flash播放器运行过程中需要加载资源时,若对象池字典中已存在该资源,则可直接取出该资源进行使用;若不存在该资源,则先加载使用该资源后,再将该资源加入到对象池中。与现有技术相比,通过对象池可以让资源反复被利用,避免同一个资源在下次用到时需要再次进行重复加载,不但能够降低CPU使用率、合理使用内存,而且能有效提高Flash播放器的加载速度,用户体验好。
(2)本发明中,在将新资源加入对象池后,还会检查对象池是否出现最大容量的溢出现象,若出现溢出,则会对当前对象池字典中的资源进行清理,从而有效避免了对象池字典内存存在溢出风险,保证了对象池的正常使用。
(3)本发明中会对对象池字典进行定时清理的操作,能够有效避免在Flash播放器程序运行过程中,由于某些原因程序不需要加载资源对象,对象池字典内存长时间不会溢出,而使得大量不被再次用到的资源占用内存大小的问题,进一步达到了合理使用内存的目的。
附图说明
图1为本发明实施例中利用对象池实现Flash播放器资源加载的方法的流程图;
图2为本发明实施例中利用对象池实现Flash播放器资源加载的系统的结构框图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
参见图1所示,本发明实施例提供一种利用对象池实现Flash播放器资源加载的方法,包括以下步骤:
步骤S1:当初始化Flash播放器程序时,创建对象池字典,该对象池字典用来存储已经被加载过的资源的对象;同时,设置该对象池字典的最大容量,转入步骤S2。
本实施例中,所述对象池字典是以键值对(key-value)来存储已经被加载过的资源的对象;其中,以加载过的资源的名字name作为key,以加载过的资源的对象object作为value,且加载过的资源的对象object具有三个属性:资源数据data、资源数据使用次数userNum(每使用一次进行加1)、资源数据最后一次使用时间usertimer(取系统当时的时间)。其具体格式内容可如下:
Dictory[name]=object;
Object.data=资源数据;
Object.userNum=资源数据使用次数;
Object.usertimer=资源数据最后一次使用时间;
其中,Dictory为对象池字典;name为加载过的资源的名字,即为键值对中的key;object为资源数据本身与其属性相结合的对象,即为键值对中的value;Object.data、Object.userNum、Object.usertimer即为object具有的三个属性。
另外,可以理解的是,本发明通过建立对象池字典可以让资源反复被利用,避免同一个资源在下次用到时需要再次进行重新加载,可节省CPU的消耗,达到合理利用内存的目的。而设定对象池的最大限定容量可以有效避免对象池被无限制的变大,从而避免无限制的扩大内存占用量,进一步保证了内存的合理利用。实际操作时,对象池的最大容量可根据需要进行自行设置和调整,而本实施例中,对象池的最大容量默认为10*1024*1024个字节。
步骤S2:在Flash播放器程序运行过程中,需要使用各种资源(比如直播中可能出现的飞机广播素材或者是某个按钮图片)。当Flash播放器程序运行过程中需要加载资源时,判断创建的对象池字典中是否已存在所需加载的资源,若是,转入步骤S3;若否,转入步骤S4。
实际操作中,判断创建的对象池字典中是否已存在所需加载的资源时,具体包括以下操作:
在创建的对象池字典中寻找是否有与所需加载的资源对应的资源名(即对应的key),如果没有,则直接判定为对象池字典中不存在所需加载的资源;如果有,则进一步查看该资源名对应的资源数据(即对应的data属性)是否存在,如果存在,则判定为对象池字典中存在所需加载的资源;如果不存在,则判定为对象池字典中不存在所需加载的资源。
具体来说,可通过以下代码实现:
haveKey=Dictory.hasOwnProperty(name)?1:0;
haveData=Dictory[name]!=null?1:0
NeedLoad=haveKey+haveData;
其中,haveKey=1表示在对象池字典中存在与所需加载的资源对应的资源名Key;haveKey=0表示在对象池字典中不存在与所需加载的资源对应的资源名Key。haveData=1表示该key对应的资源数据是存在的,haveData=0表示该key对应的资源数据是不存在的。NeedLoad=2表示haveKey=1、haveData=1,则不需要加载新的资源,NeedLoad小于2则表示需要加载新的资源对象。
步骤S3:从当前对象池字典中直接取出所需加载的资源数据进行使用,并更新该资源在对象池字典中的资源数据使用次数属性和资源数据最后一次使用时间属性;然后,继续执行Flash播放器程序。
具体来说,更新该资源在对象池字典中的资源数据使用次数属性时,是将资源数据使用次数进行加一操作,即Object.userNum++;更新该资源在对象池字典中的资源数据最后一次使用时间属性时,是将系统的当前时间作为资源数据最后一次使用的时间,即Object.usertimer=gettimer()。另外,可以理解的是,在步骤S3中更新(修改)资源在对象池字典中的属性,是为了后续进行使用频率过滤删除以及时间过滤删除时做数据支持很重要的一步操作。
步骤S4:加载并使用所需加载的资源;并将所加载的资源添加至(放入)对象池字典中,转入步骤S5。
步骤S5:检查对象池字典加入新资源后是否出现最大容量的溢出,若是,转入步骤S6;若否,继续执行Flash播放器程序。
实际操作中,因为对象池字典是一个字典类型,字典类型继承于object类型,所以对象池字典也是一个object类型,因此,可以使用object写入ByteArray的方法,然后通过ByteArray中的bytesAvailable属性获取对象池字典当前所占用的内存字节,从而计算出当前对象池字典实际的内存占用大小。具体代码如下:
ByteArray.writeObject(obj);
N1=ByteArray.bytesAvailable;
ByteArray为一个二进制数组,obj为对象池字典,N1为ByteArray的有效长度(以字节为基本单位),即对象池字典的内存占用大小。
同理,我们可按上述方式求得加入对象池字典中的新资源所占用的内存大小为N2。然后,根据Out=(N1+N2)>M?true:fasle;(M为设置的对象池字典的最大容量),来判断是否出现溢出。当对象池字典占用内存N1加上所需放入对象池资源大小N2大于对象池字典限定的内存最大容量M时,我们认为对象池字典内存存在溢出风险,需要剔除掉一部分资源。
步骤S6:将当前对象池字典中的资源按照使用频率过滤的方式进行删除,转入步骤S7。
可以理解的是,按照使用频率过滤的方式进行删除,其实就是清理活跃级别比较低或不是使用频繁的资源。其原理就是,假设设置的使用频繁次数的基准值为X(默认为3),当一个资源在一个清理周期被使用超过了X次,则我们认为该资源是活跃资源,其活跃级别较高,则不对其进行删除;相反,当一个资源被使用的次数小于X次,则认为该资源是非活跃资源,其活跃级别较低,则对其进行删除。
在此基础上,实际操作时,步骤S6具体包括以下操作:
步骤S601:遍历当前对象池字典,取出对象池字典中存储的每一个资源对象object;
步骤S602:判断每个资源对象的资源数据使用次数属性是否小于预先设置的使用频繁次数的基准值,即是否object.userNum<X;
若是,表明该资源为非活跃资源,则利用Dictory.delete(key)函数将该资源对象从对象池字典中删除;其中,参数“key”为该资源的资源名;
若否,表明该资源为活跃资源,则继续在对象池字典中保留该资源对象。
步骤S7:重新检查当前对象池字典是否出现最大容量的溢出,若是,转入步骤S8;若否,继续执行Flash播放器程序。
步骤S8:将当前对象池字典中的资源按照时间过滤的方式进行删除;然后,继续执行Flash播放器程序。
可以理解的是,时间过滤的方式进行删除,其实就是清理最后使用时间较远的资源。具体来说,将当前对象池字典中的资源按照时间过滤的方式进行删除,具体包括以下操作:
(1)、将对象池字典中的第一个资源对象作为待删除资源对象,记为NeedDelletekey;
(2)、遍历对象池字典中剩余的资源对象,将当前待删除资源对象的最后使用时间属性与下一个资源对象的最后使用时间属性进行对比,将最后使用时间小的(即最后使用时间较远的)资源对象作为当前待删除资源对象(即,将资源名赋值给NeedDelletekey);
(3)重复步骤(2),直至遍历完对象池字典中的所有资源对象;将当前待删除资源对象所对应的资源进行删除。
更进一步地,为了有效避免在Flash播放器程序运行过程中,由于某些原因程序不需要加载资源对象,对象池字典内存长时间不会溢出,而使得大量不被再次用到的资源占用内存大小。本发明的方法中还包括定时清理对象池字典的操作,该操作能做到从时间节点上有效保障Flash播放器程序能具有良好的内存占用率。具体来说,定时清理对象池字典的操作具体包括以下流程:
(1)、在Flash播放器中创建定时器,并设置该定时器的响应时间n。实际操作中,可利用setInterval(clear,n)方法来实现。其中,clear为定时器响应方法;n为定时器响应时间,以毫秒为基本单位,默认设置为10分钟清理一次对象池字典,即是n=10*60*1000,当然,该响应时间n可根据实际需要进行自行设置和调整。
(2)、实时判断是否达到定时器的响应时间n,若是,调用clear方法清空当前对象池字典;否则,继续执行Flash播放器程序。实际操作中,可利用Dictory.dispose.方法来实现对象池字典的清空操作,当然,在利用该方法清空对象池字典后还可新建一个新的Dictory作为对象池字典。
参见图2所示,本发明实施例还提供一种利用对象池实现Flash播放器资源加载的系统,包括对象池字典创建模块、对象池资源判断模块、第一处理模块和第二处理模块。
具体来说,所述对象池字典创建模块用于:当初始化Flash播放器程序时,创建对象池字典,该对象池字典用来存储已经被加载过的资源的对象;并设置该对象池字典的最大容量。其中,所述创建的对象池字典中,资源具有对应的资源名,且资源的对象具有资源数据属性、资源数据使用次数属性和资源数据最后一次使用时间属性。
所述对象池资源判断模块用于:当Flash播放器程序运行过程中需要加载资源时,判断创建的对象池字典中是否已存在所需加载的资源,若是,向第一处理模块发出第一处理信号;若否,向第二处理模块发出第二处理信号。
所述第一处理模块用于:收到第一处理信号后,从当前对象池字典中直接取出所需加载的资源进行使用,并更新该资源在对象池字典中的资源数据使用次数属性和资源数据最后一次使用时间属性;然后,继续执行Flash播放器程序。
所述第二处理模块用于:收到第二处理信号后,加载并使用所需加载的资源;将所加载的资源添加至对象池字典中,并检查对象池字典加入新资源后是否出现最大容量的溢出,若是,对当前对象池字典中的资源进行清理;若否,继续执行Flash播放器程序。
进一步地,所述第二处理模块对当前对象池字典中的资源进行清理的具体流程为:将当前对象池字典中的资源按照使用频率过滤的方式进行删除;然后,重新检查当前对象池字典是否出现最大容量的溢出,若是,先将当前对象池字典中的资源按照时间过滤的方式进行删除,再继续执行Flash播放器程序;若否,直接继续执行Flash播放器程序。
更进一步地,所述第二处理模块将当前对象池字典中的资源按照使用频率过滤的方式进行删除的具体流程为:遍历当前对象池字典,取出对象池字典中存储的每一个资源的对象;判断每个资源的对象的资源数据使用次数属性是否小于预先设置的使用频繁次数的基准值;若是,将该资源的对象从对象池字典中删除,否则,继续在对象池字典中保留该资源对象;
所述第二处理模块将当前对象池字典中的资源按照时间过滤的方式进行删除的具体流程为:将对象池字典中的第一个资源对象作为待删除资源对象;遍历对象池字典中剩余的资源对象,将当前待删除资源对象的最后使用时间属性与下一个资源对象的最后使用时间属性进行对比,将最后使用时间小的资源对象作为当前待删除资源对象;重复上述操作,直至遍历完对象池字典中的所有资源对象,然后将当前待删除资源对象所对应的资源删除。
另外,为了有效避免在Flash播放器程序运行过程中,由于某些原因程序不需要加载资源对象,对象池字典内存长时间不会溢出,而使得大量不被再次用到的资源占用内存大小。本发明的系统中还包括对象池字典定时清理模块,所述对象池字典定时清理模块用于:在Flash播放器中创建定时器,并设置该定时器的响应时间;实时判断是否达到定时器的响应时间,若是,清空当前对象池字典,否则,继续执行Flash播放器程序。
需要说明的是:上述实施例提供的系统在进行操作时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (10)

1.一种利用对象池实现Flash播放器资源加载的方法,其特征在于,该方法包括以下步骤:
A、当初始化Flash播放器程序时,创建对象池字典,该对象池字典用来存储已经被加载过的资源的对象;设置该对象池字典的最大容量,转入B;
B、当Flash播放器程序运行过程中需要加载资源时,判断创建的对象池字典中是否已存在所需加载的资源,若是,转入C;若否,转入D;
C、从当前对象池字典中直接取出所需加载的资源进行使用;然后,继续执行Flash播放器程序;
D、加载并使用所需加载的资源;将所加载的资源添加至对象池字典中,并检查对象池字典加入新资源后是否出现最大容量的溢出,若是,对当前对象池字典中的资源进行清理;若否,继续执行Flash播放器程序。
2.如权利要求1所述的利用对象池实现Flash播放器资源加载的方法,其特征在于:所述创建的对象池字典中,资源具有对应的资源名,且资源的对象具有资源数据属性、资源数据使用次数属性和资源数据最后一次使用时间属性;
在此基础上,步骤C中,在从当前对象池字典中直接取出所需加载的资源进行使用后,还需更新该资源在对象池字典中的资源数据使用次数属性和资源数据最后一次使用时间属性。
3.如权利要求2所述的利用对象池实现Flash播放器资源加载的方法,其特征在于:步骤D中所述对当前对象池字典中的资源进行清理,具体包括以下步骤:
D1、将当前对象池字典中的资源按照使用频率过滤的方式进行删除;
D2、重新检查当前对象池字典是否出现最大容量的溢出,若是,转入步骤D3;若否,继续执行Flash播放器程序;
D3、将当前对象池字典中的资源按照时间过滤的方式进行删除;然后,继续执行Flash播放器程序。
4.如权利要求3所述的利用对象池实现Flash播放器资源加载的方法,其特征在于:步骤D1中,将当前对象池字典中的资源按照使用频率过滤的方式进行删除的具体流程为:遍历当前对象池字典,取出对象池字典中存储的每一个资源的对象;判断每个资源的对象的资源数据使用次数属性是否小于预先设置的使用频繁次数的基准值;若是,将该资源的对象从对象池字典中删除,否则,继续在对象池字典中保留该资源对象;
步骤D3中,将当前对象池字典中的资源按照时间过滤的方式进行删除的具体流程为:将对象池字典中的第一个资源对象作为待删除资源对象;遍历对象池字典中剩余的资源对象,将当前待删除资源对象的最后使用时间属性与下一个资源对象的最后使用时间属性进行对比,将最后使用时间小的资源对象作为当前待删除资源对象;重复上述操作,直至遍历完对象池字典中的所有资源对象,然后将当前待删除资源对象所对应的资源删除。
5.如权利要求1至4中任一项所述的利用对象池实现Flash播放器资源加载的方法,其特征在于:该方法还包括定时清理对象池字典的操作,所述定时清理对象池字典的操作具体包括以下流程:
在Flash播放器中创建定时器,并设置该定时器的响应时间;
实时判断是否达到定时器的响应时间,若是,清空当前对象池字典;否则,继续执行Flash播放器程序。
6.一种利用对象池实现Flash播放器资源加载的系统,其特征在于:该系统包括对象池字典创建模块、对象池资源判断模块、第一处理模块和第二处理模块;
所述对象池字典创建模块用于:当初始化Flash播放器程序时,创建对象池字典,该对象池字典用来存储已经被加载过的资源的对象;并设置该对象池字典的最大容量;
所述对象池资源判断模块用于:当Flash播放器程序运行过程中需要加载资源时,判断创建的对象池字典中是否已存在所需加载的资源,若是,向第一处理模块发出第一处理信号;若否,向第二处理模块发出第二处理信号;
所述第一处理模块用于:收到第一处理信号后,从当前对象池字典中直接取出所需加载的资源进行使用;然后,继续执行Flash播放器程序;
所述第二处理模块用于:收到第二处理信号后,加载并使用所需加载的资源;将所加载的资源添加至对象池字典中,并检查对象池字典加入新资源后是否出现最大容量的溢出,若是,对当前对象池字典中的资源进行清理;若否,继续执行Flash播放器程序。
7.如权利要求6所述的利用对象池实现Flash播放器资源加载的系统,其特征在于:所述创建的对象池字典中,资源具有对应的资源名,且资源的对象具有资源数据属性、资源数据使用次数属性和资源数据最后一次使用时间属性;
在此基础上,所述第一处理模块在从当前对象池字典中直接取出所需加载的资源进行使用后,还需更新该资源在对象池字典中的资源数据使用次数属性和资源数据最后一次使用时间属性。
8.如权利要求7所述的利用对象池实现Flash播放器资源加载的系统,其特征在于:所述第二处理模块对当前对象池字典中的资源进行清理的具体流程为:将当前对象池字典中的资源按照使用频率过滤的方式进行删除;然后,重新检查当前对象池字典是否出现最大容量的溢出,若是,先将当前对象池字典中的资源按照时间过滤的方式进行删除,再继续执行Flash播放器程序;若否,直接继续执行Flash播放器程序。
9.如权利要求8所述的利用对象池实现Flash播放器资源加载的系统,其特征在于:所述第二处理模块将当前对象池字典中的资源按照使用频率过滤的方式进行删除的具体流程为:遍历当前对象池字典,取出对象池字典中存储的每一个资源的对象;判断每个资源的对象的资源数据使用次数属性是否小于预先设置的使用频繁次数的基准值;若是,将该资源的对象从对象池字典中删除,否则,继续在对象池字典中保留该资源对象;
所述第二处理模块将当前对象池字典中的资源按照时间过滤的方式进行删除的具体流程为:将对象池字典中的第一个资源对象作为待删除资源对象;遍历对象池字典中剩余的资源对象,将当前待删除资源对象的最后使用时间属性与下一个资源对象的最后使用时间属性进行对比,将最后使用时间小的资源对象作为当前待删除资源对象;重复上述操作,直至遍历完对象池字典中的所有资源对象,然后将当前待删除资源对象所对应的资源删除。
10.如权利要求6至9中任一项所述的利用对象池实现Flash播放器资源加载的系统,其特征在于:该系统还包括对象池字典定时清理模块,所述对象池字典定时清理模块用于:在Flash播放器中创建定时器,并设置该定时器的响应时间;实时判断是否达到定时器的响应时间,若是,清空当前对象池字典,否则,继续执行Flash播放器程序。
CN201611237061.5A 2016-12-28 2016-12-28 利用对象池实现Flash播放器资源加载的方法及系统 Expired - Fee Related CN106775889B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611237061.5A CN106775889B (zh) 2016-12-28 2016-12-28 利用对象池实现Flash播放器资源加载的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611237061.5A CN106775889B (zh) 2016-12-28 2016-12-28 利用对象池实现Flash播放器资源加载的方法及系统

Publications (2)

Publication Number Publication Date
CN106775889A true CN106775889A (zh) 2017-05-31
CN106775889B CN106775889B (zh) 2020-02-04

Family

ID=58925262

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611237061.5A Expired - Fee Related CN106775889B (zh) 2016-12-28 2016-12-28 利用对象池实现Flash播放器资源加载的方法及系统

Country Status (1)

Country Link
CN (1) CN106775889B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108345505A (zh) * 2018-02-02 2018-07-31 珠海金山网络游戏科技有限公司 一种多线程资源管理方法和系统
CN109766143A (zh) * 2019-01-16 2019-05-17 广州虎牙信息科技有限公司 对象加载方法、装置、终端及存储介质
CN117641006A (zh) * 2023-11-30 2024-03-01 书行科技(北京)有限公司 一种视频播放控制方法、装置及相关设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101266633A (zh) * 2006-11-29 2008-09-17 优万科技(北京)有限公司 无缝超大规模虚拟游戏世界平台
CN101364164A (zh) * 2007-08-09 2009-02-11 株式会社日立制作所 存储系统
EP1518368B1 (en) * 2002-06-28 2009-07-29 Nokia Corporation Load balancing device and method therefor
CN102081650A (zh) * 2010-12-29 2011-06-01 上海网达软件有限公司 嵌入式平台用户界面加速显示的方法
CN103530898A (zh) * 2013-01-06 2014-01-22 Tcl集团股份有限公司 一种基于3d实时渲染的动画处理方法和系统
US9043801B2 (en) * 2008-01-15 2015-05-26 International Business Machines Corporation Two-tiered dynamic load balancing using sets of distributed thread pools
US20160062700A1 (en) * 2014-09-01 2016-03-03 Fu Tai Hua Industry (Shenzhen) Co., Ltd. System, method for cleaning memory space and terminal device with memory space cleaning function
CN105554544A (zh) * 2015-12-07 2016-05-04 海信集团有限公司 一种数据处理方法及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1518368B1 (en) * 2002-06-28 2009-07-29 Nokia Corporation Load balancing device and method therefor
CN101266633A (zh) * 2006-11-29 2008-09-17 优万科技(北京)有限公司 无缝超大规模虚拟游戏世界平台
CN101364164A (zh) * 2007-08-09 2009-02-11 株式会社日立制作所 存储系统
US9043801B2 (en) * 2008-01-15 2015-05-26 International Business Machines Corporation Two-tiered dynamic load balancing using sets of distributed thread pools
CN102081650A (zh) * 2010-12-29 2011-06-01 上海网达软件有限公司 嵌入式平台用户界面加速显示的方法
CN103530898A (zh) * 2013-01-06 2014-01-22 Tcl集团股份有限公司 一种基于3d实时渲染的动画处理方法和系统
US20160062700A1 (en) * 2014-09-01 2016-03-03 Fu Tai Hua Industry (Shenzhen) Co., Ltd. System, method for cleaning memory space and terminal device with memory space cleaning function
CN105554544A (zh) * 2015-12-07 2016-05-04 海信集团有限公司 一种数据处理方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LEVI_WAN: ""unity对象池技术"", 《HTTPS://WWW.JIANSHU.COM/P/6133FB7E0819》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108345505A (zh) * 2018-02-02 2018-07-31 珠海金山网络游戏科技有限公司 一种多线程资源管理方法和系统
CN109766143A (zh) * 2019-01-16 2019-05-17 广州虎牙信息科技有限公司 对象加载方法、装置、终端及存储介质
CN117641006A (zh) * 2023-11-30 2024-03-01 书行科技(北京)有限公司 一种视频播放控制方法、装置及相关设备

Also Published As

Publication number Publication date
CN106775889B (zh) 2020-02-04

Similar Documents

Publication Publication Date Title
TWI783355B (zh) 深度學習模型的分布式訓練方法以及裝置
JP6088667B2 (ja) メモリクリーニング方法及び装置、並びに端末装置
CN102541538B (zh) 一种基于移动终端的图片显示方法及装置
CN103246612B (zh) 一种数据缓存的方法及装置
US9742842B2 (en) Peer-to-peer data migration
CN110895524B (zh) redis满载时键的复合过期方法、装置、服务器及存储介质
WO2020228289A1 (zh) 日志获取方法、装置、终端及存储介质
CN106775889B (zh) 利用对象池实现Flash播放器资源加载的方法及系统
CN103198027A (zh) 一种存储文件和提供文件的方法和装置
WO2020019313A1 (zh) 一种图数据的更新方法、系统、计算机可读存储介质及设备
CN106095552B (zh) 一种基于i/o去重的多任务图处理方法及系统
CN109992375B (zh) 信息处理方法、装置、计算机设备和计算机可读存储介质
CN113961346A (zh) 数据缓存的管理与调度方法、装置、电子设备和存储介质
CN110289993A (zh) 一种连接池管理方法、装置、设备及转接系统
CN108345644A (zh) 一种数据处理的方法及装置
CN103595566A (zh) 一种检测空闲ip地址的方法及装置
CN114168262A (zh) 一种基于lru置换算法的云平台镜像缓存管理方法
CN107436672B (zh) 一种应用的处理方法及终端
CN105308566A (zh) 请求式可扩展定时器轮
CN104376096A (zh) 基于缓冲区的异步更新的方法
CN113302593A (zh) 任务处理方法、装置、系统、电子设备及存储介质
CN101833585A (zh) 数据库服务器操作控制系统、方法及设备
WO2017219982A1 (zh) 清除缓存的方法及装置
CN110998524A (zh) 处理配置文件的方法、处理单元、触摸芯片、装置及介质
CN103618625B (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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200204