CN115328656A - 动态内存智能化扩展方法、装置、设备及存储介质 - Google Patents

动态内存智能化扩展方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN115328656A
CN115328656A CN202210982019.5A CN202210982019A CN115328656A CN 115328656 A CN115328656 A CN 115328656A CN 202210982019 A CN202210982019 A CN 202210982019A CN 115328656 A CN115328656 A CN 115328656A
Authority
CN
China
Prior art keywords
preset
memory area
memory
dynamic memory
data
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
Application number
CN202210982019.5A
Other languages
English (en)
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.)
Shenzhen Oribo Technology Co Ltd
Original Assignee
Shenzhen Oribo 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 Shenzhen Oribo Technology Co Ltd filed Critical Shenzhen Oribo Technology Co Ltd
Priority to CN202210982019.5A priority Critical patent/CN115328656A/zh
Publication of CN115328656A publication Critical patent/CN115328656A/zh
Pending legal-status Critical Current

Links

Images

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请涉及内存管理,提供一种动态内存智能化扩展方法、装置、设备及存储介质。该方法识别电子设备的主存及闪存,主存中包括动态内存区;当检测到动态内存区的空闲容量小于预设阈值时,将动态内存区中的第一存储数据压缩至主存中的预设压缩内存区。本申请能够在有限的硬件资源下,有效解决动态内存资源的紧张和不足的技术问题。

Description

