掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及金融科技领域或其他相关技术领域,具体而言,涉及一种图片的加载方法、装置、存储介质及电子设备。

背景技术

目前,软件系统通常通过图片和文字等方式为客户提供信息,通常通过单张图片或多张图片(轮播图)的形式对图片进行展示,在展示多张图片时,通常通过管理员用户在系统中对图片资源进行维护,然后再将图片资源展示给普通用户。由于相关技术中对信息的时效性和丰富性有了更高的要求,因此,管理员需要维护上传的图片资源越来越多,普通用户界面展示的轮播图也越来越复杂,在系统页面加载或查询图片时对系统性能的消耗也越来越大,容易出现轮播图图片加载异常的情况,导致图片信息获取率低,并且还会影响用户体验。

在相关技术中,为了避免轮播图加载异常的情况出现,通常采用约束管理员员上传图片的数量、大小,查询页面展示图片的大小、个数等等方式,但是该方式维护成本增加、客户体验差、易用性变差,页面加载时容易产生内存溢出情况,导致系统崩溃。

针对上述的问题,目前尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种图片的加载方法、装置、存储介质及电子设备,以至少解决相关技术中轮播图在加载时,发生内存溢出的概率高的技术问题。

根据本发明实施例的一个方面,提供了一种图片的加载方法,包括:响应目标对象的图片加载请求,获取可用内存信息和所述目标对象的打标信息,其中,所述可用内存信息至少包括:用于加载图片的可用最大内存的信息,所述打标信息至少包括:所述目标对象所能访问的m类图片的类别信息,m为正整数;基于所述打标信息,确定C张待加载图片的图片信息,其中,所述图片信息至少包括:每张所述待加载图片所占用的内存大小,C为正整数;基于所述图片信息和所述可用内存信息,对C张所述待加载图片进行分批加载。

进一步地,基于所述打标信息,确定C张待加载图片的图片信息,包括:获取图片资源库的图片分类信息;在所述图片资源库中,基于所述图片分类信息和所述打标信息,确定C张待加载图片的图片信息,其中,所述图片信息至少包括:每张所述待加载图片所占用的内存大小。

进一步地,所述图片分类信息至少包括:所述图片资源库中的n类图片的类别信息,n为大于m的正整数,所述图片信息还包括:每张所述待加载图片的进行加载的优先级信息,在所述图片资源库中,基于所述图片分类信息和所述打标信息,确定C张待加载图片的图片信息,包括:基于所述打标信息,按指定顺序遍历所述图片资源库中的n类图片,确定待加载的C张待加载图片,并获取每张所述待加载图片所占用的内存大小和每张所述待加载图片的优先级信息;基于每张所述待加载图片所占用内存的大小和每张所述待加载图片的优先级信息,确定C张待加载图片的图片信息。

进一步地,基于所述图片信息和所述可用内存信息,对C张所述待加载图片进行分批加载,包括:基于所述可用内存信息、每张所述待加载图片所占用的内存大小、每张所述待加载图片的优先级信息,确定每个图片加载批次的图片加载清单,其中,所述图片加载批次用于加载C张所述待加载图片中的T张所述待加载图片,T为小于或等于C的正整数;在每个图片加载批次的图片加载清单中的图片数量小于或等于C时,加载所述待加载图片;在每个图片加载批次的图片加载清单中的图片数量大于C时,停止加载所述待加载图片,并发出异常提示。

进一步地,基于所述可用内存信息、每张所述待加载图片所占用的内存大小、每张所述待加载图片的优先级信息,确定每个图片加载批次的图片加载清单,包括:第一操作,在当前图片加载批次中,确定当前时刻正在进行加载的目标图片的图片游标和所述目标图片所占用的内存大小,其中,所述目标图片为C张所述待加载图片的其中之一,所述图片游标用于标识所述当前时刻正在进行加载的所述待加载图片,每加载一张所述待加载图片将所述图片游标加1;第二操作,基于所述可用内存信息和所述目标图片所占用的内存大小,更新所述可用内存信息,并将所述目标图片加载至目标内存中;在更新后的所述可用内存信息中的可用内存大于预设内存阈值的情况下,基于未加载的所述待加载图片的优先级信息,加载下一张所述待加载图片,并将该待加载图片作为所述目标图片,多次执行第一操作和第二操作,直至所述可用内存不大于所述预设内存阈值,确定当前图片批次加载的图片加载清单。

