CN113885787A - 一种存储器管理方法及电子设备 - Google Patents
一种存储器管理方法及电子设备 Download PDFInfo
- Publication number
- CN113885787A CN113885787A CN202110751464.6A CN202110751464A CN113885787A CN 113885787 A CN113885787 A CN 113885787A CN 202110751464 A CN202110751464 A CN 202110751464A CN 113885787 A CN113885787 A CN 113885787A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- compressed
- storage space
- threshold
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/17—Embedded application
- G06F2212/171—Portable consumer electronics, e.g. mobile phone
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供一种存储器管理方法及电子设备,涉及计算机技术领域,解决了在用户开启的应用较多的情况下,电子设备换出的数据逐渐增多,压缩后的数据会占用大量的存储空间,导致RAM剩余的存储空间仍较少的问题。该方法包括:在第一存储器的可用存储空间小于第一阈值的情况下,电子设备将数据中的第一数据压缩后存储在第一存储器中;电子设备释放压缩前第一数据占用的存储空间;在第一存储器中压缩后的数据占用的存储空间大于第二阈值的情况下,电子设备将第二数据存储在第二存储器,第二数据为第一存储器中压缩后的数据中压缩率满足阈值条件的数据,第一存储器中压缩后的数据包括第一数据;电子设备释放第二数据占用的存储空间。
Description
本申请要求于2021年06月08日提交国家知识产权局、申请号为202110640318.6、申请名称为“一种存储器管理方法及电子设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,尤其涉及一种存储器管理方法及电子设备。
背景技术
目前,用户可通过在如手机等电子设备中安装应用程序(以下简称为应用),以丰富其功能。如,手机中安装了视频应用,手机在接收到用户开启该视频应用的操作后,可在前台显示该视频应用的界面,供用户使用其对应功能,如观看视频。之后,在用户需切换至其他应用或桌面时,可通过执行对应操作,将该视频应用切换到后台运行。一般的,在应用开启时,电子设备可为其分配用于存储该应用的相关数据的存储空间。在该应用切换到后台运行时,其仍会继续占用该存储空间,用于存储相关数据,如切换到后台运行前最后显示界面的数据,以便在用户将该应用切换到前台运行时能及时显示界面供用户查看。若用户打开了多个的应用,并在使用后未关闭(如切换至后台运行),此时手机会保存用户打开的每个应用的相关数据,导致随机存取存储器(random access memory,RAM)中的大量存储空间被后台运行的应用所占用,进而使得RAM的可用存储空间较低。
发明内容
本申请提供一种存储器管理方法及电子设备,解决了在用户开启的应用较多的情况下,电子设备换出的数据逐渐增多,压缩后的数据会占用大量的存储空间,导致RAM剩余的存储空间仍较少的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请实施例提供存储器管理方法,应用于电子设备,电子设备包括第一存储器和第二存储器,第一存储器中存储有在后台运行的应用的数据;该方法包括:在第一存储器的可用存储空间小于第一阈值的情况下,电子设备将数据中的第一数据压缩后存储在第一存储器中;电子设备释放压缩前第一数据占用的存储空间;在第一存储器中压缩后的数据占用的存储空间大于第二阈值的情况下,电子设备将第二数据存储在第二存储器,第二数据为第一存储器中压缩后的数据中压缩率满足阈值条件的数据,第一存储器中压缩后的数据包括第一数据;电子设备释放第二数据占用的存储空间。
在上述实施例中,在第一存储器的可用存储空间小于第一阈值的情况下,电子设备将数据中的第一数据压缩后存储在第一存储器中,并释放压缩前第一数据占用的存储空间。由于压缩后的数据所占用的存储空间小于压缩前的数据所占用的存储空间,因此可以释放出更多存储空间。之后,在第一存储器中压缩后的数据占用的存储空间大于第二阈值的情况下,说明此时第一存储器中存储的压缩后的第一冷数据过多,导致第一存储器的可用存储空间较小。为此,本申请实施例提供的存储器管理方法,通过将第一存储器中压缩后的数据中压缩率满足阈值条件的数据存储在第二存储器。从而使得第一存储器中存储的第一数据更小,同时电子设备释放第二数据占用的存储空间,如此使得第一存储器的可用存储空间更大。解决了在用户开启的应用较多的情况下,电子设备100换出的数据逐渐增多,压缩后的数据会占用大量的存储空间,导致RAM剩余的存储空间仍较少的问题。
结合第一方面,在一种可能实现方式中,电子设备将数据中的第一数据压缩后存储在第一存储器中,包括:电子设备对第一数据进行压缩;电子设备将压缩后的第一数据以交换单元的形式存储在第一存储器中;其中,同一交换单元中的压缩后的第一数据的压缩率差值小于第三阈值。
在上述实施例中,通过将压缩率差值小于第三阈值的第一数据存储在同一交换单元,从而可以更加方便地对第一数据进行管理。同时,在交换单元大小相同的情况下,对应第一数据的压缩率越高,该交换单元内存储的第一数据越少,这样该交换单元的换入概率越低,从而可以降低由于换入换出造成数据颠簸的问题。
结合第一方面,在一种可能实现方式中,电子设备将第二数据存储在第二存储器,包括:电子设备确定压缩率大于第四阈值的交换单元中所有压缩后的第一数据为第二数据;电子设备将第二数据存储在第二存储器;其中,各交换单元的压缩率是根据交换单元中压缩后的第一数据的压缩率确定的。
在上述实施例中,交换单元的压缩率是根据交换单元中压缩后的第一数据的压缩率确定的。如此,在交换单元大小相同的情况下,该交换单元对应的压缩率越大,说明该交换单元内存储的第一数据越少,这样该交换单元的换入概率越低,从而可以降低由于换入换出造成数据颠簸的问题。
结合第一方面,在一种可能实现方式中,电子设备将第二数据存储在第二存储器,包括:电子设备确定压缩率大于第四阈值,且换入概率小于第五阈值的交换单元中所有压缩后的第一数据为第二数据;电子设备将第二数据存储在第二存储器;其中,各交换单元的压缩率是根据交换单元中压缩后的第一数据的压缩率确定的,各交单单元的换入概率是根据交换单元中压缩后的第一数据被访问的概率确定的。
在上述实施例中,各交换单元的压缩率是根据交换单元中压缩后的第一数据的压缩率确定的,各交单单元的换入概率是根据交换单元中压缩后的第一数据被访问的概率确定的。如此,在交换单元大小相同的情况下,该交换单元对应的压缩率越大,说明该交换单元内存储的第一数据越少,这样该交换单元的换入概率越低,从而可以降低由于换入换出造成数据颠簸的问题。
结合第一方面,在一种可能实现方式中,电子设备将第二数据存储在第二存储器,包括:电子设备根据各交换单元的压缩率,确定第二数据依次为按照从大到小的顺序将交换单元中压缩后的第一数据;电子设备依次将第二数据存储在第二存储器中,直至第一存储器的可用存储空间大于第一阈值。
在上述实施例中,依次根据每个交换单元对应的压缩率,按照从大到小的顺序将交换单元存储在第二存储器中,直至第一存储器的可用存储空间大于第一阈值。如此。在交换单元大小相同的情况下,对应第一数据的压缩率越高,该交换单元内存储的第一数据越少,这样该交换单元的换入概率越低,从而可以降低由于换入换出造成数据颠簸的问题。
结合第一方面,在一种可能实现方式中,第一存储器为内存,第二存储器为外部存储器。
结合第一方面,在一种可能实现方式中,电子设备包括ZRAM块设备,zspage模块,Swap块设备和内存管理模块,方法包括:内存管理模块在第一存储器的可用存储空间小于第一阈值的情况下,通过ZRAM块设备将数据中的第一数据存储至第一存储器设置的Swapspace;ZRAM块设备对Swap space中的第一数据进行压缩,并将压缩后的第一数据发送中至zspage模块;zspage模块将压缩后的第一数据存储在第一存储器中;内存管理模块释放压缩前第一数据占用的存储空间;ZRAM块设备在第一存储器中压缩后的数据占用的存储空间大于第二阈值的情况下,通过接口通知Swap块设备;Swap块设备通过接口从zspage模块中获取第二数据;zspage模块确定第二数据为第一存储器中压缩后的数据中压缩率满足阈值条件的数据;zspage模块将第二数据发送给Swap块设备;Swap块设备将第二数据存储在第二存储器,第一存储器中压缩后的数据包括第一数据;内存管理模块释放第二数据占用的存储空间。
在上述实施例中,内存管理模块在第一存储器的可用存储空间小于第一阈值的情况下,通过ZRAM块设备将数据中的第一数据存储至第一存储器设置的Swap space;ZRAM块设备对Swap space中的第一数据进行压缩,并将压缩后的第一数据发送中至zspage模块;zspage模块将压缩后的第一数据存储在第一存储器中;内存管理模块释放压缩前第一数据占用的存储空间。由于压缩后的数据所占用的存储空间小于压缩前的数据所占用的存储空间,因此可以释放出更多存储空间。之后,ZRAM块设备在第一存储器中压缩后的数据占用的存储空间大于第二阈值的情况下,说明此时第一存储器中存储的压缩后的第一冷数据过多,导致第一存储器的可用存储空间较小。为此,本申请实施例提供的存储器管理方法,ZRAM块设备通过接口通知Swap块设备;Swap块设备通过接口从zspage模块中获取第二数据;zspage模块确定第二数据为第一存储器中压缩后的数据中压缩率满足阈值条件的数据;zspage模块将第二数据发送给Swap块设备;Swap块设备将第二数据存储在第二存储器,第一存储器中压缩后的数据包括第一数据;内存管理模块释放第二数据占用的存储空间,使得第一存储器中存储的第一数据更小,同时电子设备释放第二数据占用的存储空间,如此使得第一存储器的可用存储空间更大。
结合第一方面,在一种可能实现方式中,zspage模块将压缩后的第一数据存储在第一存储器中,包括:zspage模块将压缩后的第一数据以交换单元的形式存储在第一存储器中;其中,同一交换单元中的压缩后的第一数据的压缩率差值小于第三阈值。
在上述实施例中,zspage模块通过将压缩率差值小于第三阈值的第一数据存储在同一交换单元,从而可以更加方便地对第一数据进行管理。同时,在交换单元大小相同的情况下,对应第一数据的压缩率越高,该交换单元内存储的第一数据越少,这样该交换单元的换入概率越低,从而可以降低由于换入换出造成数据颠簸的问题。
结合第一方面,在一种可能实现方式中,zspage模块确定第二数据为第一存储器中压缩后的数据中压缩率满足阈值条件的数据,包括:zspage模块确定第二数据为压缩率大于第四阈值的交换单元中所有压缩后的第一数据;其中,各交换单元的压缩率是根据交换单元中压缩后的第一数据的压缩率确定的。
在上述实施例中,各交换单元的压缩率zspage模块是根据交换单元中压缩后的第一数据的压缩率确定的,各交单单元的换入概率是根据交换单元中压缩后的第一数据被访问的概率确定的。如此,在交换单元大小相同的情况下,该交换单元对应的压缩率越大,说明该交换单元内存储的第一数据越少,这样该交换单元的换入概率越低,从而可以降低由于换入换出造成数据颠簸的问题。
结合第一方面,在一种可能实现方式中,zspage模块确定第二数据为第一存储器中压缩后的数据中压缩率满足阈值条件的数据,包括:zspage模块确定第二数据为压缩率大于第四阈值,且换入概率小于第五阈值的交换单元中所有压缩后的第一数据;其中,各交换单元的压缩率是根据交换单元中压缩后的第一数据的压缩率确定的,各交单单元的换入概率是根据交换单元中压缩后的第一数据被访问的概率确定的。
在上述实施例中,各交换单元的压缩率是根据交换单元中压缩后的第一数据的压缩率确定的,各交单单元的换入概率是根据交换单元中压缩后的第一数据被访问的概率确定的。如此,在交换单元大小相同的情况下,该交换单元对应的压缩率越大,说明该交换单元内存储的第一数据越少,这样该交换单元的换入概率越低,从而可以降低由于换入换出造成数据颠簸的问题。
结合第一方面,在一种可能实现方式中,zspage模块确定第二数据为第一存储器中压缩后的数据中压缩率满足阈值条件的数据,包括:zspage模块根据各交换单元的压缩率,确定第二数据依次为按照从大到小的顺序将交换单元中压缩后的第一数据;Swap块设备将第二数据存储在第二存储器,包括:Swap块设备依次将从zspage模块获取的第二数据存储在第二存储器中,直至第一存储器的可用存储空间大于第一阈值。
在上述实施例中,依次根据每个交换单元对应的压缩率,按照从大到小的顺序将交换单元存储在第二存储器中,直至第一存储器的可用存储空间大于第一阈值。如此。在交换单元大小相同的情况下,对应第一数据的压缩率越高,该交换单元内存储的第一数据越少,这样该交换单元的换入概率越低,从而可以降低由于换入换出造成数据颠簸的问题。
第二方面,本申请实施例提供一种电子设备,包括处理单元。
处理单元,用于在第一存储器的可用存储空间小于第一阈值的情况下,将数据中的第一数据压缩后存储在第一存储器中。处理单元,还用于释放压缩前第一数据占用的存储空间。处理单元,还用于在第一存储器中压缩后的数据占用的存储空间大于第二阈值的情况下,将第二数据存储在第二存储器,第二数据为第一存储器中压缩后的数据中压缩率满足阈值条件的数据,第一存储器中压缩后的数据包括第一数据。处理单元,还用于释放第二数据占用的存储空间。
结合第二方面,在一种可能实现方式中,处理单元,具体用于对第一数据进行压缩;处理单元,具体用于将压缩后的第一数据以交换单元的形式存储在第一存储器中。其中,同一交换单元中的压缩后的第一数据的压缩率差值小于第三阈值。
结合第二方面,在一种可能实现方式中,处理单元,具体用于确定压缩率大于第四阈值的交换单元中所有压缩后的第一数据为第二数据。处理单元,具体用于将第二数据存储在第二存储器。其中,各交换单元的压缩率是根据交换单元中压缩后的第一数据的压缩率确定的。
结合第二方面,在一种可能实现方式中,处理单元,具体用于确定压缩率大于第四阈值,且换入概率小于第五阈值的交换单元中所有压缩后的第一数据为第二数据。处理单元,具体用于将第二数据存储在第二存储器。其中,各交换单元的压缩率是根据交换单元中压缩后的第一数据的压缩率确定的,各交单单元的换入概率是根据交换单元中压缩后的第一数据被访问的概率确定的。
结合第二方面,在一种可能实现方式中,处理单元,具体用于根据各交换单元的压缩率,确定第二数据依次为按照从大到小的顺序将交换单元中压缩后的第一数据;处理单元,具体用于依次将第二数据存储在第二存储器中,直至第一存储器的可用存储空间大于第一阈值。
结合第二方面,在一种可能实现方式中,第一存储器为内存,第二存储器为外部存储器。
第三方面,本申请实施例提供一种电子设备,包括ZRAM块设备,zspage模块,Swap块设备、内存管理模块、第一存储器和第二存储器。内存管理模块,用于在第一存储器的可用存储空间小于第一阈值的情况下,通过ZRAM块设备将数据中的第一数据存储至第一存储器设置的Swap space;ZRAM块设备,用于对Swap space中的第一数据进行压缩,并将压缩后的第一数据发送中至zspage模块;zspage模块,用于将压缩后的第一数据存储在第一存储器中;内存管理模块释放压缩前第一数据占用的存储空间;ZRAM块设备,还用于在第一存储器中压缩后的数据占用的存储空间大于第二阈值的情况下,通过接口通知Swap块设备;Swap块设备,还用于通过接口从zspage模块中获取第二数据;zspage模块,还用于确定第二数据为第一存储器中压缩后的数据中压缩率满足阈值条件的数据;zspage模块,还用于将第二数据发送给Swap块设备;Swap块设备,还用于将第二数据存储在第二存储器,第一存储器中压缩后的数据包括第一数据;内存管理模块释放第二数据占用的存储空间。
结合第三方面,在一种可能实现方式中,zspage模块,具体用于将压缩后的第一数据以交换单元的形式存储在第一存储器中;其中,同一交换单元中的压缩后的第一数据的压缩率差值小于第三阈值。
结合第三方面,在一种可能实现方式中,zspage模块,具体用于确定第二数据为压缩率大于第四阈值的交换单元中所有压缩后的第一数据;其中,各交换单元的压缩率是根据交换单元中压缩后的第一数据的压缩率确定的。
结合第三方面,在一种可能实现方式中,zspage模块,具体用于确定第二数据为压缩率大于第四阈值,且换入概率小于第五阈值的交换单元中所有压缩后的第一数据;其中,各交换单元的压缩率是根据交换单元中压缩后的第一数据的压缩率确定的,各交单单元的换入概率是根据交换单元中压缩后的第一数据被访问的概率确定的。
结合第三方面,在一种可能实现方式中,zspage模块,具体用于根据各交换单元的压缩率,确定第二数据依次为按照从大到小的顺序将交换单元中压缩后的第一数据;Swap块设备,具体用于依次将从zspage模块获取的第二数据存储在第二存储器中,直至第一存储器的可用存储空间大于第一阈值。
结合第三方面,在一种可能实现方式中,第一存储器为内存,第二存储器为外部存储器。
第四方面,本申请实施例提供一种电子设备,包括:通信接口、处理器、存储器、总线;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接;当所述电子设备运行时,所述处理器执行所述存储器存储的计算机执行指令,以使所述电子设备执行如上述第一方面及其任一种可能的设计方式所述的方法。
第五方面,本申请实施例提供一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如上述第一方面及其任一种可能的设计方式所述的方法。
第六方面,本申请实施例提供一种计算机程序产品,包括,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如上述第一方面及其任一种可能的设计方式所述的方法。
可以理解地,上述提供的第二方面、第三方面、第四方面及其任一种可能的设计方式所述的电子设备,第五方面所述的计算机存储介质,第六方面所述的计算机程序产品所能达到的有益效果,可参考第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
附图说明
图1为现有技术中手机开机显示的界面示意图之一。
图2为现有技术中手机开机显示的界面示意图之二。
图3为现有技术中电子设备100的结构示意图之一。
图4为现有技术中电子设备100的结构示意图之二。
图5为现有技术中电子设备100的结构示意图之三。
图6为现有技术中电子设备100的结构示意图之四。
图7为本申请实施例提供的电子设备200的结构示意图之一。
图8为本申请实施例提供的电子设备200的结构示意图之二。
图9为本申请实施例提供的存储器管理方法的流程示意图。
图10为本申请实施例提供的数据压缩前与压缩后的对比示意图。
图11为本申请实施例提供的数据存储的示意图。
图12为本申请实施例提供的电子设备200的结构示意图之三。
图13为本申请实施例提供的一种芯片系统的示意图。
具体实施方式
以下对本申请实施例中涉及的相关概念给出解释:
冷页(Clod Page),可以是相对于热页(hot page)的页。可将一段时间内被访问过的页称为热页。相反,将一段时间内未被没有访问过的页称为冷页。热页一般可存储在缓存中。
LRU算法是一种常用的页面置换算法,用于选择最近没有访问的页予以换出。
为了能够释放RAM的更多存储空间供前台运行应用使用,相关技术提供了内存优化技术。以电子设备是手机为例,介绍相关技术中的内存优化技术。
示例性的,以手机的总存储空间为100M,应用包括应用1,应用2和应用3为例。手机开机后,手机接收到用户开启应用1的操作后,手机启动应用1,手机的系统为其分配了30M的存储空间。之后,用户想要打开应用2时,手机接收到用户的切换操作,将应用1切换至后台运行,并显示桌面。此时,手机确定剩余存储空间70M大于内存回收门限(如40M),此时手机不会强制结束应用1。在接收到用户开启应用2的操作后,手机启动应用2,手机的系统为其分配了35M的存储空间。之后,用户想要打开应用3时,手机接收到用户的切换操作,将应用2切换至后台运行,并显示桌面。由于手机的系统未杀死应用1和应用2,而是在后台中继续运行应用1和应用2,导致应用1和应用2仍然会占用65M存储空间,用于存储相关数据,相关数据如切换到后台运行前最后显示界面的数据。此时,手机确定剩余存储空间35M小于内存回收门限40M,手机可以按照应用的运行时间的先后顺序,强制结束运行时间最早的应用,例如,强制结束应用1,从而释放应用1占用的存储空间,以便手机在开启应用3时,有足够的存储空间分配为应用3,保证户的体验。
或者,手机开机后,手机接收到用户开启应用1的操作后,手机启动应用1,手机的系统为其分配了30M的存储空间。之后,用户想要打开应用2时,手机接收到用户的切换操作,将应用1切换至后台运行,并显示桌面。在接收到用户开启应用2的操作后,手机启动应用2,手机的系统为其分配了35M的存储空间。之后,用户想要打开应用3时,手机接收到用户的切换操作,将应用2切换至后台运行,并显示桌面。此时,由于手机的系统未杀死应用1和应用2,而是在后台中继续运行应用1和应用2,导致应用1和应用2仍然会占用65M存储空间,用于存储相关数据,相关数据如切换到后台运行前最后显示界面的数据。手机接收到用户开启应用3的操作后,在开启应用3前,应用3会向手机申请存储空间,例如,申请50M的存储空间。手机确定剩余存储空间35M小于应用3需要申请的存储空间50M,为了有足够的存储空间分配为应用3,手机可以按照应用的运行时间的先后顺序,强制结束运行时间最早的应用,例如,强制结束应用1,从而释放应用1占用的存储空间,并将释放的存储空间提供给应用3使用。
由上述过程可知,手机强制结束了应用1,释放了对应存储空间,其存储的相关数据也相应的会被删除。因此,在应用1再次启动时,所需的启动的时间过长。例如,应用1再次开启时,显示启动页面,在显示启动页面的过程中加载应用1需要的资源,在加载完需要的资源后,才会显示应用1的界面供用户查看。或者,应用1再次开启时,应用1可能会进行更新检测,并显示正在检查更新的界面(如图1所示),在检查更新完成后,才会显示应用1的界面供用户查看。或者,应用1再次开启时,会先显示广告界面(如图2所示)。之后,才会显示应用1的界面供用户查看。
为解决上述问题,一种实现方式如图3所示,以电子设备100包括CPU、RAM和通用闪存(Universal Flash Storage,UFS)为例。其中,CPU在确定RAM的剩余存储空间小于内存回收门限时,根最近最少使用(Least Recently Used,LRU)算法确定RAM中可以换出的冷数据,并将冷数据存储在UFS中。同时,冷数据被访问时,CPU需要从UFS中将冷数据换入至RAM中。由于UFS存在读写速率瓶颈和使用寿命限制,而存储在UFS中的冷数据存在频繁换出换入的情况,这样会缩短UFS的使用寿命,无法大面积的推广。
另一种实现方式如图4所示,以电子设备100包括:中央处理器(centralprocessing unit,CPU)以及RAM为例。其中,RAM上设置有Swap space,并且RAM中存储有后台运行的应用的相关数据。CPU在RAM的剩余存储空间小于阈值时,根据LRU算法,确定RAM中存储的数据中能够换出(swap out)的冷数据。将冷数据换出至Swap space后,CPU在Swapspace中对冷数据进行压缩,并将压缩后的冷数据以交换单元(如称为:zspage)的形式存储在RAM中。由于压缩后的冷数据所需要的存储空间小于压缩前的冷数据所需要的存储空间,因此可以从内部存储器释放出更多存储空间。由于没有了外部存储器(如UFS),可以避免由于外部存储器的读写速率瓶颈和使用寿命限制,无法大面积的推广的问题。但是,在用户开启的应用较多的情况下,电子设备100换出的冷数据逐渐增多,压缩后的冷数据会占用大量的存储空间,导致RAM剩余的存储空间仍较少。
又一种实现方式如图5所示,以电子设备100包括CPU、RAM和UFS为例。其中,RAM上设置有Swap space,并且RAM中存储有后台运行的应用的相关数据。CPU在确定RAM的剩余存储空间小于内存回收门限时,根据LRU算法确定RAM中可以换出的冷数据,并将冷数据换出至Swap space。CPU在Swap space中对冷数据进行压缩,并将冷数据以一个单元(如称为:zspage)的形式存储在RAM中。CPU确定压缩后的冷数据占用的存储空间大于阈值时,CPU根据LRU算法确定压缩后的冷数据中可换出的指定冷数据,并将指定冷数据存储在UFS中。由于RAM中存储的压缩后的冷数据更少了,因此可以从RAM释放出更多存储空间。但是,将指定冷数据存储在UFS时,是以交换单元(如称为:zspage)的形式进行存储的。当该zspage中某一个冷页被访问时,CPU需要将该zspage中所有的冷数据对应的冷页均换入至RAM进行解压。如此,该zspage会存在频繁换入换出,导致出现数据颠簸的问题。
进一步地,在一个实施例中,以电子设备100的操作系统为Android系统为例,如图6所示,电子设备100从逻辑上可划分为应用层11、内核层12和硬件层13。其中,硬件层13可包括图5所示的CPU、RAM和UFS等。应用层11包括一个或多个应用(应用1~应用3等)。应用可以为系统应用,也可以为第三方应用。内核层12作为硬件层13和应用层11之间的软件中间件,用于管理和控制硬件与软件资源,例如,对电子设备100的内存进行管理。其中,内核层12包括内核121、用于提供底层系统服务的交换设备122和用于管理内存的内存管理模块123。例如:交换设备122可以包括ZRAM块设备和Swap块设备。内存管理模块123确定RAM使用量超过阈值时,内存管理模块123根据LRU算法确定冷数据。内存管理模块123通过交换设备122中的ZRAM块设备将冷数据换出至RAM中的ZRAM分区。ZRAM块设备对ZRAM分区中的冷数据进行压缩。ZRAM块设备将ZRAM分区中压缩后的冷数据以交换单元(如称为zspage)的形式存储到RAM中。ZRAM块设备确定压缩数据总量超过压缩阈值时,通过接口通知Swap块设备。Swap块设备通过接口从ZRAM块设备中获取指定冷数据。ZRAM块设备根据LRU算法从zspage中获取指定冷数据。ZRAM块设备将指定冷数据通过接口发送给swap块设备Swap块设备将指定冷数据换出到UFS。
鉴于此,本申请实施例提供一种存储器管理方法,可以应用于包括存储器(如内存)的电子设备,用以提升其可用存储空间。另外,本实施例提供的方法还可以较好的解决存入UFS的数据换入换出的颠簸问题。
其中,电子设备可以为手机,平板电脑,手持计算机,个人计算机(PersonalComputer,PC),蜂窝电话,个人数字助理(personal digital assistant,PDA),可穿戴式设备(如智能手表),智能家居设备(如电视机),车载电脑,游戏机,以及增强现实(augmentedreality,AR)\虚拟现实(virtual reality,VR)设备等设备,该设备的操作系统包括Linux内核层。本实施例对电子设备的具体设备形态不做特殊限制。
下面介绍本申请实施例的一种电子设备的结构示意图。图7示出了电子设备200的结构示意图。电子设备200可以包括处理器210,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,显示屏193,用户标识模块(subscriber identification module,SIM)卡接口194,以及摄像头195等。其中,传感器模块180可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器220,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。存储器220可以用于存储计算机可执行程序代码,例如应用和操作系统对应的计算机程序;处理器210可调用存储器220存储的计算机程序,从而实现该计算机程序定义的功能。存储器220可以包括内部存储器(也可以称为内存)2201和外部存储器2202。其中,在本申请一些实施例中,内存2201用于暂时存放处于运行状态的应用的相关数据,以及操作系统的代码以及数据,外部存储器2202则用于存储处于可换出的数据等。示例性的,如内存2201可以为RAM,外部存储器2202可以为硬盘(Hard Disk,HD),固态硬盘(Solid StateDisk或Solid State Drive,SSD),或者UFS。
处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,存储器可以用于存储计算机可执行程序代码,例如应用和操作系统对应的计算机程序;处理器210可调用存储器存储的计算机程序,从而实现该计算机程序定义的功能。例如,处理器210可以将操作系统对应的代码存储到存储器中,然后执行存储器中操作系统对应的代码,从而在电子设备100上实现操作系统的各种功能,处理器210也可以将应用对应的代码存储到存储器中,然后执行该应用对应的代码,从而在电子设备100上实现该应用的各种功能。操作系统可以为Windows系统、MAC OS系统、Linux系统或者Android系统等,当然也可以是面向未来的计算机系统,本申请实施例中不作限制。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。
充电管理模块140用于从充电器接收充电输入。电源管理模块141用于连接电池142,充电管理模块140与处理器210。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器210,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。天线1和天线2用于发射和接收电磁波信号。移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。耳机接口170D用于连接有线耳机。
压力传感器用于感受压力信号,可以将压力信号转换成电信号。陀螺仪传感器可以用于确定电子设备100的运动姿态。气压传感器用于测量气压。磁传感器包括霍尔传感器。加速度传感器可检测电子设备100在各个方向上(一般为三轴)加速度的大小。距离传感器,用于测量距离。接近光传感器可以包括例如发光二极管(LED)和光检测器,例如光电二极管。环境光传感器用于感知环境光亮度。指纹传感器用于采集指纹。温度传感器用于检测温度。触摸传感器,也称“触控面板”。骨传导传感器可以获取振动信号。按键190包括开机键,音量键等。马达191可以产生振动提示。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。显示屏193用于显示图像,视频等。SIM卡接口194用于连接SIM卡。
摄像头195用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。
进一步地,在一个实施例中,以电子设备200的操作系统为Android系统为例,如图8所示,电子设备200从逻辑上可划分为应用层21、内核层22和硬件层23。其中,硬件层23可包括图6所示的处理器210和存储器220等。应用层21包括一个或多个应用(应用1~应用3等)。应用可以为系统应用,也可以为第三方应用。内核层22作为硬件层23和应用层21之间的软件中间件,用于管理和控制硬件与软件资源,例如,对电子设备200的内存进行管理。
在本申请一些实施例中,内核层22包括内核221、用于提供底层系统服务的交换设备222和用于管理内存的内存管理模块223。例如,交换设备222可以包括ZRAM块设备、zspage模块和Swap块设备。内存管理模块223确定内存2201使用量超过阈值时,内存管理模块223根据LRU算法确定第一冷数据。内存管理模块223通过ZRAM块设备将第一冷数据换出至内存2201中的ZRAM分区。ZRAM块设备(包含压缩算法)对ZRAM分区中的第一冷数据进行压缩。ZRAM块设备将ZRAM分区中压缩后的第一冷数据通过zspage模块以交换单元(如称为zspage)的形式存储到内存2201中。其中,zspage模块中记录了已存储的第一冷数据和每个第一冷数据对应的压缩率。ZRAM块设备确定压缩数据总量超过压缩阈值时,通过接口通知Swap块设备。swap块设备通过接口(如:get_cold_zspage接口)从zspage模块中获取第二冷数据。zspage模块根据LRU算法和压缩率,确定第一冷数据中可换出的第二冷数据。zspage模块通过接口(如:get_cold_zspage接口)将第二冷数据发送给swap块设备。swap块设备将第二冷数据换出到外部存储器2202。
下面结合附图介绍本申请实施例提供的技术方案。
图9为本申请实施例提供的存储器管理方法的一种示例的流程图,该存储器管理方法应用于电子设备200。其中,电子设备200包括的内存2201可以为本申请实施例中的第一存储器,外部存储器2202可以为本申请实施例中的第二存储器。内存2201中存储有在后台运行的应用的数据。
在下面的介绍过程中,以本申请提供的技术方案应用在图7所示的软件架构中为例进行说明。作为一种示例,本申请提供的存储器管理方法可由如图7所示的内核221执行,或者,可以理解为,该方法可以由电子设备200中的处理器210运行内核221的程序来执行。
S11、内存管理模块223在内存2201的剩余存储空间小于第一阈值的情况下,根据页面置换算法确定内存2201中的第一冷数据。
需要说明的是,本申请实施例中剩余存储空间也称为可用存储空间,本申请中第一冷数据可以称为第一数据,第二冷数据可以称为第二数据。
在一些示例的实现中,内存管理模块223可以根据内存2201的额定存储空间和已使用的存储空间确定其剩余存储空间。如,剩余存储空间等于内存2201的额定存储空间与已使用存储空间的差值。
一般的,电子设备200开机后,应用1和应用2的开启阶段包括:处理器210接收到用户开启应用1的操作后,处理器210启动应用1,内存管理模块223为其分配了30M的存储空间。之后,用户想要打开应用2时,处理器210接收到用户的切换操作,将应用1切换至后台运行,并显示桌面。此时,内存管理模块223确定剩余存储空间70M大于内存回收门限(如40M),处理器210不会强制结束应用1。处理器210在接收到用户开启应用2的操作后,处理器210启动应用2,内存管理模块223为其分配了35M的存储空间。
之后,用户想要打开应用3时,处理器210接收到用户的切换操作,将应用2切换至后台运行,并显示桌面。由于处理器210未杀死应用1和应用2,而是在后台中继续运行应用1和应用2,导致应用1和应用2仍然会占用65M存储空间,用于存储相关数据,相关数据如切换到后台运行前最后显示界面的数据。如此,随着后台运行的应用逐渐增多,这样后台运行的应用占用内存2201的存储空间也会逐渐增大,导致内存2201的剩余存储空间小于第一阈值。内存管理模块223根据页面置换算法确定内存2201中的第一冷数据,并将第一冷数据换出至Swap space。ZRAM块设备对Swap space中的第一冷数据进行压缩,将压缩后的第一冷数据以交换单元(如称为zspage)的形式存储在内存2201中。此时,内存2201可用于存储在后台运行的应用的数据,以及压缩后的第一冷数据。因此,已使用存储空间等于后台运行的应用的数据所占用的存储空间与压缩后的第一冷数据所占用的存储空间之和。示例性的,如内存2201的额定存储空间为4000M,当后台运行的应用的数据所占用的存储空间为1500M,压缩后的第一冷数据所占用的存储空间为300M,则已使用的存储空间等于1500M+300M,剩余存储空间等于4000M-1800M(1500M+300M),即剩余存储空间为2200M。
需要说明的是,在电子设备200开机后,电子设备200未接收到应用的开启操作时,此时内存2201的剩余存储空间大于第一阈值,内存管理模块223无需根据页面置换算法确定内存2201中的第一冷数据,因此内存2201中不会包括压缩后的第一冷数据。
在一些示例的实现中,第一阈值可以根据电子设备200的内存回收门限确定的。
如,电子设备200包括多个内存回收门限。第一阈值可以为电子设备200的多个内存回收门限中的任一个。或者,第一阈值可以为电子设备200的多个内存回收门限中的最小值。第一阈值可以为电子设备200的多个内存回收门限中的最大值。或者,第一阈值可以为电子设备200的多个内存回收门限中的平均值。或者,第一阈值可以为电子设备200的指定内存回收门限与预设数值之和。此处仅是示例性给出如何根据多个内存回收门限确,确定第一阈值,本申请在此不做限定。
示例性的,以第一阈值可以为电子设备200的指定内存回收门限与预设数值之和为例进行说明,假设电子设备包含3个内存回收门限,分别为内存回收门限1、内存回收门限2和内存回收门限3,内存回收门限1小于内存回收门限2,内存回收门限2小于内存回收门限3。在指定内存回收门限为内存回收门限1的情况下,电子设备200确定第一阈值为内存回收门限1与指定数值之和。如:内存回收门限1为1500M,指定数值为500M,则第一阈值为2000M。
当然,电子设备200仅包含一个内存回收门限时,此时第一阈值等于该内存回收门限。
在一些示例的实现中,Android系统中将内存分成固定大小的管理单元,如4KB、8KB、16KB等的内存块,称为页(Page),即内存中的数据是以页的形式存储的。
一般的,可以将内存中存储的数据简称为内存页。如图9所示,电子设备200的处理器210在接收到开启应用1的操作时,处理器210通过地址映射过程寻找应用1在内存2201中存储的内存页。由于电子设备200已通过Swap模块将存储压缩后的应用1的数据换出至外部存储器2202。此时,处理器200确定内存2201中并不存在应用1的内存页,这样会发生缺页中断。当发生缺页中断时,如果电子设备200的内存2201中没有空闲内存页,则系统必须在内存2201选择一个内存页将其移出内存2201,以便为即将调入的页面让出空间。通常电子设备200根据页面置换算法确定内存2201中的可以换出的内存页,该可被待换出内存页,可以称为第一冷数据。其中,页面置换算法可以为LRU算法、最佳置换算法(OPTimalreplacement,OPT)、先进先出置换算法(First In first Out,FIFO)中的任一项。
示例性的,在页面置换算法为LRU算法的情况下,内存管理模块223可以周期性获取内存2201的剩余存储空间,并判断剩余存储空间是否小于第一阈值。在剩余存储空间小于第一阈值的情况下,内存管理模块223可以根据LRU算法确定内存2201中的待换出数据。如,后台运行的应用包括应用1和应用2,内存管理模块223根据LRU算法确定出内存2201中应用1的数据可以被换出,即第一冷数据为应用1的数据。
S12、内存管理模块223通过ZRAM块设备将第一冷数据换至内存2201中设置的Swapspace。
S13、ZRAM块设备对Swap space中的第一冷数据进行压缩,将压缩后的第一冷数据存储在内存2201中,内存管理模块223释放第一冷数据占用的存储空间。
在一些示例的实现中,在内存管理模块223确定出待换出数据,或者说内存管理模块223确定出可以换出的内存页后,可通过ZRAM块设备将该内存页换出至Swap space。然后,电子设备200可通过ZRAM块设备对Swap space中的内存页进行压缩,并将压缩后的内存页重新存储在内存2201中。之后,内存管理模块223可释放压缩前的内存页所占用的存储空间。如:第一冷数据为应用1的数据,应用1的数据对应内存页1和内存页2。内存管理模块223将内存页1和内存页2换出至Swap space。然后,ZRAM块设备对Swap space中的内存页1和内存页2进行压缩,并将压缩后的内存页1和内存页2重新存储在内存2201中。之后,内存管理模块223还可释放压缩前的内存页1和内存页2在内存2201中所占用的存储空间。
在一些示例的实现中,ZRAM块设备将压缩后的第一冷数据以交换单元的形式存储在第一存储器中,从而方便进行数据管理。
一般的,同一交换单元中的压缩后的第一冷数据的压缩率相近,如差值小于第三阈值。如:交换单元称为zspage,ZRAM块设备采用Zsmalloc内存分配器将多个差值小于第三阈值的压缩后的内存页以zspage的形式存储在内存2201中,从而提高内存2201的使用率。其中,zspage在内存2201中存储时不要求物理连续。
示例性的,以后台运行的应用包括应用1和应用2。并且,应用1的数据对应内存页1,应用2的数据对应内存页2、内存页3和内存页4。内存管理模块223根据LRU算法确定出内存2201中第一冷数据包括内存页1,内存页2、内存页3和内存页4。内存管理模块223通过ZRAM块设备将内存页1,内存页2、内存页3和内存页4换出至内存2201中的Swap space。然后,ZRAM块设备对Swap space中的内存页1,内存页2、内存页3和内存页4进行压缩。内存页1压缩前的大小为4KB,内存页2压缩前的大小为3KB,内存页3压缩前的大小为4KB,内存页4压缩前的大小为2KB,内存页1压缩后的大小为3.5KB,内存页2压缩后的大小为2.5,内存页3压缩后的大小为3.5、内存页4压缩后的大小为2KB。压缩后的内存页1对应的压缩率1为即87.5%;压缩后的内存页2对应的压缩率2为即83.3%;压缩后的内存页3对应的压缩率3为即87.5%;压缩后的内存页4对应的压缩率4为即100%。在第三阈值为5%的情况下,由于压缩率1与压缩率2的差值4.2%小于5%,并且压缩率1与压缩率3的差值0小于5%,而压缩率1与压缩率4的差值12.5%大于5%。因此,采用Zsmalloc内存分配器将压缩后的内存页1、压缩后的内存页2以及压缩后的内存页3存储在同一个zspage(如zspage1),ZRAM块设备将压缩后的内存页4存储在其它zspage(如:除zspage1以外的zspage),内存管理模块223释放压缩前的内存页1,内存页2、内存页3以及内存页4在内存2201中所占用的存储空间。
结合上述示例,在内存管理模块223确定内存2201的剩余存储空间小于第一阈值时,根据页面置换算法确定内存2201中的第一冷数据。内存管理模块223通过ZRAM块设备将第一冷数据换出至内存2201中设置的Swap space后,ZRAM块设备需要对Swap space中的第一冷数据进行压缩,由于压缩后的第一冷数据占用的存储空间通常小于第一冷数据占用的存储空间。因此,将压缩后的第一冷数据存储在内存2201中,所占用的存储空间小于第一冷数据占用的存储空间。同时,内存管理模块223释放第一冷数据占用的存储空间,如此,可以释放出更多的存储空间,保证电子设备200的正常运行。
示例性的,如图10所示,以内存2201的额定存储空间为100M,第一阈值为25M,内存2201中当前存储的全部数据中有25%的内存页1在ZRAM分区中被ZRAM块设备压缩后占用的存储空间小于1KB,内存2201中当前存储的全部数据中有20%的内存页2在ZRAM分区中被ZRAM块设备压缩后占用的存储空间小于2KB,内存2201中当前存储的全部数据中有19%的内存页3在ZRAM分区中被ZRAM块设备压缩后占用的存储空间小于3KB,内存2201中当前存储的全部数据中有16%的内存页4在ZRAM分区中被ZRAM块设备压缩后占用的存储空间小于4KB为例进行说明:
内存管理模块223确定内存2201的剩余存储空间为100M-(25%+20%+19%+16%)×100M=20M。内存管理模块223确定剩余存储空间20M小于第一阈值25M,内存管理模块223根据页面置换算法确定内存2201中的第一冷数据。其中,第一冷数据包括全部内存页1、全部内存页2、全部内存叶3和全部内存页4。内存管理模块223通过ZRAM块设备将第一冷数据换出至内存2201中设置的Swap space。ZRAM块设备对Swap space中的第一冷数据进行压缩,将压缩后的第一冷数据存储在内存2201中。其中,压缩后的全部内存页1占用的存储空间为100M×3%=3M,压缩后的全部内存页2占用的存储空间为100M×7%=7M,压缩后的全部内存页3占用的存储空间为100M×14%=14M,压缩后的全部内存页4占用的存储空间为100M×16%=16M。内存管理模块223,释放第一冷数据占用的存储空间后,确定压缩户的第一冷数据占用存储空间的大小为3M+7M+14M+16M=40M。可以看出,内存2201中的第一冷数据在压缩后所占用的存储空间,相较于未压缩前第一冷数据所占用的存储空间,减少了40M的存储空间,即可以节省出40%的存储空间,用户的体验更佳。
S14、ZRAM块设备确定内存2201中存储的压缩后的第一冷数据所占用的存储空间大于第二阈值时,通过接口通知Swap块设备,Swap块设备通过接口从zspage模块中获取第二冷数据。
S15、zspage模块根据LRU算法和压缩率,确定第一冷数据中满足预设条件的第二冷数据,通过接口将第二冷数据发送给swap块设备。
S16、Swap模块从zspage模块中获取第二冷数据,将第二冷数据存储在第二存储器,内存管理模块223释放第二冷数据对应存储空间。
当内存2201中存储的压缩后的第一冷数据所占用的存储空间大于第二阈值,此时说明内存2201中存储的压缩后的第一冷数据过多,导致内存2201的可用存储空间较小。为此,本申请实施例提供的存储器管理方法,Swap模块从zspage模块中获取第二冷数据后,将第二冷数据存储在第二存储器。内存管理模块223释放第二冷数据对应存储空间,使得内存2201的可用存储空间更大。
结合上述示例,压缩后的第一冷数据存储在第一存储器时,是以交换单元的形式存储的。一般的,每个交换单元对应一个压缩率。在一些示例中,本申请的实施例将将第一冷数据中压缩率满足预设条件的交换单元存储在第二存储器,并释放对应存储空间。如此,ZRAM块设备从压缩后的第一冷数据中确定出满足预设条件的第二冷数据后,以交换单元的形式将第二冷数据存储在第二存储器,并释放对应存储空间。
在一些示例的实现中,电子设备200将压缩率大于第四阈值,且换入概率小于第五阈值的交换单元中所有第一冷数据存储在第二存储器中。
在一种示例中,各交换单元的换入概率可以根据交换单元中第一冷数据被访问的概率确定。如:假设一个内存页的换入概率为p,则该交换单元中所有的压缩后的内存页都不被换入的概率为(1-p)n,n为交换单元中包含的内存页的总数,n为大于或等于1的整数。因此,该交换单元的换入概率为1-(1-p)n。结合上述示例,压缩率的确定方法以上述示例类似,此处不再赘述。
示例性的,以第二存储器为UFS,交换单元为zspage,后台运行的应用包括应用1、应用2和应用3,应用1的数据对应内存页1,应用2的数据对应内存页2、内存页3和内存页4,应用3对应内存页5和内存页6,每个内存页在压缩前的大小为4KB,每个zspage的大小为4KB,zspage中包含的每个第一冷数据的压缩率的最大值为该zspage的压缩率,为例进行说明:
如图11所示,内存管理模块223根据LRU算法确定出内存2201中第一冷数据包括内存页1、内存页2、内存页3、内存页4、内存页5和内存页6。内存管理模块223通过ZRAM块设备将内存页1,内存页2、内存页3、内存页4、内存页5和内存页6换出至Swap space。ZRAM块设备对Swap space中的内存页1,内存页2、内存页3、内存页4、内存页5和内存页6进行压缩。其中,压缩后的内存页1的大小为4KB,压缩后的内存页2的大小为2KB,压缩后的内存页3的大小为2KB,压缩后的内存页4的大小为1.3KB,压缩后的内存页5的大小为1.3KB,压缩后的内存页6的大小为1.3KB。则,内存页1的压缩率为即100%;内存页2的压缩率为即50%;内存页3的压缩率为即50%;内存页4的压缩率为即32.5%;内存页5的压缩率为即32.5%;内存页6的压缩率为即32.5%。ZRAM块设备通常将压缩后的第一冷数据以zspage的形式存储至内存2201中。
如:ZRAM块设备将压缩率相近的内存页存储在内存2201中的同一交换单元中。压缩后的内存页1的压缩率与其它压缩后的内存页的压缩率差距较大,并且压缩后的内存页1的大小与zspage的大小相同,ZRAM块设备将压缩后的内存页1存储在内存2201中的zspage1。压缩后的内存页2的压缩率和压缩后的内存页3的压缩率相同,并且压缩后的内存页2与压缩后的内存页3的大小与zspage的大小相同,ZRAM块设备将压缩后的内存页2以及压缩后的内存页3存储在内存2201中的zspage2。压缩后的内存页4的压缩率、压缩后的内存页5的压缩率以及压缩后的内存页6的压缩率相同,并且压缩后的内存页4、压缩后的内存页5以及压缩后的内存页6的大小与zspage的大小相近,ZRAM块设备将压缩后的内存页4、压缩后的内存页5以及压缩后的内存页6存储在内存2201中的zspage3。可见,zspage1换入概率为1-(1-p),zspage2的换入概率为1-(1-p)2,zspage 3的换入概率为1-(1-p)3。
可见,内存页的压缩率越大,对应zspage中可存储的内存页越少,这样使得该zspage的换入概率越低。如此,本申请实施例提供的存储器管理方法,ZRAM块设备确定压缩后的第一冷数据(也称为压缩数据总量)超过第二阈值时,zspage模块根据LRU算法,确定压缩后的第一冷数据中可换出的第二冷数据。然后,根据每个zspage的换入概率,确定第二冷数据中可以被换出的数据。如:zspage模块根据LRU算法,确定压缩后的第一冷数据中可换出的第二冷数据包括:zspage1,zspage2和zspage3。由于zspage1中包含的内存页最少,对应zspage1的换入概率最低,所以优先将压缩后的应用1的数据,即zspage1换出至UFS,以避免数据颠簸的问题。
在另一些示例的实现中,电子设备200根据各交换单元的压缩率,确定各交换单元存储在第二存储器中的顺序,直至第一存储器的可用存储空间大于第一阈值。
在一种示例中,交换单元对应的压缩率可以根据该交换单元中压缩后的第一冷数据的压缩率确定。如:将交换单元中包含的每个第一冷数据的压缩率的平均值作为该交换单元的压缩率;或者,将一个交换单元中包含的每个第一冷数据的压缩率的最大值为该交换单元的压缩率;或者,将一个交换单元中包含的每个第一冷数据的压缩率的方差为该交换单元的压缩率。此处仅是示例性给出如何根据交换单元中包含的每个第一冷数据的压缩率,确定一个交换单元的压缩率,本申请在此不做限定。
在一种示例中,zspage模块根据各交换单元的压缩率,按照从大到小的顺序将交换单元中压缩后的第二冷数据。Swap模块从zspage模块中获取第二冷数据后,将第二冷数据存储在第二存储器,直至第一存储器的可用存储空间大于第一阈值。
示例性的,以将交换单元中包含的每个第一冷数据的压缩率的平均值作为该交换单元的压缩率为例进行说明。根据上述示例的描述可知,zspage1的压缩率最大,因此zspage模块先将zspage1发送至Swap模块。Swap模块从zspage模块中获取zspage1后,将zspage1存储在UFS,内存管理模块223释放zspage1在内存2201中占有的存储空间,此时内存管理模块223确定内存2201的剩余存储空间大于第一阈值,则zspage1无需再换出zspage。若Swap模块将zspage1存储在UFS后,内存管理模块223确定内存2201的剩余存储空间小于第一阈值,则zspage模块继续将zspage2发送至Swap模块。Swap模块从zspage模块中获取zspage2后,将zspage2存储在UFS,内存管理模块223释放zspage2在内存2201中占有的存储空间,此时内存管理模块223确定内存2201的剩余存储空间大于第一阈值,则无需zspage模块再换出zspage。以此类推,此处不再赘述。
在又一些示例的实现中,zspage模块根据页面置换算法,确定内存2201中待换出交换单元,然后根据各交换单元的压缩率,确定各交换单元存储在第二存储器中的顺序,直至第一存储器的可用存储空间大于第一阈值。
在一种示例中,zspage模块根据LRU算法,确定内存2201中待换出交换单元,然后根据每个待换出交换单元的压缩率,按照从大到小的顺序将交换单元中第一冷数据存储在第二存储器中,直至第一存储器的可用存储空间大于第一阈值。
示例性的,当内存2201中存储的待换出交换单元较多时,此时zspage模块需要确定每个待换出交换单元的压缩率,这样会耗费大量的计算资源。为此,本申请实施例提供的存储器管理方法,zspage模块根据LRU算法,确定内存2201中待换出交换单元,然后根据每个待换出交换单元的压缩率,按照从大到小的顺序将交换单元中压缩后的第一冷数据存储在第二存储器中,直至第一存储器的可用存储空间大于第一阈值。从而无需计算每个待换出交换单元的压缩率,在降低占用计算资源的同时,提高了电子设备200的换出效率。
一般的,每个交换单元对应一个活跃度。在一些示例中,本申请的实施例将将第一冷数据中活跃度满足预设条件的交换单元存储在第二存储器,并释放对应存储空间。
在又一些示例的实现中,电子设备200根据将未访问过的内存页,如将最近一段时间内未访问的内存页从活跃LRU链表(Active LRU List)移动到不活跃LRU链表(InactiveLRU List)头部,并在不活跃LRU链表中确定出可换出的内存页。
在一种示例中,电子设备200从不活跃LRU链表的尾部开始依次换出内存页。
示例性的,以页面置换算法为LRU算法为例,当电子设备200确定内存2201的剩余存储空间小于第一阈值的情况下,电子设备200根据LRU算法确定压缩后的zspage3可以被换出,此时电子设备200将如表1所示的活跃LRU链表中的zspage3移动到如表2所示的不活跃LRU链表头部。
表1活跃LRU链表
压缩后的页面 | 最近是否访问 |
zspage1 | 是 |
zspage2 | 是 |
zspage3 | 否 |
表2不活跃LRU链表
压缩后的页面 | 最近是否访问 |
zspage4 | 否 |
zspage5 | 否 |
表3不活跃LRU链表
压缩后的页面 | 最近是否访问 |
zspage3 | 否 |
zspage4 | 否 |
zspage5 | 否 |
表4不活跃LRU链表
压缩后的页面 | 最近是否访问 |
zspage3 | 否 |
zspage4 | 否 |
此时,将zspage3移动到如表2所示的不活跃LRU链表头部后,不活跃LRU链表如表3所示。表3中zspage5位于不活跃LRU链表的尾部,电子设备200将zspage5存储在UFS,并释放zspage5在内存2201中所占有的存储空间,更新后的不活跃LRU链表如表4所示。若内存2201的剩余存储空间大于第一阈值,则电子设备200无需再换出zspage。若电子设备200将zspage5存储在UFS后,内存2201的剩余存储空间仍小于第一阈值,电子设备200将zspage4存储在UFS,并释放zspage4在内存2201中所占有的存储空间。若内存2201的剩余存储空间大于第一阈值,则电子设备200无需再换出zspage。以此类推,此处不再赘述。
需要说明的是,如图9所示,换入应用1的数据阶段包括:处理210向内存管理模块223获取应用1的数据。内存管理模块223确定内存2201中不存在应用1的数据。内存管理模块223确定Swap块设备中存在应用1的数据。Swap块设备从外部存储器2202中获取压缩后的应用1的数据。Swap块设备从外部存储器2202接收压缩后的应用1的数据。Swap块设备将压缩后的应用1的数据发送至zspage模块。ZRAM块设备从Swap块设备获取压缩后的应用1的数据。ZRAM块设备从Swap块设备中接收压缩后的应用1的数据。ZRAM块设备将压缩后的应用1的数据存储至内存2201中的Swap spac,也称为ZRAM分区。ZRAM块设备对ZRAM分区中压缩后的应用1的数据进行解压。ZRAM块设备将解压后的应用1的数据换出至内存2201。内存2201接收ZRAM块设备发送的解压后的应用1的数据。内存管理模块223将内存2201中的解压后的应用1的数据发送至处理210。处理器210根据内存管理模块223发送的解压后的应用1的数据,显示应用1最后显示界面的数据。
可以理解的是,上述电子设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
本申请实施例可以根据上述方法示例对上述电子设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在一种示例中,请参考图12,为本申请实施例提供一种电子设备10的组成示意图。如图12所示,该电子设备10可以包括:处理单元101。
处理单元101,用于在第一存储器的可用存储空间小于第一阈值的情况下,将数据中的第一数据压缩后存储在第一存储器中。处理单元101,还用于释放压缩前第一数据占用的存储空间。处理单元101,还用于在第一存储器中压缩后的数据占用的存储空间大于第二阈值的情况下,将第二数据存储在第二存储器,第二数据为第一存储器中压缩后的数据中压缩率满足阈值条件的数据,第一存储器中压缩后的数据包括第一数据。处理单元101,还用于释放第二数据占用的存储空间。
在一种可能实现方式中,处理单元101,具体用于对第一数据进行压缩;处理单元101,具体用于将压缩后的第一数据以交换单元的形式存储在第一存储器中。其中,同一交换单元中的压缩后的第一数据的压缩率差值小于第三阈值。
在一种可能实现方式中,处理单元101,具体用于确定压缩率大于第四阈值的交换单元中所有压缩后的第一数据为第二数据。处理单元101,具体用于将第二数据存储在第二存储器。其中,各交换单元的压缩率是根据交换单元中压缩后的第一数据的压缩率确定的。
在一种可能实现方式中,处理单元101,具体用于确定压缩率大于第四阈值,且换入概率小于第五阈值的交换单元中所有压缩后的第一数据为第二数据。处理单元101,具体用于将第二数据存储在第二存储器。其中,各交换单元的压缩率是根据交换单元中压缩后的第一数据的压缩率确定的,各交单单元的换入概率是根据交换单元中压缩后的第一数据被访问的概率确定的。
在一种可能实现方式中,处理单元101,具体用于根据各交换单元的压缩率,确定第二数据依次为按照从大到小的顺序将交换单元中压缩后的第一数据;处理单元101,具体用于依次将第二数据存储在第二存储器中,直至第一存储器的可用存储空间大于第一阈值。
在一种可能实现方式中,第一存储器为内存,第二存储器为外部存储器。
当然,本发明实施例提供的电子设备10包括但不限于上述模块,例如电子设备10还可以包括存储单元102。存储单元102可以用于存储该电子设备10的程序代码,还可以用于存储电子设备10在运行过程中生成的数据,如写请求中的数据等。
本申请实施例还提供一种电子设备,该电子设备可以包括:处理器和存储器,该存储器包括内部存储器和外部存储器。该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,电子设备可执行上述方法实施例中手机执行的各个功能或者步骤。当然,该电子设备包括但不限于上述显示屏、存储器和一个或多个处理器。例如,该电子设备的结构可以参考图5所示的手机的结构。
本申请实施例还提供一种芯片系统,该芯片系统可以应用于前述实施例中的电子设备。如图13所示,该芯片系统包括至少一个处理器1501和至少一个接口电路1502。该处理器1501可以是上述电子设备中的处理器。处理器1501和接口电路1502可通过线路互联。该处理器1501可以通过接口电路1502从上述电子设备的存储器接收并执行计算机指令。当计算机指令被处理器1501执行时,可使得电子设备执行上述实施例中手机执行的各个步骤。当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限定。
本申请实施例还提供一种计算机可读存储介质,用于存储上述电子设备(如手机)运行的计算机指令。
本申请实施例还提供一种计算机程序产品,包括上述电子设备(如手机)运行的计算机指令。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种存储器管理方法,应用于电子设备,所述电子设备包括第一存储器和第二存储器,其特征在于,所述第一存储器中存储有在后台运行的应用的数据;所述方法包括:
在所述第一存储器的可用存储空间小于第一阈值的情况下,所述电子设备将所述数据中的第一数据压缩后存储在所述第一存储器中;
所述电子设备释放压缩前所述第一数据占用的存储空间;
在所述第一存储器中压缩后的数据占用的存储空间大于第二阈值的情况下,所述电子设备将第二数据存储在所述第二存储器,所述第二数据为所述第一存储器中压缩后的数据中压缩率满足阈值条件的数据,所述第一存储器中压缩后的数据包括所述第一数据;
所述电子设备释放所述第二数据占用的存储空间。
2.根据权利要求1所述的方法,其特征在于,所述电子设备将所述数据中的第一数据压缩后存储在所述第一存储器中,包括:
所述电子设备对所述第一数据进行压缩;
所述电子设备将压缩后的所述第一数据以交换单元的形式存储在所述第一存储器中;其中,同一交换单元中的压缩后的所述第一数据的压缩率差值小于第三阈值。
3.根据权利要求2所述的方法,其特征在于,所述电子设备将第二数据存储在所述第二存储器,包括:
所述电子设备确定压缩率大于第四阈值的交换单元中所有压缩后的所述第一数据为所述第二数据;
所述电子设备将第二数据存储在所述第二存储器;其中,各交换单元的压缩率是根据所述交换单元中压缩后的所述第一数据的压缩率确定的。
4.根据权利要求2所述的方法,其特征在于,所述电子设备将第二数据存储在所述第二存储器,包括:
所述电子设备确定压缩率大于第四阈值,且换入概率小于第五阈值的交换单元中所有压缩后的所述第一数据为第二数据;
所述电子设备将第二数据存储在所述第二存储器;
其中,各交换单元的压缩率是根据所述交换单元中压缩后的所述第一数据的压缩率确定的,各交单单元的换入概率是根据所述交换单元中压缩后的所述第一数据被访问的概率确定的。
5.根据权利要求2所述的方法,其特征在于,所述电子设备将第二数据存储在所述第二存储器,包括:
所述电子设备根据各交换单元的压缩率,确定所述第二数据依次为按照从大到小的顺序将所述交换单元中压缩后的所述第一数据;
所述电子设备依次将所述第二数据存储在所述第二存储器中,直至所述第一存储器的可用存储空间大于所述第一阈值。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述第一存储器为内存,所述第二存储器为外部存储器。
7.根据权利要求1所述的方法,其特征在于,所述电子设备还包括ZRAM块设备,zspage模块,Swap块设备和内存管理模块,所述方法包括:
所述内存管理模块在所述第一存储器的可用存储空间小于第一阈值的情况下,通过所述ZRAM块设备将所述数据中的第一数据存储至所述第一存储器设置的Swap space;
所述ZRAM块设备对Swap space中的所述第一数据进行压缩,并将压缩后的所述第一数据发送中至所述zspage模块;
所述zspage模块将压缩后的所述第一数据存储在所述第一存储器中;
所述内存管理模块释放压缩前所述第一数据占用的存储空间;
所述ZRAM块设备在所述第一存储器中压缩后的数据占用的存储空间大于第二阈值的情况下,通过接口通知Swap块设备;
所述Swap块设备通过接口从所述zspage模块中获取第二数据;
所述zspage模块确定所述第二数据为所述第一存储器中压缩后的数据中压缩率满足阈值条件的数据;
所述zspage模块将所述第二数据发送给所述Swap块设备;
所述Swap块设备将所述第二数据存储在所述第二存储器,所述第一存储器中压缩后的数据包括所述第一数据;
所述内存管理模块释放所述第二数据占用的存储空间。
8.根据权利要求7所述的方法,其特征在于,所述zspage模块将压缩后的所述第一数据存储在所述第一存储器中,包括:
所述zspage模块将压缩后的所述第一数据以交换单元的形式存储在所述第一存储器中;其中,同一交换单元中的压缩后的所述第一数据的压缩率差值小于第三阈值。
9.根据权利要求8所述的方法,其特征在于,所述zspage模块确定所述第二数据为所述第一存储器中压缩后的数据中压缩率满足阈值条件的数据,包括:
所述zspage模块确定所述第二数据为压缩率大于第四阈值的交换单元中所有压缩后的所述第一数据;其中,各交换单元的压缩率是根据所述交换单元中压缩后的所述第一数据的压缩率确定的。
10.根据权利要求8所述的方法,其特征在于,所述zspage模块确定所述第二数据为所述第一存储器中压缩后的数据中压缩率满足阈值条件的数据,包括:
所述zspage模块确定所述第二数据为压缩率大于第四阈值,且换入概率小于第五阈值的交换单元中所有压缩后的所述第一数据;其中,各交换单元的压缩率是根据所述交换单元中压缩后的所述第一数据的压缩率确定的,各交单单元的换入概率是根据所述交换单元中压缩后的所述第一数据被访问的概率确定的。
11.根据权利要求8所述的方法,其特征在于,所述zspage模块确定所述第二数据为所述第一存储器中压缩后的数据中压缩率满足阈值条件的数据,包括:
所述zspage模块根据各交换单元的压缩率,确定所述第二数据依次为按照从大到小的顺序将所述交换单元中压缩后的所述第一数据;
所述Swap块设备将所述第二数据存储在所述第二存储器,包括:
所述Swap块设备依次将从所述zspage模块获取的所述所述第二数据存储在所述第二存储器中,直至所述第一存储器的可用存储空间大于所述第一阈值。
12.一种电子设备,其特征在于,包括:用于执行权利要求1至11中任一项的所述的方法的各步骤的单元。
13.一种电子设备,其特征在于,包括:通信接口、处理器、存储器、总线;
所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接;
当所述电子设备运行时,所述处理器执行所述存储器存储的计算机执行指令,以使所述电子设备执行如上述权利要求1-11中任一项所述的存储器管理方法。
14.一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如上述权利要求1至11中任一项所述的存储器管理方法。
15.一种计算机程序产品,包括,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如上述权利要求1至11中任一项所述的存储器管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211549506.9A CN116243850B (zh) | 2021-06-08 | 2021-07-02 | 一种存储器管理方法及电子设备 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110640318 | 2021-06-08 | ||
CN2021106403186 | 2021-06-08 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211549506.9A Division CN116243850B (zh) | 2021-06-08 | 2021-07-02 | 一种存储器管理方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113885787A true CN113885787A (zh) | 2022-01-04 |
CN113885787B CN113885787B (zh) | 2022-12-13 |
Family
ID=79010553
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110751464.6A Active CN113885787B (zh) | 2021-06-08 | 2021-07-02 | 一种存储器管理方法及电子设备 |
CN202211549506.9A Active CN116243850B (zh) | 2021-06-08 | 2021-07-02 | 一种存储器管理方法及电子设备 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211549506.9A Active CN116243850B (zh) | 2021-06-08 | 2021-07-02 | 一种存储器管理方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN113885787B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579050A (zh) * | 2022-02-14 | 2022-06-03 | 阿里巴巴(中国)有限公司 | 处理压缩数据的方法以及装置 |
CN116560587A (zh) * | 2023-07-10 | 2023-08-08 | 北京小米移动软件有限公司 | 数据管理系统及终端设备 |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101147119A (zh) * | 2005-02-16 | 2008-03-19 | 桑迪士克股份有限公司 | 快闪存储器中的直接数据文件存储实施技术 |
CN104113759A (zh) * | 2013-04-17 | 2014-10-22 | 展讯通信(上海)有限公司 | 视频系统、视频帧缓存再压缩/解压缩方法与装置 |
CN104281528A (zh) * | 2013-07-09 | 2015-01-14 | 浙江大华技术股份有限公司 | 一种数据存储方法及装置 |
CN104503740A (zh) * | 2014-12-01 | 2015-04-08 | 小米科技有限责任公司 | 内存管理方法和装置 |
CN104516821A (zh) * | 2013-09-29 | 2015-04-15 | 晨星半导体股份有限公司 | 存储器管理方法及存储器管理装置 |
JP2018063505A (ja) * | 2016-10-12 | 2018-04-19 | 富士通株式会社 | メモリ管理制御装置、メモリ管理制御方法、及びメモリ管理制御プログラム |
CN108932163A (zh) * | 2018-06-15 | 2018-12-04 | 奇酷互联网络科技(深圳)有限公司 | 内存管理方法、装置、可读存储介质及终端 |
CN109284187A (zh) * | 2018-08-29 | 2019-01-29 | 维沃移动通信有限公司 | 一种应用处理方法、装置和移动终端 |
CN110865884A (zh) * | 2019-09-30 | 2020-03-06 | 华为技术有限公司 | 一种内存管理方法及装置 |
CN110895492A (zh) * | 2019-12-11 | 2020-03-20 | Oppo(重庆)智能科技有限公司 | 设备控制方法、装置、存储介质及电子设备 |
CN111064471A (zh) * | 2018-10-16 | 2020-04-24 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及电子设备 |
US20200167073A1 (en) * | 2018-11-22 | 2020-05-28 | Realtek Semiconductor Corporation | Computer system, memory management method, and non-transitory computer readable medium |
CN111352861A (zh) * | 2020-02-19 | 2020-06-30 | Oppo广东移动通信有限公司 | 内存压缩方法、装置及电子设备 |
CN111949564A (zh) * | 2020-08-13 | 2020-11-17 | 青岛海信传媒网络技术有限公司 | 一种内存交换方法及显示设备 |
CN111966492A (zh) * | 2020-08-05 | 2020-11-20 | Oppo广东移动通信有限公司 | 内存回收方法、装置、电子设备及计算机可读存储介质 |
CN112162780A (zh) * | 2020-09-24 | 2021-01-01 | 联想(北京)有限公司 | 应用运行控制方法、装置及电子设备 |
CN112306974A (zh) * | 2019-07-30 | 2021-02-02 | 深信服科技股份有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN112748863A (zh) * | 2019-10-31 | 2021-05-04 | 伊姆西Ip控股有限责任公司 | 用于处理数据的方法、电子设备和计算机程序产品 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101077782B1 (ko) * | 2009-12-18 | 2011-10-28 | 한국과학기술원 | 가상머신의 메모리 관리 시스템 및 관리 방법 |
CN103729249B (zh) * | 2012-10-11 | 2017-04-12 | 财团法人工业技术研究院 | 虚拟机的存储器管理的方法和计算机系统 |
KR102088193B1 (ko) * | 2013-08-08 | 2020-03-13 | 삼성전자주식회사 | 저장장치, 이를 포함하는 컴퓨터 시스템 및 이의 동작 방법 |
CN104699626B (zh) * | 2013-12-10 | 2019-02-19 | 中兴通讯股份有限公司 | 终端内存处理方法、装置及终端 |
US10474385B2 (en) * | 2016-02-23 | 2019-11-12 | Google Llc | Managing memory fragmentation in hardware-assisted data compression |
KR102337966B1 (ko) * | 2017-05-19 | 2021-12-13 | 삼성전자주식회사 | 데이터를 압축하는 전자 장치 및 그 동작 방법 |
KR102008928B1 (ko) * | 2017-09-27 | 2019-08-08 | 엘지전자 주식회사 | 공기조화기의 제어방법 |
CN111290848A (zh) * | 2018-12-06 | 2020-06-16 | 中兴通讯股份有限公司 | 一种内存优化方法、终端和计算机可读存储介质 |
CN110837343B (zh) * | 2019-09-27 | 2021-06-22 | 华为技术有限公司 | 处理快照的方法、装置及终端 |
CN111880928B (zh) * | 2020-07-06 | 2024-04-19 | Oppo广东移动通信有限公司 | 选择进程进行释放的方法、终端设备 |
-
2021
- 2021-07-02 CN CN202110751464.6A patent/CN113885787B/zh active Active
- 2021-07-02 CN CN202211549506.9A patent/CN116243850B/zh active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101147119A (zh) * | 2005-02-16 | 2008-03-19 | 桑迪士克股份有限公司 | 快闪存储器中的直接数据文件存储实施技术 |
CN104113759A (zh) * | 2013-04-17 | 2014-10-22 | 展讯通信(上海)有限公司 | 视频系统、视频帧缓存再压缩/解压缩方法与装置 |
CN104281528A (zh) * | 2013-07-09 | 2015-01-14 | 浙江大华技术股份有限公司 | 一种数据存储方法及装置 |
CN104516821A (zh) * | 2013-09-29 | 2015-04-15 | 晨星半导体股份有限公司 | 存储器管理方法及存储器管理装置 |
CN104503740A (zh) * | 2014-12-01 | 2015-04-08 | 小米科技有限责任公司 | 内存管理方法和装置 |
JP2018063505A (ja) * | 2016-10-12 | 2018-04-19 | 富士通株式会社 | メモリ管理制御装置、メモリ管理制御方法、及びメモリ管理制御プログラム |
CN108932163A (zh) * | 2018-06-15 | 2018-12-04 | 奇酷互联网络科技(深圳)有限公司 | 内存管理方法、装置、可读存储介质及终端 |
CN109284187A (zh) * | 2018-08-29 | 2019-01-29 | 维沃移动通信有限公司 | 一种应用处理方法、装置和移动终端 |
CN111064471A (zh) * | 2018-10-16 | 2020-04-24 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置及电子设备 |
US20200167073A1 (en) * | 2018-11-22 | 2020-05-28 | Realtek Semiconductor Corporation | Computer system, memory management method, and non-transitory computer readable medium |
CN112306974A (zh) * | 2019-07-30 | 2021-02-02 | 深信服科技股份有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN110865884A (zh) * | 2019-09-30 | 2020-03-06 | 华为技术有限公司 | 一种内存管理方法及装置 |
CN112748863A (zh) * | 2019-10-31 | 2021-05-04 | 伊姆西Ip控股有限责任公司 | 用于处理数据的方法、电子设备和计算机程序产品 |
CN110895492A (zh) * | 2019-12-11 | 2020-03-20 | Oppo(重庆)智能科技有限公司 | 设备控制方法、装置、存储介质及电子设备 |
CN111352861A (zh) * | 2020-02-19 | 2020-06-30 | Oppo广东移动通信有限公司 | 内存压缩方法、装置及电子设备 |
CN111966492A (zh) * | 2020-08-05 | 2020-11-20 | Oppo广东移动通信有限公司 | 内存回收方法、装置、电子设备及计算机可读存储介质 |
CN111949564A (zh) * | 2020-08-13 | 2020-11-17 | 青岛海信传媒网络技术有限公司 | 一种内存交换方法及显示设备 |
CN112162780A (zh) * | 2020-09-24 | 2021-01-01 | 联想(北京)有限公司 | 应用运行控制方法、装置及电子设备 |
Non-Patent Citations (1)
Title |
---|
ZHIZHOU TIAN: ""Linux Swap 与 Zram 详解"", 《泰晓科技》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579050A (zh) * | 2022-02-14 | 2022-06-03 | 阿里巴巴(中国)有限公司 | 处理压缩数据的方法以及装置 |
CN114579050B (zh) * | 2022-02-14 | 2024-04-02 | 阿里巴巴(中国)有限公司 | 处理压缩数据的方法以及装置 |
CN116560587A (zh) * | 2023-07-10 | 2023-08-08 | 北京小米移动软件有限公司 | 数据管理系统及终端设备 |
CN116560587B (zh) * | 2023-07-10 | 2023-10-13 | 北京小米移动软件有限公司 | 数据管理系统及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116243850A (zh) | 2023-06-09 |
CN116243850B (zh) | 2024-05-28 |
CN113885787B (zh) | 2022-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102170781B1 (ko) | 이미지를 처리하는 전자장치 및 방법 | |
CN116244067B (zh) | 虚拟内存管理方法和电子设备 | |
CN113885787B (zh) | 一种存储器管理方法及电子设备 | |
EP3992786A1 (en) | Display method and electronic device | |
WO2022267664A1 (zh) | 内存冷页的处理方法及电子设备 | |
CN115292052B (zh) | 内存回收方法、电子设备及计算机可读存储介质 | |
WO2022078105A1 (zh) | 内存管理方法、电子设备以及计算机可读存储介质 | |
WO2024179104A1 (zh) | 一种预加载内存页的方法、电子设备及芯片系统 | |
US20240111666A1 (en) | Memory Management Method and Electronic Device | |
CN114461375B (zh) | 内存资源管理方法及电子设备 | |
CN111555825A (zh) | 射频资源分配方法及装置 | |
CN115858047A (zh) | 一种预加载文件页的方法、电子设备及芯片系统 | |
CN112925654B (zh) | 图片解码方法、装置、计算机设备及存储介质 | |
CN117130516B (zh) | 一种显示方法及电子设备 | |
CN116126744B (zh) | 一种内存回收方法、装置及终端设备 | |
CN114253737B (zh) | 电子设备及其内存回收方法、介质 | |
CN112437341A (zh) | 一种视频流处理方法及电子设备 | |
CN116954876A (zh) | 内存管理方法及电子设备 | |
CN111581119B (zh) | 页面回收方法及装置 | |
CN114490127A (zh) | 核间通信方法、装置、电子设备及存储介质 | |
CN116737358B (zh) | 内存刷新方法和电子设备 | |
CN116737356B (zh) | 内存管理方法和电子设备 | |
CN112181938B (zh) | 数据库清理方法、装置和计算机可读存储介质 | |
CN118860535A (zh) | 一种图像处理方法及相关装置 | |
CN115934302A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230912 Address after: 201306 building C, No. 888, Huanhu West 2nd Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai Patentee after: Shanghai Glory Smart Technology Development Co.,Ltd. Address before: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040 Patentee before: Honor Device Co.,Ltd. |
|
TR01 | Transfer of patent right |