动态内存智能化扩展方法、装置、设备及存储介质
技术领域
本发明涉及内存管理技术领域,尤其涉及一种动态内存智能化扩展方法、装置、设备及存储介质。
背景技术
随着互联网的发展,为提供不同的业务功能,在电子设备上运行的服务随之增多,动态内存需求也越来越大。为了尽可能的低成本满足业务功能,如何在有限的硬件资源的前提下,有效解决动态内存资源的紧张和不足,如何降低设备成本,成了亟需解决的技术问题。
发明内容
鉴于以上内容,有必要提供一种动态内存智能化扩展方法、装置、设备及存储介质,能够在有限的硬件资源的前提下,如何有效解决动态内存资源的紧张和不足的技术问题。
一方面,本发明提出一种动态内存智能化扩展方法,应用于电子设备,动态内存智能化扩展方法包括:
识别电子设备的主存及闪存,主存中包括动态内存区;
当检测到动态内存区的空闲容量小于预设阈值时,将动态内存区中的第一存储数据压缩至主存中的预设压缩内存区。
根据本发明优选实施例,所述方法还包括:
依预设时间周期定期获取动态内存区的空闲字节;
计算空闲字节处于空闲状态的持续时长;
识别动态内存区中的新增缓存数据的最小长度;
若持续时长大于预设时长及空闲字节的字节长度小于最小长度,将空闲字节确定为内存碎片;
调用预设接口执行对内存碎片的回收。
根据本发明优选实施例,所述方法还包括:
获取动态内存区的容量下限值;
计算容量下限值与预设比例的乘积,得到容量上限值;
根据容量下限值及容量上限值生成预设区间;
依据预设区间定期执行对预设阈值的调整。
根据本发明优选实施例,将动态内存区中的第一存储数据压缩至主存中的预设压缩内存区,具体包括:
基于预设映射表,确定预设压缩内存区的占用容量;
基于占用容量从动态内存区中提取第一存储数据;
对第一存储数据进行压缩处理,得到压缩数据;
将压缩数据转存至预设压缩内存区。
根据本发明优选实施例,所述方法还包括:将动态内存区中的第二存储数据传输至闪存中的预设交换内存区,包括:
统计第二存储数据的数据量;
根据数据量从预设线程池中获取传输线程;
从预设交换内存区中确定出与数据量对应的字节作为目标字节;
调用传输线程,将第二存储数据传输至目标字节中进行存储。
根据本发明优选实施例,所述方法还包括:
若动态内存区中有存储的数据对应的执行频率小于预设频率且执行次数小于预设次数,将数据确定为目标数据;
从动态内存区中清除目标数据。
根据本发明优选实施例,从动态内存区中清除目标数据,具体包括:
调用预设删除线程清除目标数据;或者
将目标数据传输至预设交换内存区中。
另一方面,本发明还提出一种动态内存智能化扩展装置,运行于电子设备,动态内存智能化扩展装置包括:
识别单元,用于识别电子设备的主存及闪存,主存中包括动态内存区;
压缩单元,用于当检测到动态内存区的空闲容量小于预设阈值时,将动态内存区中的第一存储数据压缩至主存中的预设压缩内存区。
另一方面,本发明还提出一种电子设备,电子设备包括:
存储器,存储计算机可读指令;及
处理器,执行存储器中存储的计算机可读指令以实现动态内存智能化扩展方法。
另一方面,本发明还提出一种计算机可读存储介质,计算机可读存储介质中存储有计算机可读指令,计算机可读指令被电子设备中的处理器执行以实现动态内存智能化扩展方法。
由以上技术方案可以看出,本申请在检测到空闲容量小于预设阈值时,通过压缩第一存储数据,以及,传输第二存储数据至预设交换内存区,能够提升动态内存区的使用总容量,通过主动释放目标占用动态区,能够提高动态内存区的使用效率,以及周期回收内存碎片,能够在有限的硬件资源的情况下,结合多个维度能够有效的解决动态内存区的资源紧张、以及由于动态内存成本较高从而导致电子设备的成本较高的问题。
附图说明
图1是本发明动态内存智能化扩展方法的较佳实施例的流程图。
图2是本发明中预设压缩内存区的视觉图。
图3是本发明中预设交换内存区的视觉图。
图4是本发明动态内存智能化扩展装置的较佳实施例的功能模块图。
图5是本发明实现动态内存智能化扩展方法的较佳实施例的电子设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
如图1所示,是本发明动态内存智能化扩展方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
动态内存智能化扩展方法应用于一个或者多个电子设备中,电子设备是一种能够按照事先设定或存储的计算机可读指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字信号处理器(Digital Signal Processor,DSP)、嵌入式设备等。
电子设备可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏机、交互式网络电视(Internet Protocol Television,IPTV)、智能穿戴式设备等。
电子设备可以包括网络设备和/或用户设备。其中,网络设备包括,但不限于单个网络电子设备、多个网络电子设备组成的电子设备组或基于云计算(Cloud Computing)的由大量主机或网络电子设备构成的云。
电子设备所处的网络包括,但不限于:互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
101,识别电子设备的主存及闪存,主存中包括动态内存区。
在本发明的至少一个实施例中,电子设备可以是智能家居产品,例如,家电设备、照明系统、智能中控屏开关设备等。
主存是与CPU直接交换数据的内部存储器,主存通常作为电子设备的操作系统或其他正在运行中的程序的临时数据存储介质。
闪存又称flash存储器,flash存储器是存储芯片的一种,通过特定的程序可以修改数据。
动态内存区是指主存中使用户能够指定虚拟操作系统启动的RAM容量。
在本发明的至少一个实施例中,电子设备识别电子设备的主存及闪存,具体包括:
将电子设备自身中存储器类型为第一类型的存储器确定为主存,并将存储器类型为第二类型的存储器确定为闪存。
其中,第一类型的存储器能够随时从任何一个指定的地址写入或读出信息。
第二类型的存储器不会因为断电而丢失数据。
通过存储器类型,能够准确的识别出主存及闪存。
102,当检测到动态内存区的空闲容量小于预设阈值时,将动态内存区中的第一存储数据压缩至主存中的预设压缩内存区。
在本发明的至少一个实施例中,预设阈值是根据周期性调整得到的参数值。
第一存储数据可以是动态内存区的任意存储数据。预设压缩内存区是指电子设备预先在主存中设定的内存区域,一般情况下,预设压缩内存区的容量不超过主存的容量的10%。处于预设压缩内存区的数据,由于该数据经过了压缩处理,因此能够实现数据的高速读取。如图2所示,图2中的大方框为主存,图2中的小方框为预设压缩内存区。
在本发明的至少一个实施例中,所述方法还包括:
获取动态内存区的容量下限值;
计算容量下限值与预设比例的乘积,得到容量上限值;
根据容量下限值及容量上限值生成预设区间;
依据预设区间定期执行对预设阈值的调整。
其中,容量下限值可以通过内核选项/proc/sys/vm/min_free_kbytes进行设置。
预设比例可以根据实际需求设定,例如,预设比例可以是2.5。
通过控制预设阈值处于预设区间,不仅能够避免因预设阈值设定过高而导致频繁压缩数据及清除数据,还能够避免因预设阈值设定过低而导致出现可用的动态内存区较小,从而提高了预设阈值的设定合理性,通过定期对预设阈值的调整,能够实现对电子设备的资源平衡。
在本发明的至少一个实施例中,电子设备将动态内存区中的第一存储数据压缩至主存中的预设压缩内存区,具体包括:
基于预设映射表,确定预设压缩内存区的占用容量;
基于占用容量从动态内存区中提取第一存储数据;
对第一存储数据进行压缩处理,得到压缩数据;
将压缩数据转存至预设压缩内存区。
其中,预设映射表中存储有多个预设内存区与对应字节的映射关系。
通过占用容量对第一存储数据的提取,能够提取到合理容量的存储数据,避免了因占用字节中无法存入压缩数据而导致数据丢失。
具体地,电子设备基于预设映射表,确定预设压缩内存区的占用容量,具体包括:
从预设映射表中获取预设压缩内存区的占用字节;
根据占用字节计算占用容量。
通过预设映射表能够快速的获取到占用字节,提高占用容量的确定效率。
在其他实施例中,占用容量的大小可以按照不同的业务需求进行设定。
在其他实施例中,电子设备将压缩数据及第一存储数据存储至闪存中的预设交换内存区。
在本发明的至少一个实施例中,电子设备依预设时间周期回收动态内存区中的内存碎片。
其中,预设时间可以根据实际需求设定。内存碎片是指电子设备中所有不可用的空闲内存。
在本发明的至少一个实施例中,电子设备依预设时间周期回收动态内存区中的内存碎片,具体包括:
依预设时间周期定期获取动态内存区的空闲字节;
计算空闲字节处于空闲状态的持续时长;
识别动态内存区中的新增缓存数据的最小长度;
若持续时长大于预设时长及空闲字节的字节长度小于最小长度,将空闲字节确定为内存碎片;
调用预设接口执行对内存碎片的回收。
其中,持续时长是指空闲字节的获取时刻与空闲字节的释放时刻的差值,释放时刻是指将数据从空闲字节中清除的时刻点,获取时刻是指从动态内存区获取到空闲字节的时刻点。
新增缓存数据是指电子设备在释放时刻至获取时刻的时段上进行处理的数据信息。
预设时长可以根据实际需求设定,例如,预设时长可以是1小时。
预设接口可以是内核态的shrinker接口。
通过结合持续时长与预设时长的比较,以及,空闲字节的字节长度与最小长度的比较,能够避免空闲字节因短时间内无法被占用而被误指定为内存碎片,从而提高内存碎片的识别合理性,从而提高内存碎片的周期回收合理性。
在本发明的至少一个实施例中,将动态内存区中的第二存储数据传输至闪存中的预设交换内存区。
在本发明的至少一个实施例中,第二存储数据通常为动态内存区中近期没有使用的数据。第二存储数据可以根据动态内存区中存储数据对应的数据读取时刻与配置时段的比较确定得到。
预设交换内存区是指电子设备预先在闪存中设定的内存区域。如图3所示,图3中的大方框为闪存,图2中的小方框为预设交换内存区。
在本发明的至少一个实施例中,将动态内存区中的第二存储数据传输至闪存中的预设交换内存区,具体包括:
统计第二存储数据的数据量;
根据数据量从预设线程池中获取传输线程;
从预设交换内存区中确定出与数据量对应的字节作为目标字节;
调用传输线程,将第二存储数据传输至目标字节中进行存储。
其中,传输线程是指预设线程池中线程数量为配置数量的闲置线程,配置数量是根据数据量及闲置线程的数据传输效率确定的。
目标字节是指预设交换内存区中与数据量对应的字节区域。
通过数据量识别出目标字节,能够避免第二存储数据在传输过程中出现数据丢失的问题,通过传输线程对第二存储数据进行数据传输,能够在不占用电子设备的资源的前提下,实现对第二存储数据的快速传输。
在本发明的至少一个实施例中,所述方法还包括:
若动态内存区中有存储的数据对应的执行频率小于预设频率且执行次数小于预设次数,将数据确定为目标数据;
从动态内存区中清除目标数据。
其中,目标数据是指动态内存区中执行频率小于预设频率,及执行次数小于预设次数的存储数据。
执行频率是指在单位时间内,电子设备读取存储数据的次数。执行次数是指存储数据在动态内存区中的读取总次数。
预设频率及预设次数可以根据实际需求设定。
通过结合执行频率与预设频率的比较,以及,执行次数与预设次数的比较,能够准确的确定出目标数据,从而提高目标占用动态区的生成合理性。
具体地,电子设备从动态内存区中清除目标数据,具体包括:
调用预设删除线程清除目标数据;或者
将目标数据传输至预设交换内存区中。
通过上述实施方式,能够基于多种不同的清除方式实现对目标数据的清除。
本发明中的主存中包括,但不限于:第一存储数据在动态内存区中的第一占用动态区、第二存储数据在动态内存区中的第二占用动态区、目标存储数据在动态内存区中的目标占用动态区。
在本发明的至少一个实施例中,电子设备基于内存碎片、以及对第一占用动态区、第二占用动态区及目标占用动态区的存储空间的释放,完成对动态内存区的资源扩展。
在本发明的至少一个实施例中,内存碎片、第一占用动态区、第二占用动态区、目标占用动态区、预设压缩内存区以及第二占用动态区均可作为动态内存区的扩展区域。
由以上技术方案可以看出,本申请在检测到空闲容量小于预设阈值时,通过压缩第一存储数据,以及,传输第二存储数据至预设交换内存区,能够提升动态内存区的使用总容量,通过主动释放目标占用动态区,能够提高动态内存区的使用效率,以及周期回收内存碎片,能够在有限的硬件资源的情况下,结合多个维度能够有效的解决动态内存区的资源紧张问题。此外,由于动态内存成本较高,通过解决动态内存资源紧张问题,也可以减少电子设备的成本,从而提升电子设备产品的时长竞争力。
如图4所示,是本发明动态内存智能化扩展装置的较佳实施例的功能模块图。动态内存智能化扩展装置11包括识别单元110、回收单元111、压缩单元112、传输单元113、清除单元114、执行单元115、获取单元116、计算单元117及生成单元118。本发明所称的模块/单元是指一种能够被处理器13所获取,并且能够完成固定功能的一系列计算机可读指令段,其存储在存储器12中。在本实施例中,关于各模块/单元的功能将在后续的实施例中详述。
识别单元110识别电子设备的主存及闪存,主存中包括动态内存区。
在本发明的至少一个实施例中,电子设备可以是智能家居产品,例如,家电设备、照明系统、智能中控屏开关设备等。
主存是与CPU直接交换数据的内部存储器,主存通常作为电子设备的操作系统或其他正在运行中的程序的临时数据存储介质。
闪存又称flash存储器,flash存储器是存储芯片的一种,通过特定的程序可以修改数据。
动态内存区是指主存中使用户能够指定虚拟操作系统启动的RAM容量。
在本发明的至少一个实施例中,识别单元110识别电子设备的主存及闪存,具体包括:
将电子设备自身中存储器类型为第一类型的存储器确定为主存,并将存储器类型为第二类型的存储器确定为闪存。
其中,第一类型的存储器能够随时从任何一个指定的地址写入或读出信息。
第二类型的存储器不会因为断电而丢失数据。
通过存储器类型,能够准确的识别出主存及闪存。
当检测到动态内存区的空闲容量小于预设阈值时,压缩单元112将动态内存区中的第一存储数据压缩至主存中的预设压缩内存区。
在本发明的至少一个实施例中,预设阈值是根据周期性调整得到的参数值。
第一存储数据可以是动态内存区的任意存储数据。预设压缩内存区是指电子设备预先在主存中设定的内存区域,一般情况下,预设压缩内存区的容量不超过主存的容量的10%。处于预设压缩内存区的数据,由于该数据经过了压缩处理,因此能够实现数据的高速读取。如图2所示,图2中的大方框为主存,图2中的小方框为预设压缩内存区。
在本发明的至少一个实施例中,获取单元116获取动态内存区的容量下限值;
计算单元117计算容量下限值与预设比例的乘积,得到容量上限值;
生成单元118根据容量下限值及容量上限值生成预设区间;
执行单元115依据预设区间定期执行对预设阈值的调整。
其中,容量下限值可以通过内核选项/proc/sys/vm/min_free_kbytes进行设置。
预设比例可以根据实际需求设定,例如,预设比例可以是2.5。
通过控制预设阈值处于预设区间,不仅能够避免因预设阈值设定过高而导致频繁压缩数据及清除数据,还能够避免因预设阈值设定过低而导致出现可用的动态内存区较小,从而提高了预设阈值的设定合理性,通过定期对预设阈值的调整,能够实现对电子设备的资源平衡。
在本发明的至少一个实施例中,压缩单元112将动态内存区中的第一存储数据压缩至主存中的预设压缩内存区,具体包括:
基于预设映射表,确定预设压缩内存区的占用容量;
基于占用容量从动态内存区中提取第一存储数据;
对第一存储数据进行压缩处理,得到压缩数据;
将压缩数据转存至预设压缩内存区。
其中,预设映射表中存储有多个预设内存区与对应字节的映射关系。
通过占用容量对第一存储数据的提取,能够提取到合理容量的存储数据,避免了因占用字节中无法存入压缩数据而导致数据丢失。
具体地,压缩单元112基于预设映射表,确定预设压缩内存区的占用容量,具体包括:
从预设映射表中获取预设压缩内存区的占用字节;
根据占用字节计算占用容量。
通过预设映射表能够快速的获取到占用字节,提高占用容量的确定效率。
在其他实施例中,占用容量的大小可以按照不同的业务需求进行设定。
在其他实施例中,压缩单元112将压缩数据及第一存储数据存储至闪存中的预设交换内存区。
在本发明的至少一个实施例中,回收单元111依预设时间周期回收动态内存区中的内存碎片。
其中,预设时间可以根据实际需求设定。内存碎片是指电子设备中所有不可用的空闲内存。
在本发明的至少一个实施例中,回收单元111依预设时间周期回收动态内存区中的内存碎片,具体包括:
依预设时间周期定期获取动态内存区的空闲字节;
计算空闲字节处于空闲状态的持续时长;
识别动态内存区中的新增缓存数据的最小长度;
若持续时长大于预设时长及空闲字节的字节长度小于最小长度,将空闲字节确定为内存碎片;
调用预设接口执行对内存碎片的回收。
其中,持续时长是指空闲字节的获取时刻与空闲字节的释放时刻的差值,释放时刻是指将数据从空闲字节中清除的时刻点,获取时刻是指从动态内存区获取到空闲字节的时刻点。
新增缓存数据是指电子设备在释放时刻至获取时刻的时段上进行处理的数据信息。
预设时长可以根据实际需求设定,例如,预设时长可以是1小时。
预设接口可以是内核态的shrinker接口。
通过结合持续时长与预设时长的比较,以及,空闲字节的字节长度与最小长度的比较,能够避免空闲字节因短时间内无法被占用而被误指定为内存碎片,从而提高内存碎片的识别合理性,从而提高内存碎片的周期回收合理性。
在本发明的至少一个实施例中,传输单元113将动态内存区中的第二存储数据传输至闪存中的预设交换内存区。
在本发明的至少一个实施例中,第二存储数据通常为动态内存区中近期没有使用的数据。第二存储数据可以根据动态内存区中存储数据对应的数据读取时刻与配置时段的比较确定得到。
预设交换内存区是指电子设备预先在闪存中设定的内存区域。如图3所示,图3中的大方框为闪存,图2中的小方框为预设交换内存区。
在本发明的至少一个实施例中,传输单元113将动态内存区中的第二存储数据传输至闪存中的预设交换内存区,具体包括:
统计第二存储数据的数据量;
根据数据量从预设线程池中获取传输线程;
从预设交换内存区中确定出与数据量对应的字节作为目标字节;
调用传输线程,将第二存储数据传输至目标字节中进行存储。
其中,传输线程是指预设线程池中线程数量为配置数量的闲置线程,配置数量是根据数据量及闲置线程的数据传输效率确定的。
目标字节是指预设交换内存区中与数据量对应的字节区域。
通过数据量识别出目标字节,能够避免第二存储数据在传输过程中出现数据丢失的问题,通过传输线程对第二存储数据进行数据传输,能够在不占用电子设备的资源的前提下,实现对第二存储数据的快速传输。
在本发明的至少一个实施例中,若动态内存区中有存储的数据对应的执行频率小于预设频率且执行次数小于预设次数,清除单元114将数据确定为目标数据;
清除单元114从动态内存区中清除目标数据。
其中,目标数据是指动态内存区中执行频率小于预设频率,及执行次数小于预设次数的存储数据。
执行频率是指在单位时间内,电子设备读取存储数据的次数。执行次数是指存储数据在动态内存区中的读取总次数。
预设频率及预设次数可以根据实际需求设定。
通过结合执行频率与预设频率的比较,以及,执行次数与预设次数的比较,能够准确的确定出目标数据,从而提高目标占用动态区的生成合理性。
具体地,清除单元114从动态内存区中清除目标数据,具体包括:
调用预设删除线程清除目标数据;或者
将目标数据传输至预设交换内存区中。
通过上述实施方式,能够基于多种不同的清除方式实现对目标数据的清除。
本发明中的主存中包括,但不限于:第一存储数据在动态内存区中的第一占用动态区、第二存储数据在动态内存区中的第二占用动态区、目标存储数据在动态内存区中的目标占用动态区。
在本发明的至少一个实施例中,执行单元115基于内存碎片、以及对第一占用动态区、第二占用动态区及目标占用动态区的存储空间的释放,完成对动态内存区的资源扩展。
在本发明的至少一个实施例中,内存碎片、第一占用动态区、第二占用动态区、目标占用动态区、预设压缩内存区以及第二占用动态区均可作为动态内存区的扩展区域。
由以上技术方案可以看出,本申请在检测到空闲容量小于预设阈值时,通过压缩第一存储数据,以及,传输第二存储数据至预设交换内存区,能够提升动态内存区的使用总容量,通过主动释放目标占用动态区,能够提高动态内存区的使用效率,以及周期回收内存碎片,能够在有限的硬件资源的情况下,结合多个维度能够有效的解决动态内存区的资源紧张问题,降低动态内存的成本,降低电子产品的成本,提升产品的竞争力。
如图5所示,是本发明实现动态内存智能化扩展方法的较佳实施例的电子设备的结构示意图。
在本发明的一个实施例中,电子设备1包括,但不限于,存储器12、处理器13,以及存储在存储器12中并可在处理器13上运行的计算机可读指令,例如动态内存智能化扩展程序。
本领域技术人员可以理解,示意图仅仅是电子设备1的示例,并不构成对电子设备1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如电子设备1还可以包括输入输出设备、网络接入设备、总线等。
处理器13可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器13是电子设备1的运算核心和控制中心,利用各种接口和线路连接整个电子设备1的各个部分,及执行电子设备1的操作系统以及安装的各类应用程序、程序代码等。
示例性的,计算机可读指令可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器12中,并由处理器13执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该计算机可读指令段用于描述计算机可读指令在电子设备1中的执行过程。例如,计算机可读指令可以被分割成识别单元110、回收单元111、压缩单元112、传输单元113、清除单元114、执行单元115、获取单元116、计算单元117及生成单元118。
存储器12可用于存储计算机可读指令和/或模块,处理器13通过运行或执行存储在存储器12内的计算机可读指令和/或模块,以及调用存储在存储器12内的数据,实现电子设备1的各种功能。存储器12可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。存储器12可以包括非易失性和易失性存储器,例如:硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他存储器件。
存储器12可以是电子设备1的外部存储器和/或内部存储器。进一步地,存储器12可以是具有实物形式的存储器,如内存条、TF卡(Trans-flash Card)等等。
电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机可读指令来指令相关的硬件来完成,的计算机可读指令可存储于一计算机可读存储介质中,该计算机可读指令在被处理器执行时,可实现上述各个方法实施例的步骤。
其中,计算机可读指令包括计算机可读指令代码,计算机可读指令代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机可读指令代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)。
结合图1,电子设备1中的存储器12存储计算机可读指令实现一种动态内存智能化扩展方法,处理器13可执行计算机可读指令从而实现:
识别电子设备的主存及闪存,主存中包括动态内存区;
当检测到动态内存区的空闲容量小于预设阈值时,将动态内存区中的第一存储数据压缩至主存中的预设压缩内存区。
具体地,处理器13对上述计算机可读指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
计算机可读存储介质上存储有计算机可读指令,其中,计算机可读指令被处理器13执行时用以实现以下步骤:
识别电子设备的主存及闪存,主存中包括动态内存区;
当检测到动态内存区的空闲容量小于预设阈值时,将动态内存区中的第一存储数据压缩至主存中的预设压缩内存区。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一、第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