进一步地,在确定当前图片批次加载的图片加载清单之后,包括:将所述目标内存中的图片在客户端进行展示;在所述图片游标小于C的情况下,进入下一图片加载批次,对未加载的所述待加载图片进行加载。

进一步地,获取可用内存信息,包括:获取总内存大小和当前时刻正在使用的已用内存大小;根据预设百分比、所述总内存大小和所述已用内存大小,确定所述可用内存信息,其中,所述预设百分比用于控制所述总内存允许使用的最大临界值。

进一步地,所述类别信息至少包括:用于标识每个图片类别的分类标识,在响应目标对象的图片加载请求,获取可用内存信息和所述目标对象的打标信息之前,还包括:获取预设分类规则;基于所述预设分类规则,对所述图片资源库中的所有图片进行分类,并设置每个图片类别的所述分类标识。

根据本发明实施例的另一方面,还提供了一种图片的加载装置,包括:获取单元,用于响应目标对象的图片加载请求,获取可用内存信息和所述目标对象的打标信息,其中,所述可用内存信息至少包括:用于加载图片的可用最大内存的信息,所述打标信息至少包括:所述目标对象所能访问的m类图片的类别信息,m为正整数;确定单元,用于基于所述打标信息,确定C张待加载图片的图片信息,其中,所述图片信息至少包括:每张所述待加载图片所占用的内存大小,C为正整数;加载单元,用于基于所述图片信息和所述可用内存信息,对C张所述待加载图片进行分批加载。

进一步地,确定单元包括:信息获取子单元,用于获取图片资源库的图片分类信息;第一确定子单元,用于在所述图片资源库中,基于所述图片分类信息和所述打标信息,确定C张待加载图片的图片信息,其中,所述图片信息至少包括:每张所述待加载图片所占用的内存大小。

进一步地,所述图片分类信息至少包括:所述图片资源库中的n类图片的类别信息,n为大于m的正整数,所述图片信息还包括:每张所述待加载图片的进行加载的优先级信息,确定子单元包括:处理模块,用于基于所述打标信息,按指定顺序遍历所述图片资源库中的n类图片,确定待加载的C张待加载图片,并获取每张所述待加载图片所占用的内存大小和每张所述待加载图片的优先级信息;第一确定模块,用于基于每张所述待加载图片所占用内存的大小和每张所述待加载图片的优先级信息,确定C张待加载图片的图片信息。

进一步地,加载单元包括:第二确定子单元,用于基于所述可用内存信息、每张所述待加载图片所占用的内存大小、每张所述待加载图片的优先级信息,确定每个图片加载批次的图片加载清单,其中,所述图片加载批次用于加载C张所述待加载图片中的T张所述待加载图片,T为小于或等于C的正整数;加载子单元,用于在每个图片加载批次的图片加载清单中的图片数量小于或等于C时,加载所述待加载图片;处理子单元,用于在每个图片加载批次的图片加载清单中的图片数量大于C时,停止加载所述待加载图片,并发出异常提示。

进一步地,第二确定子单元包括:第一操作模块,用于第一操作,在当前图片加载批次中,确定当前时刻正在进行加载的目标图片的图片游标和所述目标图片所占用的内存大小,其中,所述目标图片为C张所述待加载图片的其中之一,所述图片游标用于标识所述当前时刻正在进行加载的所述待加载图片,每加载一张所述待加载图片将所述图片游标加1;第二操作模块,用于第二操作,基于所述可用内存信息和所述目标图片所占用的内存大小,更新所述可用内存信息,并将所述目标图片加载至目标内存中;第二确定模块,用于在更新后的所述可用内存信息中的可用内存大于预设内存阈值的情况下,基于未加载的所述待加载图片的优先级信息,加载下一张所述待加载图片,并将该待加载图片作为所述目标图片,多次执行第一操作和第二操作,直至所述可用内存不大于所述预设内存阈值,确定当前图片批次加载的图片加载清单。

