页面加载方法、装置、电子设备及存储介质与流程

文档序号:23419000发布日期:2020-12-25 11:40阅读:75来源:国知局
页面加载方法、装置、电子设备及存储介质与流程

本公开涉及存储技术领域,尤其涉及页面加载方法、装置、电子设备及存储介质。



背景技术:

javascript引擎是执行javascript代码的程序或解释器。安装有javascript引擎的电子设备的内存包括新生代空间。相关技术中,当新生代空间的剩余存储空间小于待分配存储空间的对象所需的存储空间时,会触发新生代空间的垃圾回收,并且会对新生代空间的存储空间进行调整。在页面加载的过程中,频繁对新生代空间的存储空间进行调整会导致页面加载消耗较长的时长。



技术实现要素:

本公开提供一种页面加载方法、装置、电子设备及存储介质,以至少解决相关技术中频繁对新生代空间的存储空间进行调整导致的页面加载消耗时长较长的问题。本公开的技术方案如下:

根据本公开实施例的第一方面,提供一种页面加载方法,所述方法包括:

获取到加载页面的请求后,确定第一存储空间中目标对象所占用的第一占用空间,所述第一存储空间为用于存储所述页面的加载对象的存储空间,所述目标对象为存在引用关系的对象;

基于所述第一占用空间确定是否需要对所述第一存储空间进行扩展;

当需要对所述第一存储空间进行扩展时,对所述第一存储空间进行扩展,得到第二存储空间,其中,所述第二存储空间大于所述第一存储空间,且所述第二存储空间包括所述第一存储空间;

基于所述第二存储空间加载所述页面。

可选的,所述确定第一存储空间中目标对象所占用的第一占用空间,包括:

若满足触发垃圾回收的条件,则在垃圾回收开始之前确定第一存储空间中目标对象所占用的第一占用空间;

进行垃圾回收以删除所述第一存储空间中所述目标对象以外的对象。

可选的,所述基于所述第二存储空间加载所述页面之后,所述方法还包括:

在完成加载所述页面的情况下,确定所述第二存储空间中所述目标对象所占用的第二占用空间;

基于所述第二占用空间确定是否对所述第二存储空间进行缩减;

在确定对所述第二存储空间进行缩减的情况下,对所述第二存储空间进行缩减,得到第三存储空间,其中,所述第三存储空间小于所述第二存储空间,且所述第二存储空间包括所述第三存储空间。

可选的,所述确定所述第二存储空间中所述目标对象所占用的第二占用空间之前,所述方法还包括:

确定所述第二存储空间中所述目标对象所占用的第三占用空间;

基于所述第三占用空间确定是否对所述第二存储空间进行扩展;

在确定对所述第二存储空间进行扩展的情况下,对所述第二存储空间进行扩展,得到第四存储空间,其中,所述第四存储空间大于所述第二存储空间,且所述第四存储空间包括所述第二存储空间。

可选的,所述确定所述第二存储空间中所述目标对象所占用的第二占用空间,包括:

若满足触发垃圾回收的条件,则进行垃圾回收以删除所述第二存储空间中所述目标对象以外的对象;

在所述垃圾回收结束之后确定所述第二存储空间中所述目标对象所占用的第二占用空间。

可选的,所述确定所述第二存储空间中所述目标对象所占用的第三占用空间,包括:

若满足触发垃圾回收的条件,则在所述垃圾回收开始之前确定所述第二存储空间中所述目标对象所占用的第三占用空间;

进行垃圾回收以删除所述第二存储空间中所述目标对象以外的对象。

可选的,所述确定第一存储空间中目标对象所占用的第一占用空间,包括:

获取内存的剩余存储空间,所述内存包括所述第一存储空间;

若所述内存的剩余存储空间小于第一预设值,则确定第一存储空间中目标对象所占用的第一占用空间;

所述方法还包括:

若所述内存的剩余存储空间大于或等于所述第一预设值且所述第一存储空间小于目标值,则在所述页面加载前依据所述内存的剩余存储空间扩展所述第一存储空间为所述目标值,其中,所述目标值为第二预设值,或者,所述目标值与所述内存的剩余存储空间呈正相关。

可选的,所述确定第一存储空间中目标对象所占用的第一占用空间,包括:

判断所述页面是否为预设类型的页面,所述预设类型的页面设置有与所述页面对应的存储空间;