Claims (10)

1.一种动态内存智能化扩展方法,应用于电子设备,其特征在于,所述方法包括:
识别所述电子设备的主存及闪存,所述主存中包括动态内存区;
当检测到所述动态内存区的空闲容量小于预设阈值时,将所述动态内存区中的第一存储数据压缩至所述主存中的预设压缩内存区。
2.如权利要求1所述的动态内存智能化扩展方法,其特征在于,所述方法还包括:
依预设时间周期定期获取所述动态内存区的空闲字节;
计算所述空闲字节处于空闲状态的持续时长;
识别所述动态内存区中的新增缓存数据的最小长度;
若所述持续时长大于预设时长及所述空闲字节的字节长度小于所述最小长度,将所述空闲字节确定为内存碎片;
调用预设接口执行对所述内存碎片的回收。
3.如权利要求1所述的动态内存智能化扩展方法,其特征在于,所述方法还包括:
获取所述动态内存区的容量下限值;
计算所述容量下限值与预设比例的乘积,得到容量上限值;
根据所述容量下限值及所述容量上限值生成预设区间;
依据所述预设区间定期执行对所述预设阈值的调整。
4.如权利要求1所述的动态内存智能化扩展方法,其特征在于,所述将所述动态内存区中的第一存储数据压缩至所述主存中的预设压缩内存区,具体包括:
基于预设映射表,确定所述预设压缩内存区的占用容量;
基于所述占用容量从所述动态内存区中提取所述第一存储数据;
对所述第一存储数据进行压缩处理,得到压缩数据;
将所述压缩数据转存至所述预设压缩内存区。
5.如权利要求1所述的动态内存智能化扩展方法,其特征在于,所述方法还包括:将所述动态内存区中的第二存储数据传输至所述闪存中的预设交换内存区,包括:
统计所述第二存储数据的数据量;
根据所述数据量从预设线程池中获取传输线程;
从所述预设交换内存区中确定出与所述数据量对应的字节作为目标字节;
调用所述传输线程,将所述第二存储数据传输至所述目标字节中进行存储。
6.如权利要求5所述的动态内存智能化扩展方法,其特征在于,所述方法还包括:
若所述动态内存区中有存储的数据对应的执行频率小于预设频率且执行次数小于预设次数,将所述数据确定为目标数据;
从所述动态内存区中清除所述目标数据。
7.如权利要求6所述的动态内存智能化扩展方法,其特征在于,所述从所述动态内存区中清除所述目标数据,具体包括:
调用预设删除线程清除所述目标数据;或者
将所述目标数据传输至所述预设交换内存区中。
8.一种动态内存智能化扩展装置,应用于电子设备,其特征在于,所述动态内存智能化扩展装置包括:
识别单元,用于识别所述电子设备的主存及闪存,所述主存中包括动态内存区;
压缩单元,用于当检测到所述动态内存区的空闲容量小于预设阈值时,将所述动态内存区中的第一存储数据压缩至所述主存中的预设压缩内存区。
9.一种电子设备,其特征在于,所述电子设备包括:
存储器,存储有计算机可读指令;及
处理器,执行所述存储器中存储的计算机可读指令以实现如权利要求1至7中任意一项所述的动态内存智能化扩展方法。
10.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质中存储有计算机可读指令,所述计算机可读指令被电子设备中的处理器执行以实现如权利要求1至7中任意一项所述的动态内存智能化扩展方法。
CN202210982019.5A 2022-08-16 2022-08-16 动态内存智能化扩展方法、装置、设备及存储介质 Pending CN115328656A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210982019.5A CN115328656A (zh) 2022-08-16 2022-08-16 动态内存智能化扩展方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210982019.5A CN115328656A (zh) 2022-08-16 2022-08-16 动态内存智能化扩展方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN115328656A true CN115328656A (zh) 2022-11-11