进一步地,第二确定子单元还包括:展示模块,用于在确定当前图片批次加载的图片加载清单之后,将所述目标内存中的图片在客户端进行展示;加载模块,用于在所述图片游标小于C的情况下,进入下一图片加载批次,对未加载的所述待加载图片进行加载。

进一步地,获取单元包括:内存获取子单元,用于获取总内存大小和当前时刻正在使用的已用内存大小;内存信息确定子单元,用于根据预设百分比、所述总内存大小和所述已用内存大小,确定所述可用内存信息,其中,所述预设百分比用于控制所述总内存允许使用的最大临界值。

进一步地,所述类别信息至少包括:用于标识每个图片类别的分类标识,在响应目标对象的图片加载请求,获取可用内存信息和所述目标对象的打标信息之前,还包括:获取预设分类规则;基于所述预设分类规则,对所述图片资源库中的所有图片进行分类,并设置每个图片类别的所述分类标识。

根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的图片的加载方法。

根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述任意一项的图片的加载方法。

在本发明中,响应目标对象的图片加载请求,获取可用内存信息和目标对象的打标信息,其中,可用内存信息至少包括:用于加载图片的可用最大内存的信息,打标信息至少包括:目标对象所能访问的m类图片的类别信息,m为正整数;基于打标信息,确定C张待加载图片的图片信息,其中,图片信息至少包括:每张待加载图片所占用的内存大小,C为正整数;基于图片信息和可用内存信息,对C张待加载图片进行分批加载。进而解决了相关技术中轮播图在加载时,发生内存溢出的概率高的技术问题。在本发明中,根据目标对象的打标信息,确定待加载图片,并根据可内存信息,对待加载图片分批次加载,避免了相关技术中针对每个用户都加载所有的图片,内存溢出发生概率高且影响用户体验的情况,从而实现了降低内存溢出发生率和提升用户满意度的技术效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种可选的图片的加载方法的流程图;

图2是根据本发明实施例的一种可选的图片的加载装置的示意图;

图3是根据本发明实施例的一种可选的图片、用户打标装置的结构框图;

图4是根据本发明实施例的一种可选的图片加载初始化装置的结构框图;

图5是根据本发明实施例的一种可选的图片加载动态调整装置的结构框图;

图6是根据本发明实施例的一种可选的基于可用内存动态调整轮播图片导出处理流程图;

图7是根据本发明实施例的一种可选的动态调整图片装置的处理流程图;

图8是根据本发明实施例的另一种可选的图片的加载装置的示意图;

图9是根据本发明实施例的一种电子设备的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,本公开中的图片的加载方法及其装置可用于金融科技领域在对轮播图进行加载的情况下,也可用于除金融科技领域之外的任意领域在对轮播图进行加载,本公开中对图片的加载方法及其装置的应用领域不做限定。

需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。

实施例一

根据本发明实施例,提供了一种可选的图片的加载方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的一种可选的图片的加载方法的流程图,如图1所示,该方法包括如下步骤:

步骤S101,响应目标对象的图片加载请求,获取可用内存信息和目标对象的打标信息,其中,可用内存信息至少包括:用于加载图片的可用最大内存的信息,打标信息至少包括:目标对象所能访问的m类图片的类别信息,m为正整数。

上述的目标对象的打标信息可以用于标识目标对象所能(或所允许)访问的图片的类别,上述的可用内存可以为用于加载图片时可用的最大内存的信息,其中,目标对象可以包括:客户端的用户。

在本实施例中,读取当前登录用户的个性打标信息[T1,Tm],上传至后端服务器,设置默认加载轮播图的类别以及优先级顺序。内存临界控制初始单元22,设置图片导出过程中,允许内存使用的最大临界百分比FM(如80%)。

步骤S102,基于打标信息,确定C张待加载图片的图片信息,其中,图片信息至少包括:每张待加载图片所占用的内存大小,C为正整数。