若所述页面不为所述预设类型的页面,则确定第一存储空间中目标对象所占用的第一占用空间;

所述方法还包括:

若所述页面为所述预设类型的页面且所述第一存储空间小于所述页面对应的存储空间,则在所述页面加载前扩展所述第一存储空间为所述页面对应的存储空间。

根据本公开实施例的第二方面,提供一种页面加载装置,包括:

第一确定模块,被配置为执行获取到加载页面的请求后,确定第一存储空间中目标对象所占用的第一占用空间,所述第一存储空间为用于存储所述页面的加载对象的存储空间,所述目标对象为存在引用关系的对象;

第二确定模块,被配置为执行基于所述第一占用空间确定是否需要对所述第一存储空间进行扩展;

第一扩展模块,被配置为执行当需要对所述第一存储空间进行扩展时,对所述第一存储空间进行扩展,得到第二存储空间,其中,所述第二存储空间大于所述第一存储空间,且所述第二存储空间包括所述第一存储空间;

加载模块,被配置为执行基于所述第二存储空间加载所述页面。

可选的,所述第一确定模块包括:

第一确定单元,被配置为执行若满足触发垃圾回收的条件,则在垃圾回收开始之前确定第一存储空间中目标对象所占用的第一占用空间;

第一回收单元,被配置为执行进行垃圾回收以删除所述第一存储空间中所述目标对象以外的对象。

可选的,所述装置还包括:

第三确定模块,被配置为执行在完成加载所述页面的情况下,确定所述第二存储空间中所述目标对象所占用的第二占用空间;

第四确定模块,被配置为执行基于所述第二占用空间确定是否对所述第二存储空间进行缩减;

缩减模块,被配置为执行在确定对所述第二存储空间进行缩减的情况下,对所述第二存储空间进行缩减,得到第三存储空间,其中,所述第三存储空间小于所述第二存储空间,且所述第二存储空间包括所述第三存储空间。

可选的,所述装置还包括:

第五确定模块,被配置为执行确定所述第二存储空间中所述目标对象所占用的第三占用空间;

第六确定模块,被配置为执行基于所述第三占用空间确定是否对所述第二存储空间进行扩展;

第二扩展模块,被配置为执行在确定对所述第二存储空间进行扩展的情况下,对所述第二存储空间进行扩展,得到第四存储空间,其中,所述第四存储空间大于所述第二存储空间,且所述第四存储空间包括所述第二存储空间。

可选的,所述第三确定模块包括:

第二回收单元,被配置为执行若满足触发垃圾回收的条件,则进行垃圾回收以删除所述第二存储空间中所述目标对象以外的对象;

第二确定单元,被配置为执行在所述垃圾回收结束之后确定所述第二存储空间中所述目标对象所占用的第二占用空间。

可选的,所述第五确定模块包括:

第三确定单元,被配置为执行若满足触发垃圾回收的条件,则在所述垃圾回收开始之前确定所述第二存储空间中所述目标对象所占用的第三占用空间;

第三回收单元,被配置为执行进行垃圾回收以删除所述第二存储空间中所述目标对象以外的对象。

可选的,所述第一确定模块包括:

获取单元,被配置为执行获取内存的剩余存储空间,所述内存包括所述第一存储空间;

第四确定单元,被配置为执行若所述内存的剩余存储空间小于第一预设值,则确定第一存储空间中目标对象所占用的第一占用空间;

所述装置还包括:

第三扩展模块,被配置为执行若所述内存的剩余存储空间大于或等于所述第一预设值且所述第一存储空间小于目标值,则在所述页面加载前依据所述内存的剩余存储空间扩展所述第一存储空间为所述目标值,其中,所述目标值为第二预设值,或者,所述目标值与所述内存的剩余存储空间呈正相关。

可选的,所述第一确定模块包括:

判断单元,被配置为执行判断所述页面是否为预设类型的页面,所述预设类型的页面设置有与所述页面对应的存储空间;

第五确定单元,被配置为执行若所述页面不为所述预设类型的页面,则确定第一存储空间中目标对象所占用的第一占用空间;

所述装置还包括:

第四扩展模块,被配置为执行若所述页面为所述预设类型的页面且所述第一存储空间小于所述页面对应的存储空间,则在所述页面加载前扩展所述第一存储空间为所述页面对应的存储空间。

