CN114116231A - 一种数据加载方法、装置、计算机设备及存储介质 - Google Patents
一种数据加载方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN114116231A CN114116231A CN202111524292.5A CN202111524292A CN114116231A CN 114116231 A CN114116231 A CN 114116231A CN 202111524292 A CN202111524292 A CN 202111524292A CN 114116231 A CN114116231 A CN 114116231A
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- target
- storage amount
- loading
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
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)
Abstract
本申请适用于数据加载技术领域,提供一种数据加载方法、装置、计算机设备及存储介质,其中方法包括:获取目标数据由终端中磁盘加载至内存所需的第一目标存储量;获取内存的剩余计算存储量,在确定剩余计算存储量小于第一目标存储量时,计算内存的已用计算存储量与第一目标存储量之和同内存的实际可用总量的比值,得到计算结果;基于所述计算结果,在确定所述终端处于目标运转状态时,将所述目标数据加载至所述内存中。该方案能够降低电子设备发热现象的发生频率,提升电子设备使用寿命,提高用户使用体验。
Description
技术领域
本申请属于数据加载技术领域,尤其涉及一种数据加载方法、装置、计算机设备及存储介质。
背景技术
电子设备的硬件资源有限,如何平衡性能就显得非常重要。现有的电子设备中,均配置有磁盘、内存、CPU等硬件。在进行数据处理时,需要CPU基于数据处理指令,将目标数据从磁盘加载至内存中,基于内存中的缓存数据实现数据处理动作。
但在具体应用中,由于内存容量大小及内存实时可用大小的限制,如果动态计算出的内存剩余容量不足,则会放弃将磁盘中的目标数据向内存中缓存,由CPU实时从磁盘频繁读取目标数据将其缓存至内存中动态计算出的有限可用存储空间中,内存中缓存进入的数据则边处理边释放,以满足动态计算出的内存剩余容量不足情况下的数据处理需求。
但该种处理方式,会造成CPU使用率在短时间内急剧上升,而CPU使用率的上升会导致电子设备耗电量增加,使得电子设备发烫,一方面损害电子设备寿命,另一方面给用户带来不好的使用体验。
发明内容
本申请实施例提供了一种数据加载方法、装置、计算机设备及存储介质,以解决现有的数据加载方式会造成CPU使用率在短时间内急剧上升,一方面损害电子设备寿命,另一方面给用户带来不好的使用体验的问题。
本申请实施例的第一方面提供了一种数据加载方法,包括:
获取终端中将目标数据加载至内存所需的第一目标存储量;
获取所述内存的剩余计算存储量,在确定所述剩余计算存储量小于所述第一目标存储量时,计算所述内存的已用计算存储量与所述第一目标存储量之和同所述内存的实际可用总量的比值,得到计算结果;
其中,所述剩余计算存储量及所述已用计算存储量为基于所述内存的设定可用限额计算得到,所述设定可用限额小于所述实际可用总量;
基于所述计算结果,在确定所述终端处于目标运转状态时,将所述目标数据加载至所述内存中。
可选地,所述获取终端中将目标数据加载至内存所需的第一目标存储量之前,还包括:
获取当前需要加载至所述内存的第一待加载数据;
在所述第一待加载数据符合优先处理条件时,判断所述第一待加载数据具有内存超额支配权限,将所述第一待加载数据确定为所述目标数据;
其中,所述优先处理条件包括:所述第一待加载数据中包含多个子数据且所述子数据之间存在依序循环输出的数据关系、所述第一待加载数据为具有设定处理优先级的数据或所述第一待加载数据对应于具有设定优先权限的用户。
可选地,所述获取终端中将目标数据加载至内存所需的第一目标存储量之前,还包括:
确定当前需要加载至所述内存中的第二待加载数据;
在确定所述第二待加载数据不为所述目标数据时,获取所述第二待加载数据加载至所述内存所需的第二目标存储量;
获取所述内存的剩余计算存储量,在确定所述剩余计算存储量大于所述第二目标存储量时,拒绝将所述第二待加载数据加载至所述内存中,直至所述剩余计算存储量小于或等于所述第二目标存储量。
可选地,所述基于所述计算结果,在确定所述终端处于目标运转状态时,将所述目标数据加载至所述内存中,包括:
基于所述计算结果,判断所述比值与第一设定阈值之间的大小关系;
在判断所述比值小于或等于第一设定阈值时,确定所述终端处于所述目标运转状态,将所述目标数据加载至所述内存中。
可选地,所述基于所述计算结果,在确定所述终端处于目标运转状态时,将所述目标数据加载至所述内存中,包括:
基于所述计算结果,判断所述比值与第一设定阈值之间的大小关系;
在判断所述比值大于所述第一设定阈值时,若确定所述比值小于第二设定阈值,则检测所述终端的CPU使用率;
当所述CPU使用率低于第三设定阈值时,确定所述终端处于所述目标运转状态,将所述目标数据加载至所述内存中。
可选地,所述基于所述计算结果,在确定所述终端处于目标运转状态时,将所述目标数据加载至所述内存中之后,还包括:
响应于所述终端中目标应用对所述目标数据的调用请求,从所述内存中读取所述目标数据;
将读取到的所述目标数据输出至所述目标应用,并将所述目标数据从所述内存中删除。
可选地,所述目标数据中包含多个子数据且所述子数据之间存在依序循环输出的数据关系,所述将读取到的所述目标数据输出至所述目标应用,并将所述目标数据从所述内存中删除,包括:
依照所述数据关系,将各个所述子数据依序循环输出至所述目标应用,并在检测到所述目标应用对所述目标数据调用结束时,将所述目标数据从所述内存中删除。
本申请实施例的第二方面提供了一种数据加载装置,包括:
获取模块,用于获取终端中将目标数据加载至内存所需的第一目标存储量;
计算模块,用于获取所述内存的剩余计算存储量,在确定所述剩余计算存储量小于所述第一目标存储量时,计算所述内存的已用计算存储量与所述第一目标存储量之和同所述内存的实际可用总量的比值,得到计算结果;其中,所述剩余计算存储量及所述已用计算存储量为基于所述内存的设定可用限额计算得到,所述设定可用限额小于所述实际可用总量;
数据加载模块,用于基于所述计算结果,在确定所述终端处于目标运转状态时,将所述目标数据加载至所述内存中。
本申请实施例的第三方面提供了一种终端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述方法的步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述方法的步骤。
本申请的第五方面提供了一种计算机程序产品,当所述计算机程序产品在终端上运行时,使得所述终端执行上述第一方面所述方法的步骤。
由上可见,本申请实施例中,通过获取终端中将目标数据加载至内存所需的第一目标存储量,获取内存的剩余计算存储量,在确定剩余计算存储量小于第一目标存储量时,计算内存的已用计算存储量与第一目标存储量之和同内存的实际可用总量的比值,并最终在确定终端处于目标运转状态时,将目标数据加载至内存中,通过将目标数据所需的目标存储量与剩余计算存储量及内存的实际可用总量进行关系比较,以超出内存剩余计算存储量的缓存策略,使目标数据实现内存的超额使用以换取低CPU使用率,通过平衡内存和CPU的使用,降低电子设备发热现象的发生频率,提升电子设备使用寿命,提高用户使用体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据加载方法的流程图一;
图2是本申请实施例提供的一种数据加载方法的流程图二;
图3是本申请实施例提供的一种数据加载装置的结构图;
图4是本申请实施例提供的一种计算机设备的结构图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
具体实现中,本申请实施例中描述的终端包括但不限于诸如具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的移动电话、膝上型计算机或平板计算机之类的其它便携式设备。还应当理解的是,在某些实施例中,所述设备并非便携式通信设备,而是具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的台式计算机。
在接下来的讨论中,描述了包括显示器和触摸敏感表面的终端。然而,应当理解的是,终端可以包括诸如物理键盘、鼠标和/或控制杆的一个或多个其它物理用户接口设备。
终端支持各种应用程序,例如以下中的一个或多个:绘图应用程序、演示应用程序、文字处理应用程序、网站创建应用程序、盘刻录应用程序、电子表格应用程序、游戏应用程序、电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息收发应用程序、锻炼支持应用程序、照片管理应用程序、数码相机应用程序、数字摄影机应用程序、web浏览应用程序、数字音乐播放器应用程序和/或数字视频播放器应用程序。
可以在终端上执行的各种应用程序可以使用诸如触摸敏感表面的至少一个公共物理用户接口设备。可以在应用程序之间和/或相应应用程序内调整和/或改变触摸敏感表面的一个或多个功能以及终端上显示的相应信息。这样,终端的公共物理架构(例如,触摸敏感表面)可以支持具有对用户而言直观且透明的用户界面的各种应用程序。
应理解,本实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
参见图1,图1是本申请实施例提供的一种数据加载方法的流程图一。如图1所示,一种数据加载方法,该方法包括以下步骤:
步骤101,获取终端中将目标数据加载至内存所需的第一目标存储量。
其中,该目标数据为设定的目标数据。
具体在一个实施方式中,该目标数据为具有内存超额支配权限的数据,以在该内存超额支配权限下基于该目标数据执行本实施例中的数据加载方法。
一方面,该目标数据具体为对应于较高处理优先级的数据。该较高处理优先级具体表现为:
该目标数据自身具有设定处理优先级,该目标数据对应于具有设定优先级的处理任务,或者该目标数据对应于具有设定优先权限的用户。
在具体应用中,例如会将系统数据设定较高优先级,而应用程序加载数据设定较低优先级,对于较高优先级的数据则可以赋予其内存超额支配权限,对于较低优先级的数据则不赋予其内存超额支配权限。
而对于一些处理任务,例如为进程调度任务,则会设定其具有较高优先级,对于显示输出任务,则会设定其具有较低优先级,对于较高优先级的处理任务中涉及的数据则可以赋予其内存超额支配权限,对于较低优先级的处理任务中涉及的数据则不赋予其内存超额支配权限。
相应地,不同用户之间也具有不同的设定优先权限,例如管理员则具有较高优先权限,普通用户则具有较低优先权限,对于与较高优先权限的用户关联的数据则可以赋予其内存超额支配权限,对于与较低优先权限的用户关联的数据则不赋予其内存超额支配权限。
在这种情况下,需要将这些数据确定为目标数据,赋予其内存超额支配权限,执行后续过程中的数据加载策略,最大程度上确保系统的正常运转。
另一方面,该目标数据具体为需要短时间内向内存中进行重复数据加载的数据。具体表现为:
目标数据中包含多个子数据且子数据之间存在依序循环输出的数据关系。
该目标数据例如为,GIF动图、循环播放模式下的音乐、抖音平台的短视频等数据。
以GIF动图为例,其中GIF动图中包含若干个图像帧,该些图像帧在图像被查看状态下需要依序循环输出实现FIG图的动态播放效果。
对于具备依序循环输出特征的数据而言,当内存的计算可以空间显示不足时,需要从磁盘中不断地对图像帧进行循环式重复读取,循环式重复读取过程会占用更多的CPU资源,更进一步激化CPU使用率的短时间内急剧上升。在这种情况下,可以将这些需要依序循环输出的特征的数据确定为目标数据,赋予其内存超额支配权限,以执行后续过程中的数据加载策略,最大程度上避免CPU资源的短时间内过度占用。
在此基础上,在执行本步骤101获取终端中将目标数据加载至内存所需的第一目标存储量之前,需要对当前待加载数据进行权限判断,以确定其是否为目标数据,在确定其为目标数据之后,则执行本实施例中的数据加载方法。具体包括:
获取当前需要加载至内存的第一待加载数据;
在第一待加载数据符合优先处理条件时,判断第一待加载数据具有内存超额支配权限,将该第一待加载数据确定为目标数据。
其中,该优先处理条件包括:第一待加载数据中包含多个子数据且子数据之间存在依序循环输出的数据关系、该第一待加载数据为具有设定处理优先级的数据、该第一待加载数据对应于具有设定优先级的处理任务或第一待加载数据对应于具有设定优先权限的用户。
通过对待加载数据是否符合优先处理条件的判断,确定该数据是否赋予内存超额支配权限,以使后续基于内存超额支配的加载策略,实现数据加载中内存容量与CPU使用率之间的平衡。
本步骤中,为避免目标数据给内存造成的资源占用量过大,在确定出当前需要加载至内存的目标数据之后,需要确定将目标数据加载至内存中所需的目标存储量。
目标数据加载至内存中所需的目标存储量的计算,以图片为例,直接通过图片的分辨率结合单个像素所占控件大小,即可得到当前图片加载至内存中所需的存储量。而以GIF动图为例,对目标数据加载到内存所需的目标存储量的获取,可以是检测GIF动图中每一帧图片的分辨率和图像的总帧数,计算将其加载到内存所占的目标存储量,计算公式为:
GIF图加载到内存所需的目标存储量=每一帧图片的宽(px)×高(px)×4×帧数。
其中,4这个参数是因为每个像素有4个通道(RGBA),每个通道用一个字节表示。
其中,在另一种可选的实施方式中,在获取终端中将目标数据加载至内存所需的第一目标存储量之前,还包括:
确定当前需要加载至内存中的第二待加载数据;在确定第二待加载数据不为目标数据时,获取第二待加载数据加载至内存所需的第二目标存储量;获取内存的剩余计算存储量,在确定剩余计算存储量大于第二目标存储量时,拒绝将第二待加载数据加载至内存中,直至剩余计算存储量小于或等于第二目标存储量。
只有在待加载数据符合优先处理条件时,可以将其确定为目标数据,赋予其内存超额支配权限。而当待加载数据不符合优先处理条件时,可以确定当前待加载数据不为目标数据,则不赋予其内存超额支配权限,需要对其依照现有的数据加载方式进行加载。
即,在确定待加载数据不为目标数据时,不执行内存超额支配权限的处理操作,需要依照另一数据加载方式进行数据加载处理。
该另一数据加载方式在执行过程中,直接基于内存的剩余计算存储量与待加载数据所需的目标存储量作对比,如果剩余计算存储量小于待加载数据所需的目标存储量时,则拒绝将待加载数据加载到内部存储空间,使该待加载数据对应的数据加载任务仍处于任务队列中,直至检测到内存的剩余计算存储量小于或等于当前待加载数据所需的目标存储量时,继续执行该数据加载任务,将当前待加载数据加载至内存中,使内部存储空间得到正确合理使用。
步骤102,获取内存的剩余计算存储量,在确定剩余计算存储量小于第一目标存储量时,计算内存的已用计算存储量与第一目标存储量之和同内存的实际可用总量的比值,得到计算结果。
其中,该剩余计算存储量及已用计算存储量为基于内存的设定可用限额计算得到,该设定可用限额小于实际可用总量。
这里,内存中包括:剩余计算存储量、已用计算存储量、实际可用总量、设定可用限额。
在设计中,剩余计算存储量加上已用计算存储量等于设定可用限额。剩余计算存储量及已用计算存储量为在内存使用过程中实时计算得到。
但由于内存的实际使用情况存在计算偏差,目前多数剩余内存的计算都是基于操作系统提供的host_statistics。它统计的剩余内存统计信息来源多个地方,需要时间来收集,以及有些内存并未列入统计,一般情况下剩余内存的计算都偏小。这就导致,程序错误的估计了内存大小。
因此,计算出的剩余计算存储量及已用计算存储量可能为小于或等于设定可用限额。
且,实际应用中,为留出特定数据的内存使用空间,通常也会将内存的实际可用总量中划分出一部分留作专用,而另一部分则设定一个内存可用限额用作普通数据的正常缓存处理,因此实际上,内存的实际可用总量总是会有一部分处于未被占用状态,实际可用内存可能远大于将目标数据加载至内存中所需的目标存储量。
该过程中,设定可用限额设计为实际可用总量的一部分,实际可用总量的剩余部分需要预留出来以备其他需要。
因此,在本步骤中,当计算出内部存储空间当前的剩余计算存储量小于目标数据所需的目标存储量时,为了避免由于上述原因可能导致的需要频繁且循环式的从磁盘中读取数据问题的出现及避免重要程度较高的任务未能及时响应的问题出现,将内存的使用规则设计为可以超额支配,即允许超出设定可用限额使用。
但,在判断是否允许当前目标数据进行超额支配内存使用时,需要确定基于当前内存的剩余计算存储量对目标数据进行存储情况下,内存整体空间占用情况与实际可用总量的比例,基于该比例值确定是否允许目标数据加载至内存中,以避免内存崩溃等极端情况的出现,避免不良的用户体验。
步骤103,基于该计算结果,在确定终端处于目标运转状态时,将目标数据加载至内存中。
基于该计算结果中的比值,可以确定基于当前内存的剩余计算存储量对目标数据进行存储情况下,内存整体空间占用情况与实际可用总量的比例。进而基于该比例,判断终端当前允许情况是否允许超额支配将该目标数据加载至内部存储空间。
本实施例中的上述处理过程,以目标数据为GIF图为例,因为GIF图是以每秒几十帧的速度播放的,如果每一帧或者大多数帧都要去磁盘里读取图片的话,CPU使用率会有非常大的上升,电子设备发烫会导致用户主动结束掉运行中的程序或者卸载App。然而,尽量多的使用内存,后果却没那么严重。内存不足时,电子设备操作系统会先杀掉后台的App,腾出内存已供前台的App使用。如果内存还是不够用,才会强杀前台的App。所以只要我们不使用内存过高,导致系统强杀,内存使用高的后果还是可以接受的。
对于到底可以使用多少内存缓存GIF图片,我们可以把上限设置的高一些。放弃当前根据设定可用限额计算出的剩余计算存储量来决定缓存多少目标数据的策略。我们可以把内存上限固定为设备物理内存的一个安全的比例阈值,例如为20%。
如果一个手机的物理内存有3GB,按20%计算,那么最大能用来缓存GIF内存为600M,对于大多数的情况来说已经足够了。
则对应地,终端当前处于目标运转状态例如为,基于当前内存的剩余计算存储量对目标数据进行存储情况下,内存整体空间占用量未对终端其他正常运行所需空间造成过多挤压,处于可接受的范围内,则确定终端当前处于目标允许状态,或者,基于当前内存的剩余计算存储量对目标数据进行存储情况下,CPU的使用率的仍然处于可接受的水平范围内,则确定终端当前处于目标允许状态。
在这种情况下,如果终端当前处于目标运行状态,则将目标数据加载至内部存储空间,否则为了确保终端不出现负荷过载情况出现,则不将目标数据加载至内部存储空间中,将其暂存于磁盘中。
其中,具体地,作为一可选的实施方式,基于计算结果,在确定终端处于目标运转状态时,将目标数据加载至内存中,包括:
基于计算结果,判断比值与第一设定阈值之间的大小关系;在判断比值小于或等于第一设定阈值时,确定终端处于目标运转状态,将目标数据加载至内存中。
对应地,在判断比值大于第一设定阈值时,则确定终端不处于目标运转状态,拒绝将目标数据加载到内存中。
该过程,将内存使用占比阈作为参考因素引入进来,参照基于内存实际可用总量中的占比阈值,实现终端当前是否处于目标运行状态的判定处理,改变数据缓存策略,确保能够使用尽量多的内存,提升内存可用上限,合理利用终端资源配置,避免电子设备过烫等不良后果的出现。
作为另一可选的实施方式,该基于计算结果,在确定终端处于目标运转状态时,将目标数据加载至内存中,包括:
基于计算结果,判断比值与第一设定阈值之间的大小关系;
在判断比值大于第一设定阈值时,若确定比值小于第二设定阈值,则检测终端的CPU使用率;
当CPU使用率低于第三设定阈值时,确定终端处于目标运转状态,将目标数据加载至内存中。
对应地,当CPU使用率不低于第三设定阈值时,则确定确定终端不处于目标运转状态,拒绝将目标数据加载到内部存储空间。
该过程,将内存使用占比阈、CPU使用率作为参考因素引入进来,参照内存和CPU这两个有限资源的使用情况实现终端当前是否处于目标运行状态的判定处理,合理利用终端资源配置,避免电子设备过烫等不良后果的出现。
因此,上述各步骤,考虑到现有的基于内存的设定可用限额计算出的剩余存储量来决定缓存多少数据的策略不够合理,导致需要不断频繁读取磁盘中数据,造成CPU使用率短时间内急剧上升,带来电子设备发热等问题,通过改变缓存的策略,优先将目标数据缓存到内存里,换取低CPU使用率,解决了加载较大的目标数据可能产生的电子设备的发热问题,并且大部分情况下,并没有其他不良后果。即使内存使用逼近了极端情况,可以通过设置在这种情况下的暂停数据加载或杀死加载程序等措施,避免更加糟糕的情况的发生,确保电子设备的运转有序可控,并通过平衡内存和CPU的使用,降低电子设备发热现象的发生频率,提升电子设备使用寿命,保证了良好的用户体验,提高用户满意度。
本申请实施例中,通过获取终端中将目标数据加载至内存所需的第一目标存储量,获取内存的剩余计算存储量,在确定剩余计算存储量小于第一目标存储量时,计算内存的已用计算存储量与第一目标存储量之和同内存的实际可用总量的比值,并最终在确定终端处于目标运转状态时,将目标数据加载至内存中,通过将目标数据所需的目标存储量与剩余计算存储量及内存的实际可用总量进行关系比较,以超出内存剩余计算存储量的缓存策略,使目标数据实现内存的超额使用以换取低CPU使用率,通过平衡内存和CPU的使用,降低电子设备发热现象的发生频率,提升电子设备使用寿命,提高用户使用体验。
本申请实施例中还提供了数据加载方法的不同实施方式。
参见图2,图2是本申请实施例提供的一种数据加载方法的流程图二。如图2所示,一种数据加载方法,该方法包括以下步骤:
步骤201,获取终端中将目标数据加载至内存所需的第一目标存储量。
该步骤的实现过程与前述实施方式中的步骤101的实现过程相同,此处不再赘述。
步骤202,获取内存的剩余计算存储量,在确定剩余计算存储量小于第一目标存储量时,计算内存的已用计算存储量与第一目标存储量之和同内存的实际可用总量的比值,得到计算结果;
其中,剩余计算存储量及已用计算存储量为基于内存的设定可用限额计算得到,设定可用限额小于实际可用总量。
该步骤的实现过程与前述实施方式中的步骤102的实现过程相同,此处不再赘述。
步骤203,基于该计算结果,在确定终端处于目标运转状态时,将目标数据加载至内存中。
该步骤的实现过程与前述实施方式中的步骤103的实现过程相同,此处不再赘述。
步骤204,响应于终端中目标应用对目标数据的调用请求,从内存中读取目标数据。
步骤205,将读取到的目标数据输出至目标应用,并将目标数据从内存中删除。
该过程,采用在特定数据对象下的特定数据加载处理策略,同时不过度超载使用内部存储空间,确保内存使用的正常运转。
其中,在一个实施方式中,该目标数据中包含多个子数据且该些子数据之间存在依序循环输出的数据关系。
对应地,该将读取到的目标数据输出至目标应用,并将目标数据从内存中删除,包括:
依照数据关系,将各个子数据依序循环输出至目标应用,并在检测到目标应用对目标数据调用结束时,将目标数据从内存中删除。
目标数据中包含多个子数据且子数据之间为依序循环输出关系,例如为GIF图包含多个图像帧,图像帧之间需要依序循环输出以实现FIG图的动态播放效果。
当CPU基于目标应用的数据操作指令时,则CPU响应于该数据操作指令,将对应的目标数据从磁盘中加载至内存中,实现对目标数据的操作,该操作例如为将目标数据输出至目标应用进行内容显示等,而在目标数据中的各个子数据间具备依序循环输出关系时,则需要结合目标应用反馈的数据调用结束信息结束CPU将该数据向目标应用的持续输出,及时将目标数据从内存中删除,实现超额占用的内存空间的及时释放,确保内存使用的正常运转。
本申请实施例中,通过获取终端中将目标数据加载至内存所需的第一目标存储量,获取内存的剩余计算存储量,在确定剩余计算存储量小于第一目标存储量时,计算内存的已用计算存储量与第一目标存储量之和同内存的实际可用总量的比值,并最终在确定终端处于目标运转状态时,将目标数据加载至内存中,并在内存使用完毕时,对超额占用的内存空间及时释放,通过平衡内存与CPU的使用,降低电子设备发热现象的发生频率,提升电子设备使用寿命,提高用户使用体验。
参见图3,图3是本申请实施例提供的一种数据加载装置的结构图,为了便于说明,仅示出了与本申请实施例相关的部分。
所述数据加载装置300包括:
获取模块301,用于获取终端中将目标数据加载至内存所需的第一目标存储量;
计算模块302,用于获取所述内存的剩余计算存储量,在确定所述剩余计算存储量小于所述第一目标存储量时,计算所述内存的已用计算存储量与所述第一目标存储量之和同所述内存的实际可用总量的比值,得到计算结果;其中,所述剩余计算存储量及所述已用计算存储量为基于所述内存的设定可用限额计算得到,所述设定可用限额小于所述实际可用总量;
数据加载模块303,用于基于所述计算结果,在确定所述终端处于目标运转状态时,将所述目标数据加载至所述内存中。
其中,该装置还包括:
数据确定模块,用于:获取当前需要加载至所述内存的第一待加载数据;在所述第一待加载数据符合优先处理条件时,判断所述第一待加载数据具有内存超额支配权限,将所述第一待加载数据确定为所述目标数据;其中,所述优先处理条件包括:所述第一待加载数据中包含多个子数据且所述子数据之间存在依序循环输出的数据关系、所述第一待加载数据为具有设定处理优先级的数据或所述第一待加载数据对应于具有设定优先权限的用户。
该数据确定模块,还用于:
确定当前需要加载至所述内存中的第二待加载数据;
在确定所述第二待加载数据不为所述目标数据时,获取所述第二待加载数据加载至所述内存所需的第二目标存储量;
获取所述内存的剩余计算存储量,在确定所述剩余计算存储量大于所述第二目标存储量时,拒绝将所述第二待加载数据加载至所述内存中,直至所述剩余计算存储量小于或等于所述第二目标存储量。
其中,数据加载模块303,具体用于:
基于所述计算结果,判断所述比值与第一设定阈值之间的大小关系;
在判断所述比值小于或等于第一设定阈值时,确定所述终端处于所述目标运转状态,将所述目标数据加载至所述内存中。
其中,数据加载模块303,具体用于:
基于所述计算结果,判断所述比值与第一设定阈值之间的大小关系;
在判断所述比值大于所述第一设定阈值时,若确定所述比值小于第二设定阈值,则检测所述终端的CPU使用率;
当所述CPU使用率低于第三设定阈值时,确定所述终端处于所述目标运转状态,将所述目标数据加载至所述内存中。
该装置还包括:
删除模块,用于:
响应于所述终端中目标应用对所述目标数据的调用请求,从所述内存中读取所述目标数据;
将读取到的所述目标数据输出至所述目标应用,并将所述目标数据从所述内存中删除。
其中,所述目标数据中包含多个子数据且所述子数据之间存在依序循环输出的数据关系,所述删除模块,具体用于:
依照所述数据关系,将各个所述子数据依序循环输出至所述目标应用,并在检测到所述目标应用对所述目标数据调用结束时,将所述目标数据从所述内存中删除。
本申请实施例提供的数据加载装置能够实现上述数据加载方法的实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
图4是本申请实施例提供的一种计算机设备的结构图。如该图所示,该实施例的计算机设备4包括:至少一个处理器40(图4中仅示出一个)、存储器41以及存储在所述存储器41中并可在所述至少一个处理器40上运行的计算机程序42,所述处理器40执行所述计算机程序42时实现上述任意各个方法实施例中的步骤。
所述计算机设备4可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备4可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是计算机设备4的示例,并不构成对计算机设备4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机设备还可以包括输入输出设备、网络接入设备、总线等。
所述处理器40可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器41可以是所述计算机设备4的内部存储单元,例如计算机设备4的硬盘或内存。所述存储器41也可以是所述计算机设备4的外部存储设备,例如所述计算机设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括外部存储设备。所述存储器41用于存储所述计算机程序以及所述计算机设备所需的其他程序和数据。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序产品来实现,当计算机程序产品在终端上运行时,使得所述终端执行时实现可实现上述各个方法实施例中的步骤。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据加载方法,其特征在于,包括:
获取终端中将目标数据加载至内存所需的第一目标存储量;
获取所述内存的剩余计算存储量,在确定所述剩余计算存储量小于所述第一目标存储量时,计算所述内存的已用计算存储量与所述第一目标存储量之和同所述内存的实际可用总量的比值,得到计算结果;
其中,所述剩余计算存储量及所述已用计算存储量为基于所述内存的设定可用限额计算得到,所述设定可用限额小于所述实际可用总量;
基于所述计算结果,在确定所述终端处于目标运转状态时,将所述目标数据加载至所述内存中。
2.根据权利要求1所述的方法,其特征在于,所述获取终端中将目标数据加载至内存所需的第一目标存储量之前,还包括:
获取当前需要加载至所述内存的第一待加载数据;
在所述第一待加载数据符合优先处理条件时,判断所述第一待加载数据具有内存超额支配权限,将所述第一待加载数据确定为所述目标数据;
其中,所述优先处理条件包括:所述第一待加载数据中包含多个子数据且所述子数据之间存在依序循环输出的数据关系、所述第一待加载数据为具有设定处理优先级的数据、所述第一待加载数据对应于具有设定优先级的处理任务或所述第一待加载数据对应于具有设定优先权限的用户。
3.根据权利要求1所述的方法,其特征在于,所述获取终端中将目标数据加载至内存所需的第一目标存储量之前,还包括:
确定当前需要加载至所述内存中的第二待加载数据;
在确定所述第二待加载数据不为所述目标数据时,获取所述第二待加载数据加载至所述内存所需的第二目标存储量;
获取所述内存的剩余计算存储量,在确定所述剩余计算存储量大于所述第二目标存储量时,拒绝将所述第二待加载数据加载至所述内存中,直至所述剩余计算存储量小于或等于所述第二目标存储量。
4.根据权利要求1所述的方法,其特征在于,所述基于所述计算结果,在确定所述终端处于目标运转状态时,将所述目标数据加载至所述内存中,包括:
基于所述计算结果,判断所述比值与第一设定阈值之间的大小关系;
在判断所述比值小于或等于第一设定阈值时,确定所述终端处于所述目标运转状态,将所述目标数据加载至所述内存中。
5.根据权利要求1所述的方法,其特征在于,所述基于所述计算结果,在确定所述终端处于目标运转状态时,将所述目标数据加载至所述内存中,包括:
基于所述计算结果,判断所述比值与第一设定阈值之间的大小关系;
在判断所述比值大于所述第一设定阈值时,若确定所述比值小于第二设定阈值,则检测所述终端的CPU使用率;
当所述CPU使用率低于第三设定阈值时,确定所述终端处于所述目标运转状态,将所述目标数据加载至所述内存中。
6.根据权利要求1所述的方法,其特征在于,所述基于所述计算结果,在确定所述终端处于目标运转状态时,将所述目标数据加载至所述内存中之后,还包括:
响应于所述终端中目标应用对所述目标数据的调用请求,从所述内存中读取所述目标数据;
将读取到的所述目标数据输出至所述目标应用,并将所述目标数据从所述内存中删除。
7.根据权利要求6所述的方法,其特征在于,所述目标数据中包含多个子数据且所述子数据之间存在依序循环输出的数据关系,所述将读取到的所述目标数据输出至所述目标应用,并将所述目标数据从所述内存中删除,包括:
依照所述数据关系,将各个所述子数据依序循环输出至所述目标应用,并在检测到所述目标应用对所述目标数据调用结束时,将所述目标数据从所述内存中删除。
8.一种数据加载装置,其特征在于,包括:
获取模块,用于获取终端中将目标数据加载至内存所需的第一目标存储量;
计算模块,用于获取所述内存的剩余计算存储量,在确定所述剩余计算存储量小于所述第一目标存储量时,计算所述内存的已用计算存储量与所述第一目标存储量之和同所述内存的实际可用总量的比值,得到计算结果;其中,所述剩余计算存储量及所述已用计算存储量为基于所述内存的设定可用限额计算得到,所述设定可用限额小于所述实际可用总量;
数据加载模块,用于基于所述计算结果,在确定所述终端处于目标运转状态时,将所述目标数据加载至所述内存中。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111524292.5A CN114116231A (zh) | 2021-12-14 | 2021-12-14 | 一种数据加载方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111524292.5A CN114116231A (zh) | 2021-12-14 | 2021-12-14 | 一种数据加载方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114116231A true CN114116231A (zh) | 2022-03-01 |
Family
ID=80366077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111524292.5A Pending CN114116231A (zh) | 2021-12-14 | 2021-12-14 | 一种数据加载方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114116231A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114968572A (zh) * | 2022-05-23 | 2022-08-30 | 北京有竹居网络技术有限公司 | 图片加载时的占用内存确定方法及装置 |
CN116302572A (zh) * | 2023-05-19 | 2023-06-23 | 长通智能(深圳)有限公司 | 基于ai智能推荐的算力资源调度分配系统及方法 |
-
2021
- 2021-12-14 CN CN202111524292.5A patent/CN114116231A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114968572A (zh) * | 2022-05-23 | 2022-08-30 | 北京有竹居网络技术有限公司 | 图片加载时的占用内存确定方法及装置 |
CN116302572A (zh) * | 2023-05-19 | 2023-06-23 | 长通智能(深圳)有限公司 | 基于ai智能推荐的算力资源调度分配系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7127010B2 (ja) | リソースの割り当て方法、装置、電子設備、コンピュータ可読媒体およびコンピュータプログラム | |
US11301029B2 (en) | Method, apparatus, and system for allocating power to graphics processing unit | |
CN114116231A (zh) | 一种数据加载方法、装置、计算机设备及存储介质 | |
CN105205014A (zh) | 一种数据存储方法和装置 | |
US20100251254A1 (en) | Information processing apparatus, storage medium, and state output method | |
CN109388317B (zh) | 一种图片加载方法、终端设备及存储介质 | |
KR20060129873A (ko) | 휴대단말기의 메모리 정리 방법 | |
CN110895524B (zh) | redis满载时键的复合过期方法、装置、服务器及存储介质 | |
CN111538678A (zh) | 数据缓冲方法、设备及计算机可读存储介质 | |
WO2020220971A1 (zh) | 一种文件加载方法、装置、电子设备及存储介质 | |
CN111104219A (zh) | 虚拟核心与物理核心的绑定方法、装置、设备及存储介质 | |
CN111176836A (zh) | 一种云渲染资源调度方法及装置 | |
CN112600761A (zh) | 一种资源分配的方法、装置及存储介质 | |
CN117675566A (zh) | 一种资源配额的分配方法、装置、存储介质及电子设备 | |
CN110851327A (zh) | 硬件状态信息获取方法、装置、终端及可读存储介质 | |
CN110166696B (zh) | 拍摄方法、装置、终端设备以及计算机可读存储介质 | |
CN110795323A (zh) | 负载统计方法、装置、存储介质及电子设备 | |
CN117235393A (zh) | 自适应的页面加载方法及装置、设备及存储介质 | |
CN114816766B (zh) | 一种计算资源分配方法及其相关组件 | |
CN115576689A (zh) | 云渲染处理方法、设备和存储介质 | |
CN113568746B (zh) | 负载均衡方法、装置、电子设备及存储介质 | |
CN112799805B (zh) | 基于终端设备的调度方法、装置、存储介质及终端设备 | |
CN116955271A (zh) | 一种数据副本存储的方法、装置、电子设备及存储介质 | |
CN110187957B (zh) | 一种下载任务的排队方法、装置及电子设备 | |
CN115080657A (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 |