在本实施例中,可以将打标信息传输至后端服务器,基于目标对象的打标信息从后端服务器中的n个类别的图片中,确定待加载的C张待加载图片并获取C张待加载图片的图片信息,该图片信息可以包括:每张待加载图片所占用的内存大小以及每张待加载图片的加载优先级,其中,m小于或等于n,其中表示后台服务器中的所有图片的总图片类别,也即是打标信息中涉及的图片的类别为后台服务器中的所有图片的图片类别的子集。

读取当前用户的打标信息为[T1,Tm],获取全量图片资源分类信息[T1,Tn]。

步骤S103,基于图片信息和可用内存信息,对C张待加载图片进行分批加载。

为了避免相关技术中在进行图片加载时容易发送内存溢出等情况,可以基于可用内存信息和图片信息,对C张待加载图片进行分批加载,在分批加载待加载的C张待加载图片时,可以依据根据可用内存的情况,将C张待加载图片分为多个图片加载批次进行加载,每个图片加载批次加载的图片的总内存大小小于或等于允许加载图片的最大可用内存的临界值。

通过上述步骤,在本实施例中,根据目标对象的打标信息,确定待加载图片,并根据可内存信息,对待加载图片分批次加载,避免了相关技术中针对每个用户都加载所有的图片,内存溢出发生概率高且影响用户体验的情况,从而实现了降低内存溢出发生率和提升用户满意度的技术效果。进而解决了相关技术中轮播图在加载时,发生内存溢出的概率高的技术问题。

可选地,基于打标信息,确定C张待加载图片的图片信息,包括:获取图片资源库的图片分类信息;在图片资源库中,基于图片分类信息和打标信息,确定C张待加载图片的图片信息,其中,图片信息至少包括:每张待加载图片所占用的内存大小。

为了避免在向用户展示图片过程中,加载大量用户不感兴趣的图片,影响用户体验感,且容易发生内存溢出等情况,在本实施例中,可以基于目标对象的打标信息,在图片资源库中遍历打标信息中涉及的图片类别的所有图片,确定图片资源库中涉及打标信息的C张待加载图片,为了便于根据图片的占用内存和图片加载的优先级顺序加载待加载图片,还可以获取C张待加载图片的图片信息,达到了根据用户情况个性化获取待加载图片的图片信息的目的。

可选地,图片分类信息至少包括:图片资源库中的n类图片的类别信息,n为大于m的正整数,图片信息还包括:每张待加载图片的进行加载的优先级信息,在图片资源库中,基于图片分类信息和打标信息,确定C张待加载图片的图片信息,包括:基于打标信息,按指定顺序遍历图片资源库中的n类图片,确定待加载的C张待加载图片,并获取每张待加载图片所占用的内存大小和每张待加载图片的优先级信息;基于每张待加载图片所占用内存的大小和每张待加载图片的优先级信息,确定C张待加载图片的图片信息。

在本实施例中,可以根据目标对象的打标信息[T1,Tm],按顺序遍历总类别为[T1,Tn]的图片资源库,获取图片资源库中[T1,Tm]类的图片,得到符合条件的待加载图片的图片总数C,以及对应符合条件的每张图片的所占内存大小信息,根据待加载图片所属的分类信息,可以确定该待加载图片的优先级信息,例如:可以根据待加载图片的类别标识,确定该待加载图片的优先级信息,达到了根据不同用户的打标信息获取对应的待加载图片的目的,避免了加载图片资源库中的所有的图片,内存占用率高且影响用户体验的情况。

可选地,基于图片信息和可用内存信息,对C张待加载图片进行分批加载,包括:基于可用内存信息、每张待加载图片所占用的内存大小、每张待加载图片的优先级信息,确定每个图片加载批次的图片加载清单,其中,图片加载批次用于加载C张待加载图片中的T张待加载图片,T为小于或等于C的正整数;在每个图片加载批次的图片加载清单中的图片数量小于或等于C时,加载待加载图片;在每个图片加载批次的图片加载清单中的图片数量大于C时,停止加载待加载图片,并发出异常提示。

在本实施例中,可以基于C张待加载图片的图片信息中每张待加载图片所占内存大小信息,当前时刻的可用内存信息,从后端服务器实实际导出的图片的总数量N,确定分批加载过程中当图片加载批次的实际清单[P1,Pn](对应于图片加载清单),并且返回。将得到的实际导出文件总个数大小N与待导出图片的总数C相比,若N