根据本公开实施例的第三方面,提供一种电子设备,包括:

处理器;

用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为执行所述指令,以实现如第一方面所述的页面加载方法。

根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面所述的页面加载方法。

根据本公开实施例的第五方面,提供一种计算机程序产品,当所述计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面所述的页面加载方法。

本公开的实施例提供的技术方案至少带来以下有益效果:由于本公开实施例中在页面加载时基于所述第一占用空间确定是否对所述第一存储空间进行扩展,且对所述第一存储空间进行扩展后得到的所述第二存储空间大于对所述第一存储空间,因此,在页面加载过程中能够保持第一存储空间的存储空间保持不变或增大,能够减少第一存储空间的存储空间在页面加载过程中的调整次数,从而能够减小页面加载消耗的时长。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。

图1是根据一示例性实施例示出的一种页面加载方法的流程图。

图2是根据一示例性实施例示出的一种页面加载装置框图。

图3是根据一示例性实施例示出的一种电子设备框图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

图1是根据一示例性实施例示出的一种页面加载方法的流程图,如图1所示,包括以下步骤。

在步骤s101中,获取到加载页面的请求后,确定第一存储空间中目标对象所占用的第一占用空间,所述第一存储空间为用于存储所述页面的加载对象的存储空间,所述目标对象为存在引用关系的对象。

其中,可以是通过程序获取到加载页面的请求,所述程序可以为电子设备上安装的程序。所述程序可以是浏览器程序或者其他程序,可以通过所述程序加载页面,用于加载页面的代码可以包括javascirpt代码。所述加载页面的请求可以是用户针对所述程序输入的加载页面的请求,或者可以是其他程序或其他电子设备发送的针对所述程序的加载页面的请求,本实施例对此不进行限定。示例地,可以是通过浏览器打开内部嵌入大量javascirpt脚本的页面,或者,可以是通过应用程序打开内部嵌入大量javascirpt脚本的页面。所述目标对象可以是活动的对象,例如,可以是处于被其他对象引用或者被根引用的对象,通过客户机或者程序代码可以到达的对象为目标对象。

另外,所述第一存储空间可以为新生代空间(newspace),示例地,可以为javascirpt引擎占用的内存中的新生代空间。以第一存储空间为新生代空间为例,新生代空间可以分为from空间以及to空间,from空间为闲置空间,to空间为使用空间,程序的加载对象存储在to空间中。from空间和to空间的大小可以相同。所述确定第一存储空间中目标对象所占用的第一占用空间,可以是,确定新生代空间的to空间中目标对象所占用的第一占用空间。

在步骤s102中,基于所述第一占用空间确定是否需要对所述第一存储空间进行扩展。

其中,可以是在所述第一占用空间大于第三预设值,或者可以是在所述第一占用空间与所述第一存储空间的大小满足预设关系时确定需要对所述第一存储空间进行扩展,例如,所述第一占用空间与所述第一存储空间大小的差值小于第四预设值。作为一种可选的实施方式,所述基于所述第一占用空间确定是否需要对所述第一存储空间进行扩展,可以包括,若满足触发垃圾回收的条件,则在垃圾回收开始之前确定第一存储空间中目标对象所占用的第一占用空间。示例地,可以统计前一次对第一存储空间进行扩展的时刻至当前满足触发垃圾回收的条件的时刻之间,多次垃圾回收确定的多个所述第一占用空间之和,若所述多个第一占用空间之和大于第一存储空间的大小,则可以确定对所述第一存储空间进行扩展。进一步的,可以在第一存储空间的大小小于预设的第一存储空间的最大值且所述多个第一占用空间之和大于第一存储空间的大小时,确定对所述第一存储空间进行扩展。

例如,前一次对第一存储空间进行扩展的时刻至当前满足触发垃圾回收的条件的时刻之间,进行了三次垃圾回收,该三次垃圾回收每一次垃圾回收之前确定的第一占用空间分别为a1,a2及a3,若(a1+a2+a3)大于当前第一存储空间的大小,则确定对第一存储空间进行扩展。

另外,以第一存储空间为新生代空间为例,所述预设的第一存储空间的最大值可以为限定的新生代空间的最大值。在初始状态,新生代空间的大小可以为1m,在对新生代空间进行扩展的过程中,为避免新生代空间无限扩展,可以限定新生代空间的最大值。例如,可以限定新生代空间最大为8m,对于不同的电子设备,新生代空间的最大值可以不同。