Family

ID=83923794

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210982019.5A Pending CN115328656A (zh) 2022-08-16 2022-08-16 动态内存智能化扩展方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115328656A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116700602A (zh) * 2022-12-08 2023-09-05 荣耀终端有限公司 一种查询扩展内存寿命的方法及设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116700602A (zh) * 2022-12-08 2023-09-05 荣耀终端有限公司 一种查询扩展内存寿命的方法及设备
CN116700602B (zh) * 2022-12-08 2024-04-12 荣耀终端有限公司 一种查询扩展内存寿命的方法及设备

Similar Documents

Publication Publication Date Title
US10990540B2 (en) Memory management method and apparatus
US20230413304A1 (en) Resource Scheduling Method and Terminal Device
JP4701321B2 (ja) メモリ管理
CN110209348B (zh) 数据存储方法、装置、电子设备及存储介质
CN109683983B (zh) 一种镜像文件的生成及加载方法、设备
CN104281528A (zh) 一种数据存储方法及装置
WO2021057622A1 (zh) 内存回收方法、装置、电子设备及存储介质
CN111897819A (zh) 数据存储方法、装置、电子设备及存储介质
CN115328656A (zh) 动态内存智能化扩展方法、装置、设备及存储介质
CN115509953A (zh) 内存回收方法及其装置
CN109521970B (zh) 一种数据处理方法及相关设备
CN110795323A (zh) 负载统计方法、装置、存储介质及电子设备
WO2023236930A1 (zh) 基于ion分配器的内存分配方法、装置、电子设备和可读存储介质
CN116610444A (zh) 流计算系统和用于流计算系统的内存回收方法及计算设备
CN114995770B (zh) 一种数据处理方法、装置、设备、系统及可读存储介质
US10949340B2 (en) Block mapping systems and methods for storage device
CN112817526B (zh) 一种数据存储方法、装置及介质
CN115543859A (zh) 多分区ssd的磨损均衡优化方法、装置、设备及介质
CN111367678B (zh) 集群资源管理方法及系统
CN113778688A (zh) 内存管理系统、内存管理方法、内存管理装置
CN111562983B (zh) 内存优化方法、装置、电子设备及存储介质
CN113010454A (zh) 数据读写方法、装置、终端及存储介质
CN111091488B (zh) 基于OpenCV的内存管理方法、装置及终端
CN118394284B (zh) 数据处理方法、独立磁盘冗余阵列卡、产品、装置及介质
CN116150212B (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