可选地,基于可用内存信息、每张待加载图片所占用的内存大小、每张待加载图片的优先级信息,确定每个图片加载批次的图片加载清单,包括:第一操作,在当前图片加载批次中,确定当前时刻正在进行加载的目标图片的图片游标和目标图片所占用的内存大小,其中,目标图片为C张待加载图片的其中之一,图片游标用于标识当前时刻正在进行加载的待加载图片,每加载一张待加载图片将图片游标加1;第二操作,基于可用内存信息和目标图片所占用的内存大小,更新可用内存信息,并将目标图片加载至目标内存中;在更新后的可用内存信息中的可用内存大于预设内存阈值的情况下,基于未加载的待加载图片的优先级信息,加载下一张待加载图片,并将该待加载图片作为目标图片,多次执行第一操作和第二操作,直至可用内存不大于预设内存阈值,确定当前图片批次加载的图片加载清单。

在本实施例中,可以获取当前内存大小MA,以及目前系统正在使用的内存大小M2。然后获取当前用户打标信息[T1,Tm],按顺序遍历总类别为[T1,Tn]的图片资源库,获取符合条件的图片总数C,以及符合条件图片的所占用内存的内存信息。根据内存使用最大临界控制百分比FM(如80%),确定当前可用最大内存M4=FM*MA-M2。当前取图片游标为S(初始值为1),表示当前已取到第S张图片(对应于当前时刻正在进行加载的目标图片),并获取第S张图片占用内存大小为Mn。计算剩余内存(更新后的可用内存):M4=M4-Mn。获取图片S的文件流,暂存到JVM内存(虚拟机内存)中。如果剩余内存M4(更新后的可用内存信息中的可用内存)大于预设内存阈值(例如:0),则读取下一张待加载图片,直到M4<0,确定当前图片加载批次的图片加载清单,并导出当前图片加载批次的图片给前端。

可选地,在确定当前图片批次加载的图片加载清单之后,包括:将目标内存中的图片在客户端进行展示;在图片游标小于C的情况下,进入下一图片加载批次,对未加载的待加载图片进行加载。

在本实施例中,如果当前图片加载批次的待加载图片加载完成后,如果图片游标为N

可选地,获取可用内存信息,包括:获取总内存大小和当前时刻正在使用的已用内存大小;根据预设百分比、总内存大小和已用内存大小,确定可用内存信息,其中,预设百分比用于控制总内存允许使用的最大临界值。

在本实施例中,可以获取当前内存大小MA(对应于总内存大小),以及目前系统正在使用的内存大小M2(对应于当前时刻正在使用的已用内存大小)。根据内存使用最大临界控制百分比FM(对应于预设百分比),获取当前可用最大内存(即可用内存信息中的可用最大内存)M4=FM*MA-M2,在一种可选的方式中,最大临界控制百分比FM可以为80%,避免了内存溢出的情况。

可选地,类别信息至少包括:用于标识每个图片类别的分类标识,在响应目标对象的图片加载请求,获取可用内存信息和目标对象的打标信息之前,还包括:获取预设分类规则;基于预设分类规则,对图片资源库中的所有图片进行分类,并设置每个图片类别的分类标识。

在本实施例中,可将管理员上传到后端服务器的图片资源库中的图片资源按照预设规则进行打标分类为[T1,Tn](表示有n个类别),每个类别下可以包括多张图片,还可以记录上传的图片资源大小Mn并进行持久化存储,还可以将目标对象打标分类为[T1,Tm],[T1,Tm]为[T1,Tn]的子集,T1可以表示集合中顺序为第一位的数据,集合中类别优先级可以从高到低排列,高优先级类别的图片可以先进行加载,需要说明是本实施例中的图片的类别可以基于图片的来源、图片所展示的内容、图片的应用场景等进行设定,在此不做具体限定,便于后续根据目标对象的打标信息个性化加载图片。