在步骤s103中,当需要对所述第一存储空间进行扩展时,对所述第一存储空间进行扩展,得到第二存储空间,其中,所述第二存储空间大于所述第一存储空间,且所述第二存储空间包括所述第一存储空间。

其中,所述对所述第一存储空间进行扩展,可以是,将所述第一存储空间的大小增大预设增大值,得到第二存储空间;或者,可以将所述第一存储空间的大小变更为第一占用空间大小的预设倍数,得到第二存储空间。以第一存储空间为新生代空间为例,对所述第一存储空间进行扩展后得到的第二存储空间可以为所述第一存储空间的两倍。第二存储空间可以是扩展后的新生代空间。

在步骤s104中,基于所述第二存储空间加载所述页面。

其中,可以是在加载所述页面之前基于所述第一占用空间确定是否需要对所述第一存储空间进行扩展,在确定对所述第一存储空间进行扩展的情况下,对所述第一存储空间进行扩展;或者可以是在加载所述页面的过程中基于所述第一占用空间确定是否需要对所述第一存储空间进行扩展,在确定对所述第一存储空间进行扩展的情况下,对所述第一存储空间进行扩展,本实施例对此不进行限定。

示例地,所述页面加载方法可以应用于电子设备,所述电子设备安装有程序,所述程序可以是浏览器程序或者其他程序,可以通过所述程序加载页面,用于加载页面的代码可以包括javascirpt代码,在执行所述javascirpt代码时通过javascirpt引擎对javascirpt代码进行解释。所述javascirpt引擎可以为v8引擎。所述第一存储空间可以为新生代空间。所述javascirpt引擎的内存可以包括新生代空间、老生代空间(oldspace)、代码空间(codespace)、映射空间(mapspace)以及最大对象空间(largeobjectspace)。

相关技术中,在页面加载的过程中,当新生代空间的剩余存储空间小于待分配存储空间的对象所需的存储空间时,会触发新生代空间的垃圾回收,并且会对新生代空间的存储空间进行调整,频繁对新生代空间的存储空间进行调整会导致页面加载消耗较长的时长。并且,对新生代空间的大小进行缩减会更容易触发垃圾回收,增加了垃圾回收的总次数,会使得页面加载消耗更长的时长。本公开实施例中,在页面加载过程中能够保持新生代空间的存储空间保持不变或增大,能够减少新生代空间的存储空间在页面加载过程中的调整次数,从而能够减小页面加载消耗的时长。

本公开的实施例提供的技术方案至少带来以下有益效果:由于本公开实施例中在页面加载时基于所述第一占用空间确定是否对所述第一存储空间进行扩展,且对所述第一存储空间进行扩展后得到的所述第二存储空间大于对所述第一存储空间,因此,在页面加载过程中能够保持第一存储空间的存储空间保持不变或增大,能够减少第一存储空间的存储空间在页面加载过程中的调整次数,从而能够减小页面加载消耗的时长。

可选的,所述确定第一存储空间中目标对象所占用的第一占用空间,包括:

若满足触发垃圾回收的条件,则在垃圾回收开始之前确定第一存储空间中目标对象所占用的第一占用空间;

进行垃圾回收以删除所述第一存储空间中所述目标对象以外的对象。

其中,所述触发垃圾回收(garbagecollect,gc)的条件可以是第一存储空间的剩余存储空间小于待分配存储空间的对象所需的存储空间,示例地,可以是新生代空间的剩余存储空间小于待分配存储空间的对象所需的存储空间。以第一存储空间为新生代空间为例,所述进行垃圾回收可以是,将from空间和to空间的名称对调,遍历检查from空间中所有的对象,判断from空间中的对象是否为目标对象,并标记所有的目标对象;若from空间中的对象已经历过一次垃圾回收,且为目标对象,则对该对象的age(年龄)加1;判断from空间中的对象的age,将age大于1的目标对象拷贝至第五存储空间,所述第五存储空间可以为老生代空间;将age小于或等于1的目标对象拷贝至to空间。通过遍历检查from空间中所有的对象,可以将from空间中所有的目标对象存活时间较短的目标对象拷贝至to空间,并将存活时间较长的目标对象拷贝至老生代空间,并且能够删除所述新生代空间中所述目标对象以外的对象。

