一种内存释放方法、装置、终端及存储介质与流程

专利查询2023-9-26  122



1.本技术涉及数据处理领域,尤其涉及一种内存释放方法、装置、终端及存储介质。


背景技术:

2.随着计算机技术的发展,移动端的应用程序越来越多,当应用程序在运行时,会占用一定的内存。目前,很多应用程序的页面设计的越来越复杂,呈现的内容也越来越丰富,具有大量的文字类信息或图片类信息,这些对应用程序的内存占用也变得越来越大,当页面加载的内容过多时,可能会存在内存占用过大,而导致应用程序无法正常使用的情况。


技术实现要素:

3.本技术实施例提供了一种内存释放方法、装置、终端及存储介质,可以实现在页面加载过程中的内存释放,减少应用程序的内存占用值,提升应用程序的运行稳定性。
4.第一方面,本技术实施例公开了一种内存释放方法,所述方法包括:
5.当接收到页面加载请求时,获取用于加载前端页面的多个页面加载元素;
6.在前端页面加载所述多个页面加载元素,以得到加载页面,并根据所述加载页面确定各个页面加载元素的元素类型,所述元素类型包括:可视元素、潜在可视元素以及不可视元素中的任一种;
7.将元素类型为所述不可视元素对应的页面加载元素确定为目标页面加载元素,并根据所述目标页面加载元素进行内存释放;
8.当检测到针对所述加载页面的页面滑动操作时,若确定所述目标页面加载元素的元素类型更新为所述可视元素或所述潜在可视元素,则重建所述目标页面加载元素,以加载重建后的目标页面加载元素。
9.第二方面,本技术实施例公开了一种内存释放装置,所述装置包括:
10.获取单元,用于当接收到页面加载请求时,获取用于加载前端页面的多个页面加载元素;
11.确定单元,用于在前端页面加载所述多个页面加载元素,以得到加载页面,并根据所述加载页面确定各个页面加载元素的元素类型,所述元素类型包括:可视元素、潜在可视元素以及不可视元素中的任一种;
12.释放单元,用于将元素类型为所述不可视元素对应的页面加载元素确定为目标页面加载元素,并根据所述目标页面加载元素进行内存释放;
13.重建单元,用于当检测到针对所述加载页面的页面滑动操作时,若确定所述目标页面加载元素的元素类型更新为所述可视元素或所述潜在可视元素,则重建所述目标页面加载元素,以加载重建后的目标页面加载元素。
14.第三方面,本技术实施例公开了一种终端,包括处理器、存储器,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。
15.第四方面,本技术实施例公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
16.本技术实施例中,当接收到页面加载请求时,可以获取用于加载前端页面的多个页面加载元素,以在前端页面加载多个页面加载元素,从而得到加载页面,然后,可以根据加载页面确定各个页面加载元素的元素类型,其中,元素类型可以包括:可视元素、潜在可视元素以及不可视元素中的任一种。进一步的,可以将元素类型为不可视元素对应的页面加载元素确定为目标页面加载元素,并根据目标页面加载元素进行内存释放。而当检测到针对加载页面的页面滑动操作时,若确定目标页面加载元素的元素类型更新为可视元素或潜在可视元素,则可以重建目标页面加载元素,以加载重建后的目标页面加载元素。通过实施上述方法,可以在页面加载元素为不可视元素时,将该页面加载元素部分或全部销毁,而当不可视元素变成可视元素或潜在可视元素时,可以重新创建被销毁的元素,从而可以有效地减少页面内存的占用大小,让页面所占用的内存保持在一个范围内,可以有效避免因页面内容越来越多而导致页面内存占用过大的问题,进而可以有效提升应用程序的运行稳定性。
附图说明
17.为了更清楚地说明本技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1是本技术实施例提供的一种内存释放系统的流程示意图;
19.图2是本技术实施例提供的一种内存释放方法的流程示意图;
20.图3是本技术实施例提供的一种内存释放方法的流程示意图;
21.图4是本技术实施例提供的一种区域划分的结构示意图;
22.图5a是本技术实施例提供的一种页面滑动操作中页面加载元素的元素类型变化的结构示意图;
23.图5b是本技术实施例提供的一种页面滑动操作中页面加载元素的元素类型变化的结构示意图;
24.图6是本技术实施例提供的一种内存释放装置的结构示意图;
25.图7是本技术实施例提供的一种终端的结构示意图。
具体实施方式
26.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
27.本技术实施例提出了一种页面加载方法,该页面加载方法可应用在各种可进行页面加载应用程序中,通过本技术所提出的页面加载方法,可以有效地减少应用程序在加载页面时页面内存的占用大小,可以让页面所占用的内存保持在一个范围内,可以有效避免
因页面内容越来越多而导致页面内存占用过大的问题,进而可以有效提升应用程序的运行稳定性。例如,当应用程序加载过多页面时,利用本技术的页面加载方式,也可以避免因内存占用过大而被系统强制退出,而无法正常使用应用程序的情况。又如,在内存剩余值较小的情况下,也可以利用本技术的页面加载方式,让页面所占用的内存保持在一个范围内,以避免因内存不足而导致的无法正常使用应用程序的情况。
28.请参阅图1,图1是本技术实施例提供的一种页面加载系统的架构示意图。本技术涉及终端101和服务器102。
29.以终端101为例,终端101可以接收用户发起的页面加载请求,并将该页面加载请求发送至服务器102。服务器102可以响应该页面加载请求获取对应的用于加载前端页面的多个页面加载元素,并将该多个页面加载元素返回至终端101,终端101在接收到该多个页面加载元素之后,可以在前端页面加载多个页面加载元素,以得到加载页面,并根据加载页面确定各个页面加载元素的元素类型,其中,元素类型可以包括:可视元素、潜在可视元素以及不可视元素中的任一种。终端101可以将元素类型为不可视元素对应的页面加载元素确定为目标页面加载元素,并根据目标页面加载元素进行内存释放。
30.后续,当终端101检测到针对加载页面的页面滑动操作时,若确定目标页面加载元素的元素类型更新为可视元素或潜在可视元素,则重建目标页面加载元素,以加载重建后的目标页面加载元素。
31.图1所示的终端101可以是可以是智能手机、平板电脑、笔记本电脑、台式电脑等设备,还可以是例如手柄、触摸屏等外设设备;服务器102可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器,等等。终端101与服务器102可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。
32.以下对本技术实施例的技术方案的实现细节进行详细阐述:
33.请参见图2,图2是本技术实施例提供的一种内存释放方法的流程示意图,该内存释放方法可由上述所提及的终端执行;该内存释放方法包括以下步骤:
34.s201:当接收到页面加载请求时,获取用于加载前端页面的多个页面加载元素。
35.在一种实现方式中,当终端接收到页面加载请求时,可以将该页面加载请求发送至服务器,以使服务器响应该页面加载请求,并得到对应的响应数据,该响应数据可以包括用于加载前端页面的多个页面加载元素。而在服务器得到对应的多个页面加载元素之后,可以将该多个页面加载元素发送至终端,以使终端可以基于该多个页面加载元素加载终端的前端页面。例如,以终端所具有的应用程序为例,该应用程序可以新闻阅读类的应用程序、浏览器等等,在这些应用程序中,通常可以具备一个信息搜索设置项,用户可以通过在该信息搜索设置项中设置相关的搜索信息,以使应用程序可以基于该搜索信息在前端页面上显示该搜索信息对应的加载页面。其中,页面加载请求具体可以是用户通过搜索设置项(例如浏览器中的搜索设置项)所设置的搜索信息,而当应用程序检测到该搜索信息,则可以确定接收到页面加载请求。
36.其中,页面加载元素可以是指用于加载前端页面的数据,例如,该数据可以是指文
字类数据、图片类数据等等。页面加载元素可以包括文字、或图片、或文字与图片的组合,如一个页面加载元素可以包括一段文字,或一张图片,或一段文字与多张图片的组合、或多段文字与多张图片的组合等等。
37.s202:在前端页面加载多个页面加载元素,以得到加载页面,并根据加载页面确定各个页面加载元素的元素类型。
38.其中,元素类型可以包括:可视元素、潜在可视元素以及不可视元素中的任一种。可视元素可以理解为:用户不用在所使用的终端屏幕上做任何操作(如滑动操作),即可以在终端屏幕上浏览到的数据;潜在可视元素可以理解为:用户在所使用的终端屏幕上进行一次滑动操作,即可以看到的数据,其中,滑动操作可以包括向上滑动操作和向下滑动操作。不可视元素可以理解为:除可视元素和潜在可视元素之外的元素。
39.在一种实现方式中,在获取到用于加载页面的页面加载元素之后,可以在前端页面加载多个页面加载元素,以得到对应的加载页面,该加载页面可以是指当前呈现在终端屏幕上的页面,即用户可以直接浏览到的页面。那么,在得到该加载页面之后,即可以根据该加载页面来确定各个页面加载元素的元素类型。
40.可选的,可以先根据该加载页面确定可视区域和潜在可视区域。再根据页面加载元素的所在区域确定对应的元素类型。例如,以多个页面加载元素中的任一个页面加载元素为例进行说明。针对多个页面加载元素中的任一页面加载元素,如果该任一页面加载元素的元素位置位于可视区域,则可以将该任一页面加载元素的元素类型确定为可见元素;如果该任一页面加载元素的元素位置位于潜在可视区域,则可以将任一页面加载元素的元素类型确定为潜在可见元素;如果该任一页面加载元素的元素位置不位于可视区域和潜在可视区域,则可以将该任一页面加载元素的元素类型确定为不可见元素。
41.s203:将元素类型为不可视元素对应的页面加载元素确定为目标页面加载元素,并根据所述目标页面加载元素进行内存释放。
42.在一种实现方式中,为了减少页面内存的占用大小,保证应用程序的稳定运行,可以对当前不可视元素的内存占用进行释放,即可以将元素类型为不可视元素对应的页面加载元素确定为目标页面加载元素,并根据该目标页面加载元素进行内存释放。其中,目标页面加载元素的数量可以为一个或多个,在根据目标页面加载元素进行内存释放时,可以将所有的目标页面加载元素作为释放元素,以进行内存释放。其中,内存释放可以是将释放元素进行删除,例如,在内存存储中,可以创建空白视图(view)来代替释放元素,以减少释放元素的内存占用值。在目标页面加载元素为多个的情况下,可以从该多个目标页面加载元素中选择部分目标页面加载元素作为释放元素。其中,在选择部分目标加载元素作为释放元素时,可以从该多个目标页面加载元素中随机选择部分作为释放元素,也可以按照预设的选择规则从该多个目标页面加载元素中选择较为合适的目标页面加载元素作为释放元素。下述对按照预设的选择规则从该多个目标页面加载元素中选择释放元素进行阐述。
43.可选的,可以基于各个目标页面加载元素的历史浏览次数,从该多个目标页面加载元素中选择释放元素。具体实现中,可以获取多个目标页面加载元素中各个目标页面加载元素的历史浏览次数,在获取到各个目标页面加载元素的历史浏览次数之后,再依照历史浏览次数从小到大的顺序依次对各个目标页面加载元素进行升序排序,以得到针对目标页面加载元素的第一排序结果。然后再将第一排序结果中排在前n位的目标页面加载元素
确定为释放元素,并释放释放元素的内存存储。通过上述方法,可以将浏览次数较低的页面加载元素的内存占用值进行优先释放。其中,n可以是预先设置的任意正整数,例如,n可以为7、10等等数值。
44.举例来说,假设多个目标页面加载元素包括:元素1、元素2、元素3、元素4、元素5,n为3。在按照各个目标页面加载元素的历史浏览次数从小到大进行排序时,对应的第一排序结果为:元素3、元素2、元素4、元素5、元素1,则可以将元素3、元素2和元素4作为释放元素,以对元素3、元素2和元素4所占用的内存进行释放。
45.可选的,还可以结合多个维度的特征从多个目标页面加载元素中选择较为合适的释放元素,例如,可以结合目标页面加载元素的历史浏览次数和内存占用值,这两个维度的特征来进行选择。具体实现中,可以获取多个目标页面加载元素中各个目标页面加载元素的历史浏览次数,还可以获取各个目标页面加载元素的内存占用值。在获取到历史浏览次数和内存占用值之后,可以依照历史浏览次数从大到小的顺序依次对各个目标页面加载元素进行降序排序,以得到第二排序结果。然后再利用该第二排序结果和各个目标页面加载元素的内存占用值选择释放元素。例如,可以按照第二排序结果依次对各个目标页面加载元素的内存占用值进行求和处理,当求和结果满足预设内存占用规则时,则可以结束求和处理。然后再将未进行求和处理的目标页面加载元素确定为释放元素,并释放释放元素的内存存储。其中,预设内存占用规则可以是指求和结果和预设内存占用值之间的差值在指定范围内。该预设内存值可以是指页面加载性能较好时所对应的内存占用值,也可以是指当前的内存占用剩余值。该指定范围可以是一个尽可能小的数值,或者该指定范围小于在结束求和处理之后的下一个目标页面加载元素的内存占用值。基于此,可以在从多个目标页面加载元素中筛选出释放元素时,在保证过滤掉历史浏览次数较低的目标页面加载元素的同时,也可以保证在保存未过滤掉的目标页面加载元素时的页面加载性能达到一个较好的效果。
46.举例来说,假设多个目标页面加载元素包括:元素1、元素2、元素3、元素4、元素5,对应的第二排序结果为元素1、元素5、元素4、元素2、元素3,按照该第二排序结果对各个目标页面加载元素对应的内存占用值进行求和处理,并且在每一次求和处理,并得到对应的求和结果之后,将这个求和结果和预设内存值进行比较,以确定求和结果和预设内存值之间的差值是否在指定范围内。假设上述5个目标页面加载元素(元素1、元素5、元素4、元素2、元素3)分别对应的内存占用值为20、15、30、45、40,预设内存值为70,指定范围为10。接下来,依次进行求和处理。首先,元素1(20)和元素5(15)的第一求和结果是35,第一求和结果(35)与预设内存值(70)之间的差值大于10;继续进行求和处理,第一求和结果(35)和元素4(30)的第二求和结果是65,第二求和结果(65)与预设内存值(70)之间的差值小于10。那么,可以将未进行求和处理的目标页面加载元素(元素2和元素3)确定为释放元素,即元素1、元素5和元素4所占用的内存已经达到页面加载性能较好情况下的内存占用,则可以将剩下的内存占用进行释放。
47.考虑到一个目标页面加载元素中还可以包括一个或多个页面加载子元素,那么,除了上述描述的直接将整个目标页面加载元素的内存进行释放,还可以对一个目标页面加载元素中的各个页面加载子元素进行分析,以对页面加载子元素进行释放。例如,可以基于目标页面加载元素中各个页面加载子元素的重要程度值来进行释放。页面加载子元素可以
包括:一级标题、二级标题、三级标题、具体内容、第一图片、第二图片等等,而对于一个目标页面加载元素而言,在该目标页面加载元素中所包括的页面加载子元素,可以包括上述提及的页面加载子元素中的一种或多种。
48.可选的,可以获取预设的页面加载子元素与重要程度值之间的映射关系。然后,针对多个目标页面加载元素中的任一目标页面加载元素而言,可以基于预设的页面加载子元素与重要程度值之间的映射关系确定该任一目标页面加载元素中各个页面加载子元素分别对应的重要程度值。在确定了该任一目标页面加载元素中各个页面加载子元素分别对应的重要程度值之后,再将重要程度值低于预设重要程度值的页面加载子元素确定为释放元素,并对释放元素的内存存储进行释放。基于上述方法,可以确定每个目标页面加载元素中的释放元素,并对每个目标页面加载元素中的释放元素的内存存储进行释放。通过这种方法,可以将重要程度较低的页面加载子元素进行释放,而对于重要程度较高的页面加载子元素不进行释放,以便于后续当这个页面加载元素再次出现在终端屏幕上时,可以缩短页面加载元素的重建时间,从而加快页面加载速度,提高用户体验。
49.其中,可以预先设置各种页面加载子元素分别对应的重要程度值,以得到页面加载子元素与重要程度值之间的映射关系。例如,可以以1-10范围内的数值来表征重要程度值,且数值越大,对应的重要程度越高。对于各个页面加载子元素的重要程度值,可以基于业务需求来设置,不同的业务需求下页面加载子元素对应的重要程度值可以不一致,例如,在重视图片类的业务,可以将图片对应的重要程度值设置较大,又如,在重视文字类的业务,可以将标题对应的重要程度值设置较大。基于此,可以将目标页面加载元素中所包括的页面加载子元素与映射关系中所包括的页面加载子元素进行匹配,并将匹配到的页面加载子元素对应的重要程度值作为页面加载子元素的重要程度值。其中,预设重要程度值可以预先设置,例如,假如映射关系中的重要程度值是以1-10范围内的数值来表征的,预设重要程度值可以是如5、3等数值。
50.s204:当检测到针对加载页面的页面滑动操作时,若确定目标页面加载元素的元素类型更新为可视元素或潜在可视元素,则重建目标页面加载元素,以加载重建后的目标页面加载元素。
51.在一种实现方式中,用户可以针对当前所显示的加载页面进行页面滑动操作,以浏览不同页面。而在页面滑动的过程中,页面加载元素的元素类型也可以发生变化,例如,页面加载元素可由不可视元素更新为潜在可视元素,也可以更新为可视元素;又如,页面加载元素可由可视元素更新为不可见元素,也可以更新为潜在可视元素;又如,页面加载元素可由潜在可视元素更新为不可见元素,也可以更新为可视元素。那么,在页面滑动的过程中,进行内存释放的页面加载元素也会发生变化,如果存在元素类型由可视元素或潜在可视元素更新为不可见元素的页面加载元素,则可以释放这些页面加载元素的内存存储。而如果存在元素类型由不可视元素更新为可见元素或潜在可视元素的页面加载元素,考虑到需要利用这些不可视元素进行后续的页面加载或即将利用这些不可视元素进行后续的页面加载,则可以重建这些页面加载元素,以加载重建后的页面加载元素。
52.那么,当检测到针对加载页面的页面滑动操作时,如果确定目标页面加载元素的元素类型更新为可视元素或潜在可视元素,则可以重建目标页面加载元素,以加载重建后的目标页面加载元素。其中,重建过程可以是获取目标页面加载元素对应的原始数据,以利
用该原始数据重建该目标页面加载元素。原始数据可以是指用于创建页面加载元素的数据,该原始数据可以从数据内存中获取。具体实现中,可以通过中央处理器(central processing unit,cpu)和图形处理器(graphics processing unit,gpu)把原始数据创建成页面加载元素。需要说明的是,本技术涉及到的将不可视元素的内存存储进行释放是指将具体的页面加载元素进行销毁,例如将一张图片删除。其中,页面加载元素虽然销毁,但是这些页面加载元素对应的原始数据还是缓存在数据内存中,只需要通过cpu和gpu把这些原始数据创建成页面加载元素即可。
53.本技术实施例中,当接收到页面加载请求时,可以获取用于加载前端页面的多个页面加载元素,以在前端页面加载多个页面加载元素,从而得到加载页面,然后,可以根据加载页面确定各个页面加载元素的元素类型,其中,元素类型可以包括:可视元素、潜在可视元素以及不可视元素中的任一种。进一步的,可以将元素类型为不可视元素对应的页面加载元素确定为目标页面加载元素,并根据目标页面加载元素进行内存释放。而当检测到针对加载页面的页面滑动操作时,若确定目标页面加载元素的元素类型更新为可视元素或潜在可视元素,则可以重建目标页面加载元素,以加载重建后的目标页面加载元素。通过实施上述方法,可以在页面加载元素为不可视元素时,将该页面加载元素部分或全部销毁,而当不可视元素变成可视元素或潜在可视元素时,可以重新创建被销毁的元素,从而可以有效地减少页面内存的占用大小,让页面所占用的内存保持在一个范围内,可以有效避免因页面内容越来越多而导致页面内存占用过大的问题,进而可以有效提升应用程序的运行稳定性。
54.请参见图3,图3是本技术实施例提供的一种内存释放方法的流程示意图,该内存释放方法可由上述所提及的终端执行,该内存释放方法包括以下步骤:
55.s301:当接收到页面加载请求时,获取用于加载前端页面的多个页面加载元素。
56.s302:在前端页面加载多个页面加载元素,以得到加载页面,根据加载页面确定可视区域和潜在可视区域。
57.在一种实现方式中,可以在得到加载页面之后,根据加载页面确定可视区域和潜在可视区域,以便于后续可以基于各个页面加载元素所在的区域来确定对应的元素类型。
58.在一种实现方式中,可以将加载页面所在区域确定为可视区域,可视区域可以理解为:终端屏幕上用于展示数据的区域(简称为数据展示区域),这个数据展示区域也就是加载页面的所在区域。通常,可视区域可以是指屏幕范围区域,也可以是小于屏幕范围区域,如用户对数据展示区域进行了缩放操作,则可视区域可以是指进行缩放操作后所得到的数据展示区域。在本技术实施例中,主要以可视区域为屏幕范围区域为例进行说明。
59.在一种实现方式中,对于潜在可视区域,可以基于潜在可视高度来确定。例如,可以先获取高度特征信息,以基于高度特征信息确定潜在可视高度。其中,高度特征信息可以包括加载页面的页面高度、历史页面滑动偏移量、内存剩余量中的一种或多种。也可以包括其他高度特征信息,此处不一一举例说明。在确定潜在可视高度之后,即可以根据该潜在可视高度确定潜在可视区域。下述对基于高度特征信息确定潜在可视高度进行阐述。
60.可选的,假设高度特征信息包括加载页面的页面高度,则可以将该页面高度作为潜在可视高度。
61.可选的,假设高度特征信息包括历史页面滑动偏移量,则基于历史页面滑动偏移
量确定潜在可视高度的具体实施方式可以包括:可以先获取用户的多个历史页面滑动偏移量,再对该多个历史页面滑动偏移量进行均值运算,以得到平均滑动偏移量,而该平均滑动偏移量即可以作为潜在可视高度。
62.可选的,假设高度特征信息包括内存剩余量,则可以基于内存剩余量的大小来确定潜在可视高度。例如,如果内存剩余量较大,可以将潜在可视高度设置较大;如果内存剩余量较小,可以将潜在可视高度设置较小。具体实现中,可以预先设置一个内存阈值,如果内存剩余量大于该内存阈值,则可以将潜在可视高度设置为第一高度,如果内存剩余量小于该内存阈值,则可以将潜在可视高度设置为第二高度。其中,内存阈值可以预先设置,第一高度可以第二高度也可以预先设置,第一高度可以是加载页面的页面高度,也可以是小于加载页面的页面高度,如,第一高度可以是加载页面的页面高的2/3、1/2等等。第二高度可以是加载页面高度的1/2、1/3等等。在基于内存剩余量的大小来确定潜在可视高度时,可以对内存剩余量进行更为细致的划分,以得到不同的潜在可视高度。例如可以设置多个参考内存剩余量范围,以及每个参考内存剩余量范围对应的参考潜在可视高度。在获取到当前时间的内存剩余量之后,可以将该内存剩余量与多个参考内存剩余量范围进行匹配,确定该内存剩余量所在的参考内存剩余量范围,并将确定的参考内存剩余量范围对应的参考潜在可视高度确定为潜在可视高度。
63.在一种实现方式中,在得到潜在可视高度之后,即可以根据该潜在可视高度确定潜在可视区域。例如,可以将加载页面底部往下方向的潜在可视高度的范围,以及将加载页面顶部往上方向的潜在可视高度的范围均确定为潜在可视区域。
64.例如,参见如图4所示:图4中由41标记的区域为可视区域,该可视区域即是屏幕范围区域。由42标记的区域和由43标记的区域为潜在可视区域,该潜在可视区域由潜在可视高度h来确定,其中,由42标记的区域是由加载页面底部往下方向的潜在可视高度的范围来确定,由43标记的区域是由加载页面顶部往上方向的潜在可视高度的范围来确定。而可视区域和潜在可视区域以外的其他区域可以作为不可视区域,如由44标记的区域和由45标记的区域可以作为不可视区域,该不可视区域仅是示例性说明。
65.s303:针对多个页面加载元素中的任一页面加载元素,若任一页面加载元素的元素位置位于可视区域,则将任一页面加载元素的元素类型确定为可见元素。
66.s304:若任一页面加载元素的元素位置位于潜在可视区域,则将任一页面加载元素的元素类型确定为潜在可见元素。
67.s305:若任一页面加载元素的元素位置不位于可视区域和潜在可视区域,则将任一页面加载元素的元素类型确定为不可见元素。
68.在步骤s303-步骤s305中,在前端页面加载多个页面加载元素,得到加载页面之后,可以得到各个页面加载元素相对于加载页面的位置,可以将该位置称之为元素位置,该加载页面可以是指屏幕范围区域。那么,在确定各个页面加载元素对应的元素类型时,可以基于对应的所在区域来确定。其中,页面加载元素对应的所在区域可以基于元素位置来确定。具体实现中,可以先根据终端屏幕的高度确定可视区域的区域坐标,以及潜在可视高度确定潜在可视区域的区域坐标,然后再将各个页面加载元素的元素坐标这两个区域坐标进行比较。如果某一页面加载元素的元素坐标位于可视区域的区域坐标之内,则将该页面加载元素的所在区域为可视区域;如果某一页面加载元素的元素坐标位于潜在可视区域的区
域坐标之内,则将该页面加载元素的所在区域为潜在可视区域;如果某一页面加载元素的元素坐标不位于可视区域的区域坐标之内,也不位于和潜在可视区域的区域坐标之内,则将该页面加载元素的所在区域为不可视区域。
69.s306:将元素类型为不可视元素对应的页面加载元素确定为目标页面加载元素,并根据目标页面加载元素进行内存释放。
70.s307:当检测到针对加载页面的页面滑动操作时,若确定目标页面加载元素的元素类型更新为可视元素或潜在可视元素,则重建目标页面加载元素,以加载重建后的目标页面加载元素。
71.在一种实现方式中,当检测到针对加载页面的页面滑动操作时,各个页面加载元素相对于前端页面的位置会发生变化,即各个页面加载元素对应的元素类型也可以发生变化。例如,如图5a所示:页面加载元素51的当前所在区域为可视区域,即该页面加载元素51为可视元素,而当用户执行页面向上滑动操作时,该页面加载元素51可以滑动到潜在可视区域,也可以滑动到不可视区域。又如,如图5b所示:页面加载元素52在当前所在区域为不可视区域,即该页面加载元素52为不可视元素,而当用户执行页面向下滑动操作时,该页面加载元素52可以滑动到潜在可视区域,也可以滑动到可视区域。那么,当检测到针对加载页面的页面滑动操作时,还可以再一次确定各个页面加载元素的所在区域,以根据所在区域确定各个页面加载元素更新后所对应的元素类型,从而可以根据更新后的元素类型确定针对页面加载元素对应的具体操作(内存释放操作或重建操作)。如果页面加载元素由可视元素或潜在可视元素更新为不可见元素,则可以对该页面加载元素进行内存释放操作。而如果页面加载元素由不可视元素更新为潜在可视元素或可见元素,则可以对该页面加载元素进行重建操作,以加载重建后的页面加载元素。那么,当检测到针对加载页面的页面滑动操作时,如果确定目标页面加载元素的元素类型更新为可视元素或潜在可视元素,则可以重建目标页面加载元素,以加载重建后的目标页面加载元素。其中,重建操作可以参考步骤s204中的描述,在此处不在赘述。
72.其中,步骤s301和步骤s306的具体实施方式可以参见上述实施例步骤s201和和步骤s203的具体描述,此处不再赘述。
73.在本技术实施例中,可以预先定义各种区域类型,以根据各个页面加载元素的所在区域,确定对应的元素类型,从而可以根据元素类型确定针对页面加载元素对应的操作类型,如操作类型具体可以包括内存释放操作和重建操作;在页面的滑动中,也可以实时更新各个页面加载元素对应的元素类型,并根据更新后的元素类型确定对应的操作类型,以实现在页面加载过程中的内存释放,从而可以有效地减少页面内存的占用大小,并可以使页面所占用的内存保持在一个范围内,可以有效避免因页面内容越来越多而导致页面内存占用过大的问题,进而可以有效提升应用程序的运行稳定性。
74.请参阅图6,图6是本技术实施例提供的一种内存释放装置的结构示意图。所述内存释放装置包括:
75.获取单元601,用于当接收到页面加载请求时,获取用于加载前端页面的多个页面加载元素;
76.确定单元602,用于在前端页面加载所述多个页面加载元素,以得到加载页面,并根据所述加载页面确定各个页面加载元素的元素类型,所述元素类型包括:可视元素、潜在
可视元素以及不可视元素中的任一种;
77.释放单元603,用于将元素类型为所述不可视元素对应的页面加载元素确定为目标页面加载元素,并根据所述目标页面加载元素进行内存释放;
78.重建单元604,用于当检测到针对所述加载页面的页面滑动操作时,若确定所述目标页面加载元素的元素类型更新为所述可视元素或所述潜在可视元素,则重建所述目标页面加载元素,以加载重建后的目标页面加载元素。
79.在一种实现方式中,所述释放单元603,具体用于:
80.根据所述加载页面确定可视区域和潜在可视区域;
81.针对所述多个页面加载元素中的任一页面加载元素,若所述任一页面加载元素的元素位置位于所述可视区域,则将所述任一页面加载元素的元素类型确定为所述可见元素;
82.若所述任一页面加载元素的元素位置位于所述潜在可视区域,则将所述任一页面加载元素的元素类型确定为所述潜在可见元素;
83.若所述任一页面加载元素的元素位置不位于所述可视区域和所述潜在可视区域,则将所述任一页面加载元素的元素类型确定为所述不可见元素。
84.在一种实现方式中,所述释放单元603,具体用于:
85.将所述加载页面所在区域确定为可视区域;
86.获取高度特征信息,并基于所述高度特征信息确定潜在可视高度;所述高度特征信息包括所述加载页面的页面高度、历史页面滑动偏移量、内存剩余量中的一种或多种;
87.根据所述潜在可视高度确定潜在可视区域。
88.在一种实现方式中,所述高度特征信息包括所述历史页面滑动偏移量;所述释放单元603,具体用于:
89.获取用户的多个所述历史页面滑动偏移量;
90.对多个所述历史页面滑动偏移量进行均值运算,得到平均滑动偏移量,并将所述平均滑动偏移量作为潜在可视高度;
91.将所述加载页面底部往下方向的潜在可视高度的范围,以及将所述加载页面顶部往上方向的潜在可视高度的范围均确定为潜在可视区域。
92.在一种实现方式中,所述目标页面加载元素的数量为多个;所述释放单元603,具体用于:
93.获取多个目标页面加载元素中各个目标页面加载元素的历史浏览次数;
94.依照历史浏览次数从小到大的顺序依次对所述各个目标页面加载元素进行升序排序,得到第一排序结果;
95.将所述第一排序结果中排在前n位的目标页面加载元素确定为释放元素,并释放所述释放元素的内存存储,所述n为正整数。
96.在一种实现方式中,所述目标页面加载元素的数量为多个;所述释放单元603,具体用于:
97.获取多个目标页面加载元素中各个目标页面加载元素的历史浏览次数,并获取所述各个目标页面加载元素的内存占用值;
98.依照历史浏览次数从大到小的顺序依次对所述各个目标页面加载元素进行降序
排序,得到第二排序结果;
99.按照第二排序结果依次对各个目标页面加载元素的内存占用值进行求和处理,当求和结果满足预设内存占用规则时,结束求和处理;
100.将未进行求和处理的目标页面加载元素确定为释放元素,并释放所述释放元素的内存存储。
101.在一种实现方式中,所述目标页面加载元素的数量为多个,任一目标页面加载元素中包括多个页面加载子元素;所述释放单元603,具体用于:
102.获取预设的页面加载子元素与重要程度值之间的映射关系;
103.针对多个目标页面加载元素中的任一目标页面加载元素,基于所述预设的页面加载子元素与重要程度值之间的映射关系,确定所述任一目标页面加载元素中各个页面加载子元素分别对应的重要程度值;
104.将重要程度值低于预设重要程度值的页面加载子元素确定为释放元素,并释放所述释放元素的内存存储。
105.可以理解的是,本技术实施例所描述的内存释放装置的各功能单元的功能可根据图2或图3所述的方法实施例中的方法具体实现,其具体实现过程可以参照图2或图3的方法实施例的相关描述,此处不再赘述。
106.本技术实施例中,获取单元601当接收到页面加载请求时,获取用于加载前端页面的多个页面加载元素;确定单元602在前端页面加载所述多个页面加载元素,以得到加载页面,并根据所述加载页面确定各个页面加载元素的元素类型,所述元素类型包括:可视元素、潜在可视元素以及不可视元素中的任一种;释放单元603将元素类型为所述不可视元素对应的页面加载元素确定为目标页面加载元素,并根据所述目标页面加载元素进行内存释放;重建单元604当检测到针对所述加载页面的页面滑动操作时,若确定所述目标页面加载元素的元素类型更新为所述可视元素或所述潜在可视元素,则重建所述目标页面加载元素,以加载重建后的目标页面加载元素。通过实施上述方法,实现在页面加载过程中的内存释放,减少应用程序的内存占用值,提升应用程序的运行稳定性。
107.请参阅图7,图7是本技术实施例提供的一种终端的结构示意图。该终端包括:处理器701、存储器702以及网络接口703。上述处理器701、存储器702以及网络接口703之间可以交互数据。
108.上述处理器701可以是中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
109.上述存储器702可以包括只读存储器和随机存取存储器,并向处理器701提供程序指令和数据。存储器702的一部分还可以包括随机存取存储器。其中,所述处理器701调用所述程序指令时用于执行:
110.当接收到页面加载请求时,获取用于加载前端页面的多个页面加载元素;
111.在前端页面加载所述多个页面加载元素,以得到加载页面,并根据所述加载页面
确定各个页面加载元素的元素类型,所述元素类型包括:可视元素、潜在可视元素以及不可视元素中的任一种;
112.将元素类型为所述不可视元素对应的页面加载元素确定为目标页面加载元素,并根据所述目标页面加载元素进行内存释放;
113.当检测到针对所述加载页面的页面滑动操作时,若确定所述目标页面加载元素的元素类型更新为所述可视元素或所述潜在可视元素,则重建所述目标页面加载元素,以加载重建后的目标页面加载元素。
114.在一种实现方式中,所述处理器701,具体用于:
115.当接收到第一参考数据表时,将所述第一参考数据表作为基准数据表,所述第一参考数据表是接收到的第一个参考数据表;
116.当接收到第二参考数据表时,将所述第二数据表中的内容填充至所述基准数据表中,得到汇总数据表。
117.在一种实现方式中,所述处理器701,具体用于:
118.根据所述加载页面确定可视区域和潜在可视区域;
119.针对所述多个页面加载元素中的任一页面加载元素,若所述任一页面加载元素的元素位置位于所述可视区域,则将所述任一页面加载元素的元素类型确定为所述可见元素;
120.若所述任一页面加载元素的元素位置位于所述潜在可视区域,则将所述任一页面加载元素的元素类型确定为所述潜在可见元素;
121.若所述任一页面加载元素的元素位置不位于所述可视区域和所述潜在可视区域,则将所述任一页面加载元素的元素类型确定为所述不可见元素。
122.在一种实现方式中,所述处理器701,具体用于:
123.将所述加载页面所在区域确定为可视区域;
124.获取高度特征信息,并基于所述高度特征信息确定潜在可视高度;所述高度特征信息包括所述加载页面的页面高度、历史页面滑动偏移量、内存剩余量中的一种或多种;
125.根据所述潜在可视高度确定潜在可视区域。
126.在一种实现方式中,所述高度特征信息包括所述历史页面滑动偏移量;所述处理器701,具体用于:
127.获取用户的多个所述历史页面滑动偏移量;
128.对多个所述历史页面滑动偏移量进行均值运算,得到平均滑动偏移量,并将所述平均滑动偏移量作为潜在可视高度;
129.将所述加载页面底部往下方向的潜在可视高度的范围,以及将所述加载页面顶部往上方向的潜在可视高度的范围均确定为潜在可视区域。
130.在一种实现方式中,所述目标页面加载元素的数量为多个;所述处理器701,具体用于:
131.获取多个目标页面加载元素中各个目标页面加载元素的历史浏览次数;
132.依照历史浏览次数从小到大的顺序依次对所述各个目标页面加载元素进行升序排序,得到第一排序结果;
133.将所述第一排序结果中排在前n位的目标页面加载元素确定为释放元素,并释放
所述释放元素的内存存储,所述n为正整数。
134.在一种实现方式中,所述目标页面加载元素的数量为多个;所述处理器701,具体用于:
135.获取多个目标页面加载元素中各个目标页面加载元素的历史浏览次数,并获取所述各个目标页面加载元素的内存占用值;
136.依照历史浏览次数从大到小的顺序依次对所述各个目标页面加载元素进行降序排序,得到第二排序结果;
137.按照第二排序结果依次对各个目标页面加载元素的内存占用值进行求和处理,当求和结果满足预设内存占用规则时,结束求和处理;
138.将未进行求和处理的目标页面加载元素确定为释放元素,并释放所述释放元素的内存存储。
139.在一种实现方式中,所述目标页面加载元素的数量为多个,任一目标页面加载元素中包括多个页面加载子元素;所述处理器701,具体用于:
140.获取预设的页面加载子元素与重要程度值之间的映射关系;
141.针对多个目标页面加载元素中的任一目标页面加载元素,基于所述预设的页面加载子元素与重要程度值之间的映射关系,确定所述任一目标页面加载元素中各个页面加载子元素分别对应的重要程度值;
142.将重要程度值低于预设重要程度值的页面加载子元素确定为释放元素,并释放所述释放元素的内存存储。
143.具体实现中,本技术实施例中所描述的处理器701和存储器702可执行本技术实施例图2或图3提供的内存释放方法中所描述的实现方式,也可执行本技术实施例图6所描述的内存释放装置的实现方式,在此不再赘述。
144.本技术实施例中,处理器701可以当接收到页面加载请求时,获取用于加载前端页面的多个页面加载元素;在前端页面加载所述多个页面加载元素,以得到加载页面,并根据所述加载页面确定各个页面加载元素的元素类型,所述元素类型包括:可视元素、潜在可视元素以及不可视元素中的任一种;将元素类型为所述不可视元素对应的页面加载元素确定为目标页面加载元素,并根据所述目标页面加载元素进行内存释放;当检测到针对所述加载页面的页面滑动操作时,若确定所述目标页面加载元素的元素类型更新为所述可视元素或所述潜在可视元素,则重建所述目标页面加载元素,以加载重建后的目标页面加载元素。实现在页面加载过程中的内存释放,减少应用程序的内存占用值,提升应用程序的运行稳定性。
145.本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有程序指令,所述程序执行时可包括如图2或图3对应实施例中的内存释放方法的部分或全部步骤。
146.需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
147.本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-only memory,rom)、随机存取器(random access memory,ram)、磁盘或光盘等。
148.需要强调的是,为进一步保证上述数据的私密和安全性,上述数据还可以存储于一区块链的节点中。其中,本技术所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
149.以上对本技术实施例所提供的一种内存释放方法、装置、终端及存储介质进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。