通过本实施例中,可以在前端服务器发送轮播图获取请求(对应于图片加载请求)后,后端服务器处理时根据内存情况对图片资源展示个数、展示内容进行限制,多批次返回给前端,并结合个性化定制方式,将计算后更适合目标对象(如普通用户)的轮播图信息通过接口分批返回给前端页面进行展示。每次图片数据的计算通过采集系统的可用内存,基于可用内存进行动态调整每批次返回个性化定制图片的个数以及总的图片内容以及总的查询批次控制,并且通过给普通用户打标,以及将图片资源进行分类,能最大化利用系统资源,不仅能在有效规避后端系统内存溢出的同时解决前端浏览器渲染大图片有时延的问题,同时通过个性化图片的推荐,可以在系统图片资源较多情况下,提升用户体验以及用户有效信息的获取率。

实施例二

图2是根据本发明实施例的一种可选的图片的加载装置的示意图,如图2所示该加载装置包括:【图片、用户打标装置21】、【图片加载初始化装置22】和【图片加载动态调整装置23】。

图片、用户打标装置21,用于针对目标对象(例如:普通用户)和图片进行打标,即设置目标对象的打标信息,和对资源库中的图片进行分类,方便对用户进行个性化推荐图片。

图片加载初始化装置22,用于设置并读取图片加载的相关初始参数。

图片加载动态调整装置23,用于根据当前后端服务器内存使用情况,并结合图片加载内存占用情况以及图片个性化打标的情况,对待加载图片进行计算并调整每批次(即每个图片加载批次)返回给前端轮播图的图片个数和图片信息,将适合当前目标对象的总图片信息分批次返回。

图3是根据本发明实施例的一种可选的图片、用户打标装置的结构框图,如图3所示,本实施例的图片、用户打标装置21包括:图片分类打标单元31和图片基础信息存储单元32、用户个性打标单元33。图片分类打标单元31可将管理员上传的图片资源按照规则进行打标分类为[T1,Tn](表示有n个类别),每个类别下有多张图片,图片基础信息存储单元32记录当前上传的图片资源大小Mn并进行持久化存储,用户个性打标单元33可由管理员将目标用户打标分类为[T1,Tm],[T1,Tm]应该为[T1,Tn]的子集,此处T1仅表示集合中顺序为第一位的数据,类别优先级从高到低排列。

图4是根据本发明实施例的一种可选的图片加载初始化装置的结构框图,如图4所示,本实施例的图片加载初始化装置22包括:图片类别初始化单元41和内存临界控制初始单元42。图片类别初始化单元41,可以用于读取当前登录用户(对应于目标对象)的个性打标信息[T1,Tm](对应于打标信息),上传至后端服务器,还可以设置默认加载轮播图的类别以及优先级顺序。内存临界控制初始单元42,可以用于设置待加载图片导出过程中,允许内存使用的最大临界百分比FM(对应于预设百分比),FM可以为80%。

图5是根据本发明实施例的一种可选的图片加载动态调整装置的结构框图,如图5所示,图片加载动态调整装置23包括:内存大小获取单元51、图片内存计算单元52、导出内存占用计算单元53和图片导出调整单元54。

内存大小获取单元51,可以用于获取目前系统的总内存大小,同时获取当前内存已经被占用的情况,即已占用内存的大小。

图片内存计算单元52,可以根据当前用户打标信息[T1,Tm],按顺序遍历总类别为[T1,Tn]的图片资源库,获取符合条件的图片总数C,以及对应符合条件的每张图片的所占内存大小信息。

导出内存占用计算单元53,可以根据内存大小获取单元51获取当前可用内存大小,遍历图片内存计算单元52计算得出的符合用户打标信息情况的图片总数。

导出内存占用计算单元54,可以获取当前加载图片的内存大小,每批次导出内容控制在可用内存范围内,然后分批次导出全量的图片。

图6是根据本发明实施例的一种可选的基于可用内存动态调整轮播图片导出处理流程图,如图6所示包括:

步骤601:获取当前内存使用信息,设置内存使用的最大临界百分比FM。用户点击轮播图加载,设置内存使用的最大临界百分比FM,计算当前已用内存M2。

步骤602:读取当前用户的打标信息[T1,Tm],获取全量图片资源分类信息[T1,Tn]。