该实施方式中,通过判断是否满足触发垃圾回收的条件,在垃圾回收开始之前确定所述第一占用空间,并基于所述第一占用空间确定是否对所述第一存储空间进行扩展,在确定对所述第一存储空间进行扩展的情况下,能够加快垃圾回收的速度,通过优化垃圾回收的流程,能够减小页面加载消耗的时长,提升用户的体验。

可选的,所述基于所述第二存储空间加载所述页面之后,所述方法还包括:

在完成加载所述页面的情况下,确定所述第二存储空间中所述目标对象所占用的第二占用空间;

基于所述第二占用空间确定是否对所述第二存储空间进行缩减;

在确定对所述第二存储空间进行缩减的情况下,对所述第二存储空间进行缩减,得到第三存储空间,其中,所述第三存储空间小于所述第二存储空间,且所述第二存储空间包括所述第三存储空间。

其中,所述完成加载所述页面,可以是接收到所述页面已完成加载的消息,认为所述页面已完成加载;或者可以是从开始加载所述页面的时刻经过预设时长后,认为所述页面已完成加载,所述预设时长可以为6s,7s,或8s等等。

另外,可以是在所述第二占用空间小于第五预设值,或者可以是在所述第二占用空间与所述第二存储空间的大小满足预设关系时确定对所述第二存储空间进行缩减,例如,所述第二占用空间与所述第二存储空间大小的差值大于第六预设值。以第二存储空间为扩展后的新生代空间为例,可以基于第二占用空间与to空间的大小确定是否对第二存储空间进行缩减,示例地,可以判断第二占用空间的两倍是否小于to空间的大小,若第二占用空间的两倍小于to空间的大小,则可以确定对所述第二存储空间进行缩减;若第二占用空间的两倍大于或等于to空间的大小,则确定不对所述第二存储空间进行缩减。

进一步的,所述对所述第二存储空间进行缩减,可以是,将所述第二存储空间的大小减小预设缩减值,或者,可以将所述第二存储空间的大小变更为第二占用空间大小的预设倍数。以第二存储空间为扩展后的新生代空间为例,可以将to空间的大小变更为第三占用空间大小的两倍。

该实施方式中,在页面加载的过程中保持第一存储空间的大小不变或增大,在页面加载结束后根据第二占用空间对第二存储空间进行缩减,从而能够避免新生代空间无限扩展导致浪费内存,在减小页面加载消耗的时长的同时,使内存保持在良好的使用状态。

可选的,所述确定所述第二存储空间中所述目标对象所占用的第二占用空间之前,所述方法还包括:

确定所述第二存储空间中所述目标对象所占用的第三占用空间;

基于所述第三占用空间确定是否对所述第二存储空间进行扩展;

在确定对所述第二存储空间进行扩展的情况下,对所述第二存储空间进行扩展,得到第四存储空间,其中,所述第四存储空间大于所述第二存储空间,且所述第四存储空间包括所述第二存储空间。

其中,可以是在所述第三占用空间大于第三预设值,或者可以是在所述第三占用空间与所述第二存储空间的大小满足预设关系时确定对所述第二存储空间进行扩展,例如,所述第三占用空间与所述第二存储空间大小的差值小于第四预设值。作为一种可选的实施方式,所述基于所述第三占用空间确定是否对所述第二存储空间进行扩展,可以包括,若满足触发垃圾回收的条件,则在垃圾回收开始之前确定用于存储所述程序的加载对象的第二存储空间中目标对象所占用的第三占用空间。示例地,可以统计前一次对第二存储空间进行扩展的时刻至当前满足触发垃圾回收的条件的时刻之间,多次垃圾回收确定的多个所述第三占用空间之和,若所述多个第三占用空间之和大于第二存储空间的大小,则可以确定对所述第二存储空间进行扩展。进一步的,可以在第二存储空间小于预设的第二存储空间的最大值且所述多个第三占用空间之和大于第二存储空间的大小时,确定对所述第二存储空间进行扩展。

该实施方式中,在页面加载的过程中保持第一存储空间的大小不变或增大,在页面加载结束后根据第二占用空间对第二存储空间进行缩减,或者根据第三占用空间对第二存储空间进行扩展,从而在页面加载结束后能够对新生代空间进行正常的缩减或扩展,使内存保持在良好的使用状态。