技术特征:
1.一种内存释放方法,其特征在于,包括:当接收到页面加载请求时,获取用于加载前端页面的多个页面加载元素;在前端页面加载所述多个页面加载元素,以得到加载页面,并根据所述加载页面确定各个页面加载元素的元素类型,所述元素类型包括:可视元素、潜在可视元素以及不可视元素中的任一种;将元素类型为所述不可视元素对应的页面加载元素确定为目标页面加载元素,并根据所述目标页面加载元素进行内存释放;当检测到针对所述加载页面的页面滑动操作时,若确定所述目标页面加载元素的元素类型更新为所述可视元素或所述潜在可视元素,则重建所述目标页面加载元素,以加载重建后的目标页面加载元素。2.根据权利要求1所述的方法,其特征在于,所述根据所述加载页面确定各个页面加载元素的元素类型,包括:根据所述加载页面确定可视区域和潜在可视区域;针对所述多个页面加载元素中的任一页面加载元素,若所述任一页面加载元素的元素位置位于所述可视区域,则将所述任一页面加载元素的元素类型确定为所述可见元素;若所述任一页面加载元素的元素位置位于所述潜在可视区域,则将所述任一页面加载元素的元素类型确定为所述潜在可见元素;若所述任一页面加载元素的元素位置不位于所述可视区域和所述潜在可视区域,则将所述任一页面加载元素的元素类型确定为所述不可见元素。3.根据权利要求2所述的方法,其特征在于,所述根据所述加载页面确定可视区域和潜在可视区域,包括:将所述加载页面所在区域确定为可视区域;获取高度特征信息,并基于所述高度特征信息确定潜在可视高度;所述高度特征信息包括所述加载页面的页面高度、历史页面滑动偏移量、内存剩余量中的一种或多种;根据所述潜在可视高度确定潜在可视区域。4.根据权利要求3所述的方法,其特征在于,所述高度特征信息包括所述历史页面滑动偏移量;所述基于所述高度特征信息确定潜在可视高度,包括:获取用户的多个所述历史页面滑动偏移量;对多个所述历史页面滑动偏移量进行均值运算,得到平均滑动偏移量,并将所述平均滑动偏移量作为潜在可视高度;所述根据所述潜在可视高度确定潜在可视区域,包括:将所述加载页面底部往下方向的潜在可视高度的范围,以及将所述加载页面顶部往上方向的潜在可视高度的范围均确定为潜在可视区域。5.根据权利要求1所述的方法,其特征在于,所述目标页面加载元素的数量为多个;所述根据所述目标页面加载元素进行内存释放,包括:获取多个目标页面加载元素中各个目标页面加载元素的历史浏览次数;依照历史浏览次数从小到大的顺序依次对所述各个目标页面加载元素进行升序排序,得到第一排序结果;将所述第一排序结果中排在前n位的目标页面加载元素确定为释放元素,并释放所述
释放元素的内存存储,所述n为正整数。6.根据权利要求1所述的方法,其特征在于,所述目标页面加载元素的数量为多个;所述根据所述目标页面加载元素进行内存释放,包括:获取多个目标页面加载元素中各个目标页面加载元素的历史浏览次数,并获取所述各个目标页面加载元素的内存占用值;依照历史浏览次数从大到小的顺序依次对所述各个目标页面加载元素进行降序排序,得到第二排序结果;按照第二排序结果依次对各个目标页面加载元素的内存占用值进行求和处理,当求和结果满足预设内存占用规则时,结束求和处理;将未进行求和处理的目标页面加载元素确定为释放元素,并释放所述释放元素的内存存储。7.根据权利要求1所述的方法,其特征在于,所述目标页面加载元素的数量为多个,任一目标页面加载元素中包括多个页面加载子元素;所述根据所述目标页面加载元素进行内存释放,包括:获取预设的页面加载子元素与重要程度值之间的映射关系;针对多个目标页面加载元素中的任一目标页面加载元素,基于所述预设的页面加载子元素与重要程度值之间的映射关系,确定所述任一目标页面加载元素中各个页面加载子元素分别对应的重要程度值;将重要程度值低于预设重要程度值的页面加载子元素确定为释放元素,并释放所述释放元素的内存存储。8.一种内存释放装置,其特征在于,包括:获取单元,用于当接收到页面加载请求时,获取用于加载前端页面的多个页面加载元素;确定单元,用于在前端页面加载所述多个页面加载元素,以得到加载页面,并根据所述加载页面确定各个页面加载元素的元素类型,所述元素类型包括:可视元素、潜在可视元素以及不可视元素中的任一种;释放单元,用于将元素类型为所述不可视元素对应的页面加载元素确定为目标页面加载元素,并根据所述目标页面加载元素进行内存释放;重建单元,用于当检测到针对所述加载页面的页面滑动操作时,若确定所述目标页面加载元素的元素类型更新为所述可视元素或所述潜在可视元素,则重建所述目标页面加载元素,以加载重建后的目标页面加载元素。9.一种终端,其特征在于,包括处理器、存储器,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-7任一项所述的方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-7任一项所述的方法。

技术总结
本申请涉及数据处理领域,公开了一种内存释放方法、装置、终端及存储介质,包括:当接收到页面加载请求时,获取多个页面加载元素;在前端页面加载多个页面加载元素,得到加载页面,根据加载页面确定各个页面加载元素的元素类型;将元素类型为不可视元素对应的页面加载元素确定为目标页面加载元素,根据目标页面加载元素进行内存释放;当检测到针对加载页面的页面滑动操作时,若确定目标页面加载元素的元素类型更新为可视元素或潜在可视元素,则重建目标页面加载元素,加载重建后的目标页面加载元素。可以减少应用程序的内存占用值,提升应用程序的运行稳定性。本申请涉及区块链技术,如可将上述数据写入区块链中,以用于内存释放等场景。等场景。等场景。


技术研发人员:雷郴湘 彭志明
受保护的技术使用者:中国平安财产保险股份有限公司
技术研发日:2021.11.29
技术公布日:2022/3/8

最新回复(0)