步骤603:调用动态调整图片装置获取符合个性化的图片总清单(本次加载图片的实际清单[P1,Pn]),获取相匹配的C张图片信息,以及每张图片所占内存大小信息,根据目前可用内存信息,分批加载图片的实际清单[P1,Pn],获取实际的文件流D,并且返回。

步骤604:加载图片计算检查。图片校验单元31将得到的实际导出文件总个数大小N与符合个性化定制条件的图片总数C相比,若N

步骤605:进行图片数据加载。将获取的实际图片文件流数据D写入到文件中,返回给请求方(例如:客户端),导出处理完成。

图7是根据本发明实施例的一种可选的动态调整图片装置的处理流程图,如图7所示包括:

步骤701:获取当前内存大小MA,以及目前系统正在使用的内存大小M2。

步骤702:获取当前用户的打标信息[T1,Tm],按顺序遍历总类别为[T1,Tn]的图片资源库,获取符合条件的图片总数C,以及符合条件图片的内存信息。

步骤703:根据内存使用最大临界控制百分比FM(例如:80%),获取当前可用最大内存M4=FM*MA-M2。

步骤704:当前取图片游标为S(初始值为1),表示当前已取到第S张图片,并获取第N张图片的大小为Mn。

步骤705:计算剩余内存:M4=M4-Mn。

步骤706:获取图片N的文件流,暂存到JVM内存中。

步骤707:如果剩余内存M4大于0,则读取下一张图片,直到M4<0,导出当前图片加载批次的图片给前端。

步骤708:判断图片游标S是否小于C,如果图片游标为S

通过本实施例中,可以在前端服务器发送轮播图获取请求(对应于图片加载请求)后,后端服务器处理时根据内存情况对图片资源展示个数、展示内容进行限制,多批次返回给前端,并结合个性化定制方式,将计算后更适合目标对象(如普通用户)的轮播图信息通过接口分批返回给前端页面进行展示。每次图片数据的计算通过采集系统的可用内存,基于可用内存进行动态调整每批次返回个性化定制图片的个数以及总的图片内容以及总的查询批次控制,并且通过给普通用户打标,以及将图片资源进行分类,能最大化利用系统资源,不仅能有效规避后端系统内存溢出,同时解决前端浏览器渲染大图片有时延的问题,同时通过个性化图片的推荐,可以在系统图片资源较多情况下,提升用户体验以及用户有效信息的获取率。

实施例三

本申请实施例三提供了另一种可选的图片的加载装置,该加载装置中的各个实施单元对应于实施例一中的各个实施步骤。

图8是根据本发明实施例的另一种可选的图片的加载装置的示意图,如图8所示,该加载装置包括:获取单元81、确定单元82以及加载单元83。

获取单元81,用于响应目标对象的图片加载请求,获取可用内存信息和目标对象的打标信息,其中,可用内存信息至少包括:用于加载图片的可用最大内存的信息,打标信息至少包括:目标对象所能访问的m类图片的类别信息,m为正整数;

确定单元82,用于基于打标信息,确定C张待加载图片的图片信息,其中,图片信息至少包括:每张待加载图片所占用的内存大小,C为正整数;

加载单元83,用于基于图片信息和可用内存信息,对C张待加载图片进行分批加载。

在本申请实施例三提供的图片的加载装置中,可以通过获取单元81响应目标对象的图片加载请求,获取可用内存信息和目标对象的打标信息,其中,可用内存信息至少包括:用于加载图片的可用最大内存的信息,打标信息至少包括:目标对象所能访问的m类图片的类别信息,m为正整数,通过确定单元82基于打标信息,确定C张待加载图片的图片信息,其中,图片信息至少包括:每张待加载图片所占用的内存大小,C为正整数,通过加载单元83基于图片信息和可用内存信息,对C张待加载图片进行分批加载,进而解决了相关技术中轮播图在加载时,发生内存溢出的概率高的技术问题。在本实施例中,根据目标对象的打标信息,确定待加载图片,并根据可内存信息,对待加载图片分批次加载,避免了相关技术中针对每个用户都加载所有的图片,内存溢出发生概率高且影响用户体验的情况,从而实现了降低内存溢出发生率和提升用户满意度的技术效果。