可选的,所述确定所述第二存储空间中所述目标对象所占用的第二占用空间,包括:

若满足触发垃圾回收的条件,则进行垃圾回收以删除所述第二存储空间中所述目标对象以外的对象;

在所述垃圾回收结束之后确定所述第二存储空间中所述目标对象所占用的第二占用空间。

该实施方式中,在完成加载所述页面的情况下,通过判断是否满足触发垃圾回收的条件,在所述垃圾回收结束之后确定所述第二存储空间中所述目标对象所占用的第二占用空间,并基于所述第二占用空间确定是否对所述第二存储空间进行缩减,能够避免较大的新生代空间浪费内存,通过优化垃圾回收的流程,能够使内存保持在良好的使用状态,提升用户的体验。

可选的,所述确定所述第二存储空间中所述目标对象所占用的第三占用空间,包括:

若满足触发垃圾回收的条件,则在所述垃圾回收开始之前确定所述第二存储空间中所述目标对象所占用的第三占用空间;

进行垃圾回收以删除所述第二存储空间中所述目标对象以外的对象。

该实施方式中,在完成加载所述页面的情况下,通过判断是否满足触发垃圾回收的条件,在垃圾回收开始之前确定所述第三占用空间,并基于所述第三占用空间确定是否对所述第二存储空间进行扩展,在确定对所述第二存储空间进行扩展的情况下,能够加快垃圾回收的速度,通过优化垃圾回收的流程,能够减小页面加载消耗的时长,提升用户的体验。

可选的,所述确定第一存储空间中目标对象所占用的第一占用空间,包括:

获取内存的剩余存储空间,所述内存包括所述第一存储空间;

若所述内存的剩余存储空间小于第一预设值,则确定第一存储空间中目标对象所占用的第一占用空间;

所述方法还包括:

若所述内存的剩余存储空间大于或等于所述第一预设值且所述第一存储空间小于目标值,则在所述页面加载前依据所述内存的剩余存储空间扩展所述第一存储空间为所述目标值,其中,所述目标值为第二预设值,或者,所述目标值与所述内存的剩余存储空间呈正相关。

其中,所述内存可以是安装所述程序的电子设备的内存。所述第一预设值可以为500m,或者可以为1g,或者可以为10g等等,可以按照实际需要进行设置。所述第二预设值可以为1m,或者5m,或者10m等等,本实施例对此不进行限定。所述目标值与所述内存的剩余存储空间呈正相关,可以是,所述目标值可以为所述内存的剩余存储空间与预设系数的乘积,所述预设系数小于1。

该实施方式中,在内存的剩余存储空间较大时,设置较大的第一存储空间,而触发垃圾回收的条件为第一存储空间的剩余空间小于待分配对象需求的存储空间,设置较大的第一存储空间能够减少触发垃圾回收的次数,从而能够提升页面加载速度。

可选的,所述确定第一存储空间中目标对象所占用的第一占用空间,包括:

判断所述页面是否为预设类型的页面,所述预设类型的页面设置有与所述页面对应的存储空间;

若所述页面不为所述预设类型的页面,则确定第一存储空间中目标对象所占用的第一占用空间;

所述方法还包括:

若所述页面为所述预设类型的页面且所述第一存储空间小于所述页面对应的存储空间,则在所述页面加载前扩展所述第一存储空间为所述页面对应的存储空间。

其中,所述预设类型的页面可以是页面展示内容固定的页面。与所述页面对应的存储空间,可以是预估所述页面在页面加载过程中占用的存储空间。示例地,可以在调试程序的过程中,加载所述页面,查看所述页面加载完成后消耗的第一存储空间,从而可以在所述页面加载前将第一存储空间设置为该消耗的第一存储空间,从而可以避免页面加载过程中空间放大的时间消耗。

该实施方式中,对于预设类型的页面,扩展所述第一存储空间为所述页面对应的存储空间,从而对于特定的页面,能够设置较为充足的第一存储空间,从而能够减少在页面加载过程中扩展第一存储空间的时间。

图2是根据一示例性实施例示出的一种页面加载装置框图。参照图2,该装置包括:

第一确定模块201,被配置为执行获取到加载页面的请求后,确定第一存储空间中目标对象所占用的第一占用空间,所述第一存储空间为用于存储所述页面的加载对象的存储空间,所述目标对象为存在引用关系的对象;

第二确定模块202,被配置为执行基于所述第一占用空间确定是否需要对所述第一存储空间进行扩展;

第一扩展模块203,被配置为执行当需要对所述第一存储空间进行扩展时,对所述第一存储空间进行扩展,得到第二存储空间,其中,所述第二存储空间大于所述第一存储空间,且所述第二存储空间包括所述第一存储空间;

加载模块204,被配置为执行基于所述第二存储空间加载所述页面。

可选的,所述第一确定模块201包括:

第一确定单元,被配置为执行若满足触发垃圾回收的条件,则在垃圾回收开始之前确定第一存储空间中目标对象所占用的第一占用空间;

第一回收单元,被配置为执行进行垃圾回收以删除所述第一存储空间中所述目标对象以外的对象。

可选的,所述装置还包括:

第三确定模块,被配置为执行在完成加载所述页面的情况下,确定所述第二存储空间中所述目标对象所占用的第二占用空间;

第四确定模块,被配置为执行基于所述第二占用空间确定是否对所述第二存储空间进行缩减;

缩减模块,被配置为执行在确定对所述第二存储空间进行缩减的情况下,对所述第二存储空间进行缩减,得到第三存储空间,其中,所述第三存储空间小于所述第二存储空间,且所述第二存储空间包括所述第三存储空间。

可选的,所述装置还包括:

第五确定模块,被配置为执行确定所述第二存储空间中所述目标对象所占用的第三占用空间;

第六确定模块,被配置为执行基于所述第三占用空间确定是否对所述第二存储空间进行扩展;

第二扩展模块,被配置为执行在确定对所述第二存储空间进行扩展的情况下,对所述第二存储空间进行扩展,得到第四存储空间,其中,所述第四存储空间大于所述第二存储空间,且所述第四存储空间包括所述第二存储空间。

可选的,所述第三确定模块包括:

第二回收单元,被配置为执行若满足触发垃圾回收的条件,则进行垃圾回收以删除所述第二存储空间中所述目标对象以外的对象;

第二确定单元,被配置为执行在所述垃圾回收结束之后确定所述第二存储空间中所述目标对象所占用的第二占用空间。

可选的,所述第五确定模块包括:

第三确定单元,被配置为执行若满足触发垃圾回收的条件,则在所述垃圾回收开始之前确定所述第二存储空间中所述目标对象所占用的第三占用空间;

第三回收单元,被配置为执行进行垃圾回收以删除所述第二存储空间中所述目标对象以外的对象。

可选的,所述第一确定模块201包括:

获取单元,被配置为执行获取内存的剩余存储空间,所述内存包括所述第一存储空间;

第四确定单元,被配置为执行若所述内存的剩余存储空间小于第一预设值,则确定第一存储空间中目标对象所占用的第一占用空间;

所述装置还包括:

第三扩展模块,被配置为执行若所述内存的剩余存储空间大于或等于所述第一预设值且所述第一存储空间小于目标值,则在所述页面加载前依据所述内存的剩余存储空间扩展所述第一存储空间为所述目标值,其中,所述目标值为第二预设值,或者,所述目标值与所述内存的剩余存储空间呈正相关。

可选的,所述第一确定模块201包括:

判断单元,被配置为执行判断所述页面是否为预设类型的页面,所述预设类型的页面设置有与所述页面对应的存储空间;

第五确定单元,被配置为执行若所述页面不为所述预设类型的页面,则确定第一存储空间中目标对象所占用的第一占用空间;

所述装置还包括:

第四扩展模块,被配置为执行若所述页面为所述预设类型的页面且所述第一存储空间小于所述页面对应的存储空间,则在所述页面加载前扩展所述第一存储空间为所述页面对应的存储空间。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图3是根据一示例性实施例示出的一种电子设备框图。参照图3,电子设备包括:

处理器301;

用于存储所述处理器301可执行指令的存储器302;

其中,所述处理器301被配置为执行所述指令,以实现上述实施例中的页面加载方法。

在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器,上述指令可由电子设备的处理器执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

在示例性实施例中,还提供了一种计算机程序产品,包括一条或多条指令,该一条或多条指令可以由电子设备的处理器执行,以完成上述页面加载的方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1