可选地,在本申请实施例三提供的图片的加载装置中,确定单元包括:信息获取子单元,用于获取图片资源库的图片分类信息;第一确定子单元,用于在图片资源库中,基于图片分类信息和打标信息,确定C张待加载图片的图片信息,其中,图片信息至少包括:每张待加载图片所占用的内存大小。

可选地,在本申请实施例三提供的图片的加载装置中,图片分类信息至少包括:图片资源库中的n类图片的类别信息,n为大于m的正整数,图片信息还包括:每张待加载图片的进行加载的优先级信息,确定子单元包括:处理模块,用于基于打标信息,按指定顺序遍历图片资源库中的n类图片,确定待加载的C张待加载图片,并获取每张待加载图片所占用的内存大小和每张待加载图片的优先级信息;第一确定模块,用于基于每张待加载图片所占用内存的大小和每张待加载图片的优先级信息,确定C张待加载图片的图片信息。

可选地,在本申请实施例三提供的图片的加载装置中,加载单元包括:第二确定子单元,用于基于可用内存信息、每张待加载图片所占用的内存大小、每张待加载图片的优先级信息,确定每个图片加载批次的图片加载清单,其中,图片加载批次用于加载C张待加载图片中的T张待加载图片,T为小于或等于C的正整数;加载子单元,用于在每个图片加载批次的图片加载清单中的图片数量小于或等于C时,加载待加载图片;处理子单元,用于在每个图片加载批次的图片加载清单中的图片数量大于C时,停止加载待加载图片,并发出异常提示。

可选地,在本申请实施例三提供的图片的加载装置中,第二确定子单元包括:第一操作模块,用于第一操作,在当前图片加载批次中,确定当前时刻正在进行加载的目标图片的图片游标和目标图片所占用的内存大小,其中,目标图片为C张待加载图片的其中之一,图片游标用于标识当前时刻正在进行加载的待加载图片,每加载一张待加载图片将图片游标加1;第二操作模块,用于第二操作,基于可用内存信息和目标图片所占用的内存大小,更新可用内存信息,并将目标图片加载至目标内存中;第二确定模块,用于在更新后的可用内存信息中的可用内存大于预设内存阈值的情况下,基于未加载的待加载图片的优先级信息,加载下一张待加载图片,并将该待加载图片作为目标图片,多次执行第一操作和第二操作,直至可用内存不大于预设内存阈值,确定当前图片批次加载的图片加载清单。

可选地,在本申请实施例三提供的图片的加载装置中,第二确定子单元还包括:展示模块,用于在确定当前图片批次加载的图片加载清单之后,将目标内存中的图片在客户端进行展示;加载模块,用于在图片游标小于C的情况下,进入下一图片加载批次,对未加载的待加载图片进行加载。

可选地,在本申请实施例三提供的图片的加载装置中,获取单元包括:内存获取子单元,用于获取总内存大小和当前时刻正在使用的已用内存大小;内存信息确定子单元,用于根据预设百分比、总内存大小和已用内存大小,确定可用内存信息,其中,预设百分比用于控制总内存允许使用的最大临界值。

可选地,在本申请实施例三提供的图片的加载装置中,类别信息至少包括:用于标识每个图片类别的分类标识,在响应目标对象的图片加载请求,获取可用内存信息和目标对象的打标信息之前,还包括:获取预设分类规则;基于预设分类规则,对图片资源库中的所有图片进行分类,并设置每个图片类别的分类标识。

上述的图片的加载装置还可以包括处理器和存储器,上述的获取单元81、确定单元82以及加载单元83等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来根据目标对象的打标信息,确定待加载图片,并根据可内存信息,对待加载图片分批次加载,避免了相关技术中针对每个用户都加载所有的图片,内存溢出发生概率高且影响用户体验的情况,从而实现了降低内存溢出发生率和提升用户满意度的技术效果。

上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。

根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的图片的加载方法。

根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述任意一项的图片的加载方法。

图9是根据本发明实施例的一种电子设备的示意图,如图9所示,本发明实施例提供了一种电子设备90,电子设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现上述任意一项的图片的加载方法。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

技术分类

06120116570889