CN114185494A - 内存匿名页的处理方法、电子设备及可读存储介质 - Google Patents
内存匿名页的处理方法、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN114185494A CN114185494A CN202210143582.3A CN202210143582A CN114185494A CN 114185494 A CN114185494 A CN 114185494A CN 202210143582 A CN202210143582 A CN 202210143582A CN 114185494 A CN114185494 A CN 114185494A
- Authority
- CN
- China
- Prior art keywords
- anonymous page
- anonymous
- page
- preset area
- electronic device
- 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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/061—Improving I/O performance
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供一种内存匿名页的处理方法、电子设备及可读存储介质,属于电子设备技术领域,该方法包括:电子设备接收到退出应用的第一操作;响应于所述第一操作,电子设备确定与应用对应的匿名页;在电子设备的外存的预设区域,电子设备基于匿名页进行检索;电子设备根据检索的结果,执行匿名页的写入操作。本申请实施例的处理方法,通过在执行写入操作之前,进行检索,可以有效避免相同的匿名页被重复的写入预设区域,提高预设区域利用率。同时,对于处理器而言,减少了写入次数,可以提高处理器的执行效率,对于外部存储器而言,空间的合理利用,以及被写入次数的减少,可以提高外部存储器使用寿命。
Description
技术领域
本发明涉及电子技术领域,尤其涉及一种内存匿名页的处理方法、电子设备及可读存储介质。
背景技术
在安卓(Android系统)中,当电子设备的应用暂时不使用时,会被切换到后台暂存。例如,应用的页面,当用户再次点击使用该应用时,电子设备会将应用快速从后台切换到前台,以便用户可以快速的浏览到应用的页面。然而,在系统内存不足时,系统会清理后台缓冲的应用对应的页面数据。当用户再次打开被清理的应用时,系统会重新从只读存储器(Read-Only Memory,ROM)加载应用的数据,并启动,使得重新打开应用页面的时间变慢,且不保留用户上次操作的界面,用户体验较差。
为了改善上述问题,目前采用增大内存空间,或在ROM上创建交换(Swap)区域,其中,选择内存容量更大的器件,会导致产品的成本增加。采用在ROM上创建交换(Swap)区域,电子设备在每一次应用切换时,将系统中不常用的匿名页转储到ROM的Swap区域中,需要时从Swap区域读取。大量的匿名页转储ROM中,再被读取,使得ROM器件寿命缩短。
发明内容
有鉴于此,本发明提供一种内存匿名页的处理方法及电子设备、计算机可读存储介质,用以解决用户体验差,ROM器件寿命缩短的问题。
本申请的一些实施方式提供了一种内存匿名页的处理方法。以下从多个方面介绍本申请,以下多个方面的实施方式和有益效果可互相参考。
第一方面,本发明提供一种内存匿名页的处理方法,应用于电子设备,包括:
电子设备接收到退出应用的第一操作;
响应于第一操作,电子设备确定与应用对应的匿名页;
在电子设备的外存的预设区域,电子设备基于匿名页进行检索;
电子设备根据检索的结果,执行匿名页的写入操作。
根据本申请实施例的内存匿名页的处理方法,在执行匿名页的写入操作之前,先对匿名页进行检索,根据检索的结果来确定是否要执行写入操作,从而可以有效的避免不必要的写入操作,例如,在处理结果为匿名页已经写入到预设区域时,则不需要在重复在预设区域写入该匿名页,减少不必要的写入次数。
在上述第一方面的一种可能的实现中,电子设备基于匿名页进行检索,包括:
电子设备基于匿名页对应的哈希值,从哈希表中进行检索,并得到检索的结果,哈希表存储与电子设备的物理内存中,用于记录已经写入预设区域内的匿名页对应的哈希值。通过哈希表的检索方式,计算快,且占用空间少,便于对匿名页的检索。
在上述第一方面的一种可能的实现中,电子设备根据检索的结果,执行匿名页的写入操作,包括:
电子设备确定检索的结果为匿名页对应的哈希值存在哈希表中,表明预设区域已经存在匿名页,电子设备不执行将匿名页写入预设区域。避免重复的写入相同的数据,提高预设区域利用率。同时,对于处理器而言,减少了写入次数,可以提高处理器的执行效率,对于外部存储器而言,空间的合理利用,以及被写入次数的减少,可以提高外部存储器使用寿命。
在上述第一方面的一种可能的实现中,电子设备根据检索的结果,执行匿名页的写入操作,包括:
电子设备确定检索的结果为匿名页对应的哈希值未存在哈希表中,表明预设区域未写入匿名页;
电子设备将匿名页写入预设区域,释放物理内存,并记录匿名页已写入预设区域。便于下次写入时,可以通过记录判断在预设区域是否已经写入匿名页。
在上述第一方面的一种可能的实现中,记录匿名页已写入预设区域,包括:
电子设备生成与匿名页对应的哈希值,并将哈希值保存在哈希表中。当同一个匿名页多次需要写入时,在哈希表中该匿名页对应的哈希值标记引用计数,即,每一次需要写入匿名页时,引用计数加1。
在上述第一方面的一种可能的实现中,电子设备将匿名页写入预设区域,包括:
电子设备将匿名页进行压缩,将压缩后的匿名页写入预设区域。
在上述第一方面的一种可能的实现中,该方法还包括:
电子设备接收到将应用切换到当前界面的第二操作,
响应于第二操作,电子设备从预设区域读取匿名页,并标记已读,其中,标记已读可以采用引用计数的方式,每读取一次,将引用计数响应的减1;
当预设区域的剩余空间小于等于预设值,电子设备从预设区域中删除标记已读的匿名页,其中,可以优先删除对应的引用计数为0的匿名页。
该方法不是立即将已读取的匿名页进行删除,而是在达到预设值以后进行删除,可以增加写入场景中匿名页检索命中的概率,进而尽可能的避免重复的写入。以减少写入次数,提升swap写入速率。进一步避免频繁写入损伤外部存储器,提高外部存储器的使用寿命。
在上述第一方面的一种可能的实现中,当预设区域的剩余空间大于预设值,电子设备保留预设区域内的已读取的匿名页。
在上述第一方面的一种可能的实现中,电子设备从预设区域读取匿名页,包括:
电子设备将压缩后的匿名页从预设区域读取到zram区域进行解压,再读取解压后的匿名页。
在上述第一方面的一种可能的实现中,预设区域为swap区域或swap文件。
第二方面,本申请还提供一种电子设备,包括:至少一个处理器以及存储器,存储器包括物理内存和外存,用于存储由设备的一个或多个处理器执行的指令;
处理器,用于执行指令,并执行:
接收到退出应用的第一操作;
响应于第一操作,从物理内存中确定与应用对应的匿名页;
在外存的预设区域,基于匿名页进行检索;
根据检索的结果,执行匿名页的写入操作。
在上述第二方面的一种可能的实现中,处理器基于匿名页对应的哈希值,从哈希表中进行检索,并得到检索的结果,哈希表存储与电子设备的物理内存中,用于记录已经写入预设区域内的匿名页对应的哈希值。通过哈希表的检索方式,计算快,且占用空间少,便于对匿名页的检索。
在上述第二方面的一种可能的实现中,处理器确定检索的结果为匿名页对应的哈希值存在哈希表中,表明预设区域已经存在匿名页,处理器不执行将匿名页写入预设区域。避免重复的写入相同的数据,提高预设区域利用率。同时,对于处理器而言,减少了写入次数,可以提高处理器的运行速度,对于外部存储器而言,空间的合理利用,以及被写入次数的减少,可以提高外部存储器使用寿命。
在上述第二方面的一种可能的实现中,处理器确定检索的结果为匿名页对应的哈希值未存在哈希表中,表明预设区域未写入匿名页;
处理器将匿名页写入预设区域,释放物理内存,并记录匿名页已写入预设区域。
在上述第二方面的一种可能的实现中,处理器用于生成与匿名页对应的哈希值,并将哈希值保存在哈希表中,以记录匿名页已写入预设区域。
在上述第二方面的一种可能的实现中,处理器用于将匿名页进行压缩,将压缩后的匿名页写入预设区域。
在上述第二方面的一种可能的实现中,处理器还用于执行:
接收到将应用切换到当前界面的第二操作,
响应于第二操作,从预设区域读取匿名页,并标记已读;
当预设区域的剩余空间小于等于预设值,从预设区域中删除标记已读的匿名页。
该方法不是立即将已读取的匿名页进行删除,而是在达到预设值以后进行删除,可以增加写入场景中匿名页检索命中的概率,进而尽可能的避免重复的写入。以减少写入次数,提升swap写入速率。进一步避免频繁写入损伤外部存储器,提高外部存储器的使用寿命。
在上述第二方面的一种可能的实现中,当预设区域的剩余空间大于预设值,处理器用于保留预设区域内的已读取的匿名页。
在上述第二方面的一种可能的实现中,处理器用于将压缩后的匿名页从预设区域读取到zram区域进行解压,再读取解压后的匿名页。
在上述第二方面的一种可能的实现中,预设区域为swap区域或swap文件。
第三方面,本申请提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被电子设备运行时,使得电子设备执行上述第一方面实施例中的方法。
第四方面,本申请的公开了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面实施例中的方法。
附图说明
图1为用户使用手机切换应用的场景图;
图2为手机的内部架构示意图和匿名页转存过程的示意图;
图3为本申请实施例的手机的内部架构示意图和匿名页转存过程的示意图;
图4为本申请一个实施例的电子设备的结构示意图;
图5为本申请另一个实施例的电子设备的结构示意图;
图6为本申请一个实施例的电子设备的软件架构示意图;
图7为本申请一个实施例的手机中各模块执行内存匿名页的处理方法的交互流程图;
图8为本申请一个实施例的匿名页与哈希值对应关系示意图;
图9为本申请另一实施例的手机中各模块执行内存匿名页的处理方法的交互流程图;
图10为本申请一些实施例的一种片上系统的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
为了便于对本申请技术方案的理解,下面首先对本申请中出现的关键术语进行说明。
本申请中的内存包括逻辑内存(也称为虚拟内存)和物理内存,物理内存可以用于存储应用对应的页面数据。在安卓系统中,页面数据主要通过文件页(file-backed page)和匿名页(anonymous page)的方式存储。
外部存储器,在本申请中是相对于电子设备的内部存储器而言的“外存”,内部存储器作为电子设备的主存储器,又可以称为“内存”,例如,随机存储器(Random AccessMemory,RAM)。而外部存储器作为电子设备的辅助存储器,又称为“外存”,例如,只读存储器(Read Only Memory,ROM)。在一些实施例中,外部存储器也可以是硬盘、软盘、光盘、U盘、嵌入式存储器(embeded multimedia card, emmc)、通用闪存存储(universal flashstorage,UFS)、多媒体卡等。
文件页,可以映射到外存(本申请中也称作外部存储器)中,内存空间不足时,可以通过清理内存空间的文件页,释放物理内存,在需要时,可以从外存中重新读取。
匿名页,是指应用程序动态分配的堆内存。在应用再次被启用时,可能还要再次被访问,通常不能直接回收,且由于匿名页跟外存没有映射,无法直接回收释放内存。因此,为了既能够保留匿名页,又能节省内存空间,通常会在外存上建立一个swap区域(swapspace)作为协助内存的空间(虚拟内存空间),系统将匿名页转存到swap区域,从而可以实现内存空间的释放,又可以避免内存空间不足而将匿名页清理。进而实现再次使用应用时,系统可以直接从swap区域读取匿名页,提高应用切回的效率。
zram也称为 zRAM,是CPU内核的一项功能,可提供虚拟内存压缩。本申请中当匿名页在被转存到swap区域之前,通过zram功能将匿名页进行压缩,然后将压缩后的匿名页保存在zram临时申请的物理内存中(zram区域),减少swap区域的内存的开销,以及交换到外部存储器时的传输开销,从而提高性能。
下面结合场景图对本申请的技术方案进行说明。
参考图1,图1示例性示出了用户使用手机切换应用的场景图。如图1中的(a)所示,当用户打开应用1,在手机10的屏幕上显示应用1的界面a。当用户退出应用1(此时,应用1在后台运行,而并非关闭),到手机桌面,或者打开应用2,如图2中的(b)所示,在手机10的屏幕已经显示应用2的界面。当用户切回应用1时,如图3中的(c)所示,手机10的屏幕上又回到应用1的界面a。
结合图1中描述的场景对本申请实施例的技术问题进行描述。
结合图1所示,在通常情况下,在手机10接收到切回应用1的操作时,由于应用1在后台运行,因此,在切回应用1的界面a时,手机10屏幕很快就可以显示应用1的界面a。然而,在手机10的内存空间不足时,当用户退出应用1时,手机10会将应用1对应页面数据删除,包括文件页和匿名页。从而在手机10接收到切回应用1的操作时,由于页面数据中的匿名页也被删除,而匿名页没有被映射或转存到外部存储器,因此,手机系统需要重新加载应用1对应的页面数据,从而相比于内存空间充足时,手机重新切回应用1时速度变慢,且无法直接显示应用1的界面a,使得用户的体验变差。
参考图2,图2示出了手机的内部架构示意图和匿名页转存过程的示意图。如图2所示,手机包括处理器和外部存储器,为了避免因内存空间不足而导致匿名页被删除,手机通过在外部存储器上创建Swap区域,即将系统中不常用的匿名页转储到外部存储器的Swap区域中。当应用退到后台后,处理器会将该应用的匿名页“写入”swap区域,进而释放内存。当处理器接收到切回应用指令,即将应用重新切到前台的指令,手机10会从swap区域中将匿名页“读取”到内存空间中。循环往复,每一次应用退出都会对应的写入一次应用的匿名页,从而使得Swap区域频繁写入相同的数据。由于ROM 空间作为持久化设备,有寿命的限制,大量的匿名页转储ROM,再读取,会极大损伤设备的寿命,且频繁写入也会增加手机的工作量,影响整体运行速度。
对此,本申请实施例提出一种内存匿名页的处理方法,用于解决上述的技术问题。
下面结合附图对本申请实施例的内存匿名页的处理方法进行概述。
参考图3,图3示出了本申请实施例的手机的内部架构示意图和匿名页转存过程的示意图。如图3所示,手机处理器在接收到应用退出指令后,确定应用对应的匿名页,并检索swap区域内是否已经写入该匿名页,并在swap区域未检索到匿名页时,将匿名页写入swap区域。当检索到swap区域内已经存储有该匿名页,则不再将该匿名页写入swap区域。该匿名页的处理方法与图2中的处理流程相比,可以有效避免相同的匿名页被重复的写入swap区域,提高swap区域利用率。同时,对于处理器而言,减少了写入次数,可以提高处理器的运行速度,对于外部存储器而言,空间的合理利用,以及被写入次数的减少,可以提高外部存储器使用寿命。
此外,本申请中在将匿名页写入swap区域之前,还可以通过zram功能将匿名页进行压缩,再将压缩后的匿名页转存到swap区域。进一步减少匿名页占用swap区域的空间。提高外部存储器使用寿命。
需要说明的是,本申请主要考虑内存中的匿名页的处理方法,而对于应用对应的其他页面数据,例如,文件页等数据可采用现有的技术方案进行处理,本申请不再详细说明。
在上述实施例中以手机作为电子设备进行的说明。在本申请的一些实施例中,电子设备还可以是桌上电脑、平板电脑、笔记本电脑、超级移动个人计算机、个人数字助理(personal digital assistant,PDA),或者可穿戴的电子设备,如手表、手环等。
下面结合电子设备的具体结构对本申请实施例的内存匿名页的处理方法进行描述。
参考图4,图4示出了本申请实施例的电子设备的结构示意图,电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serialbus,USB)接头130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
处理器110可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110在接收到应用退出的操作后,确定出与该应用对应的匿名页,并将匿名页从处理器110的存储器中转存到与处理器110连接的外部存储器的预设区域中,例如,转存到ROM中的awap区域。在另一些实施例中,处理器110在将匿名页转存到外部存储器的预设区域之前,基于匿名页进行检索,处理器110根据检索的结果,执行匿名页的写入操作。即处理器,在写入匿名页之前,可以先检索预设区域内是否已经存储有该匿名页,例如,处理器110在第一次写入匿名页时,对每一个匿名页生成唯一的标识,并存储在对应的检索表中。其中检索表用于记录希尔预设区域内的匿名页的标识,例如,检索表可以是哈希表,标识可以是哈希值。此后,处理器110通过检索表查询当前的匿名页是否已经被转存过,当确认被转存过,处理器110将不再将该匿名页重复写入外存储器对应的预设区域。从而避免外部存储器中被重复写入相同的数据。该方法,对于处理器来讲,减少写入次数,减少了多余的工作量,提高处理器的工作效率。对于外部储存器来讲,不会有大量的重复数据被存储,提高了空间的利用率,同时,提高外部存储器的使用寿命。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头193、内部存储器121、外部存储器120等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现电子设备100的触摸功能。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现电子设备100的显示功能,例如实现应用界面的切换。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
在一些实施例中,显示屏可以显示应用对应的界面,当应用被切换道后台,显示屏可以显示另一个应用的第二界面,当处理器110确定需要切回应用的第一界面时,处理器110可以通过MIPI接口控制显示屏快速的显示应用对应的第一界面。
外部存储器120可以是与处理器110连接的外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储器是指除电子设备的内存及处理器的高速缓存以外的储存器,该储存器一般为非易失性存储器。外部存储器120与处理器110通信,实现数据存储功能。例如,在应用在后台运行时,可以通过外部存储器120存储应用对应的页面数据,例如,存储匿名页等页面数据。
内部存储器121也可以称为“内存”,可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的页面数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。
在本申请的实施例中,当应用在后台暂存时,内部存储器可以存储应用对应的页面数据,处理器110也可以将页面数据的文件页映射到外部存储器120中,将页面数据中匿名页转存到外部存储器的预设区域,例如,swap区域。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180A检测所述触摸操作强度。电子设备100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
在本申请的一些实施例中,当用户通过按压电子设备的显示屏194打开应用时,压力传感器180A接收到用户按压操作,将该操作对应的事件发送给处理器110,处理器110识别按压操作确定要打开的应用,并执行打开应用的操作,以使得应用对应的界面在显示屏194上显示。
触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
在一些实施例中,在用户通过对显示屏的滑动操作将应用切换到后台运行时,触摸传感器接收到用户的操作,通过I2C接口,将触摸事件发送给处理器110,处理器110识别出用户的切换操作,并执行相应的切换命令,从而实现应用在前台和后台之间的切换。
下面结合图4说明上述处理器110、内部存储器121(内存)和外部存储器120之间的关系。
参考图5,图5示出了本申请另一个实施例的电子设备的结构示意图。处理器110可以包括一个或多个CPU核心111, CPU核心111分别对应的高速缓存112,以及运行在处理器110中的内存管理模块(memory controller)113、匿名页管理模块114和外部空间管理模块115。其中,上述内部存储器121是指物理内存。
处理器110是一个集成电路,各部件通过总线连接,在处理器110中可以运行操作系统和软件程序,从而处理器110能够实现对高速缓存、内存、外部存储器的访问,以及实现数据处理。
内存管理模块113用于控制内部存储器121,实现内部存储器121与CPU核心111之间的数据交换。内存管理模块113接收CPU核心发出的读/写请求,基于页表将请求携带的虚拟地址翻译为物理地址,并发送给内部存储器121,内部存储器121按照物理地址进行相应的读/写操作。同时内存管理模块113向匿名页管理器114并发出读/写请求。
若,匿名页管理器114接收到写入请求,匿名页管理器114会从内部存储器121中的找到对应的匿名页,判断该匿名页是否已经被写入外部存储器的预设区域,根据判断结果作出处理命令,并将处理命令发送给外部空间管理模块115。其中,当匿名页管理器114判断匿名页已经被写入预设区域,则处理结果可以是不需要写入的命令。当判断匿名页未被写入预设区域,则处理命令是需要将该匿名页写入预设区域。
外部空间管理模块115接收到处理命令,执行该命令。此外,在一些实施例中,若该处理命令为将匿名页写入外部存储器中,外部空间管理模块115还可以将匿名页进行压缩,并将压缩后的匿名页写入外部存储器115中。
若,匿名页管理模块114接收到读取请求,匿名页管理器114通知外部空间管理模块115读取相应的匿名页,外部空间管理模块115从外部存储器120的预设区域将对应的匿名页读取到内部存储器121中。
在一些实施例中,匿名页管理模块114接收到读取请求后,向外部空间管理模块115下发标记命令,外部空间管理模块115从外部存储器120的预设区域将对应的匿名页读取到内部存储器121中,并标记该匿名页已读取。同时,将外部空间管理模块115检测外部存储器的剩余空间,并发送给匿名页管理模块114,由匿名页管理模块114判断剩余空间是否到达预设值,并根据判断结果,向外部空间管理模块115发送是否删除已读取的匿名页的命令,由外部空间管理模块115执行命令,实现对外部存储器的管理。
在一些实施例中,若匿名页被压缩后写入预设区域,外部空间管理模块115需要将压缩后的匿名页读取到内部存储器的指定区域,例如zram区域,并进行解压,将解压后的匿名页读取到zram区域外的内存中。
应理解,匿名页管理模块114和外部空间管理模块115可以集成为一个模块,也可以被置于内存管理模块113中,内存管理模块113也可以是单独的芯片,通过系统总线与CPU核心连接,本申请实施例不对内存管理模块113、匿名页管理模块,外部空间管理模块的位置进行限定。
上述图4和图5所示的电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构等。本发明实施例以分层架构的Android系统为例,示例性说明电子设备100软件系统架构。
如图6所示,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。如图6所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序,还可以包括其他未示出的应用程序包。用户可以通过显示屏194上显示的应用图标选择打开对应的应用。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。如图4所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器可用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器可用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统可包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
安卓运行时包括核心库和虚拟机。安卓运行时负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
内核层是硬件和软件之间的层。内核层可以包内存管理模块、匿名页管理模块和外部空间管理模块。内存管理模块接收到读/写请求,并发送给匿名页管理模块,匿名页管理模块接收到读/写请求,根据内部的判断逻辑,确定匿名页是否需要写入外部存储器的处理命令,或是否要删除匿名页的处理命令,由外部空间管理模块执行命令。在下面的实施例中,将详细描述该过程,具体可参见下述方法的具体实施例过程,这里不在详细说明。
需要说明的是,本申请中的内存管理模块、匿名页管理模块和外部空间管理模块不限定于设置在内核层,也可以设置在系统运行库层等,此处为示例性说明,并不作为对其位置的限定。
下面结合具体附图对本申请实施例的内存匿名页的处理方法进行详细描述。
在下面实施例中以该方法应用于手机(作为电子设备的示例)为例进行说明,该手机具体结构可以参考如图4、图5和图6的硬件结构和软件结构。本申请中,主要从内存匿名页的写入流程和读取流程两个场景对内存匿名页的处理方法进行描述。
场景1:匿名页写入流程
参考图7,图7示出了本申请实施例的手机中各模块执行内存匿名页的处理方法的交互流程图。如图7所示,手机包括处理器和与处理器连接的外部存储器。其中,处理器中可以包括内存管理模块、匿名页管理模块和外部空间管理模块。外部存储器中设有swap区域,用于转存内存中的匿名页。该流程图包括S710-S760。
S710,内存管理模块接收到退出应用的操作。
本申请中,退出应用是指应用在后台运行,而并没有关闭,在需要时,该应用随时被切换到当前界面。当内存管理模块接收到退出应用的操作后,将触发匿名页的写入流程,并执行S720。
S720,内存管理模块通知匿名页管理模块写入匿名页。其中,写入匿名页是指将匿名页写入外部存储器中的swap区域。匿名页管理模块接收到通知后,从内存中确定出应用对应的匿名页,并执行S730。
S730,匿名页管理模块判断是否需要写入匿名页。
在本申请的一个实施例中,匿名页管理模块可以通过检索外部存储器中的swap区域是否已经写入该匿名页。
若已经写入匿名页,则任务结束,匿名页管理模块不再通知外部空间管理模块写入该匿名页。
若未写入匿名页,匿名页管理模块执行S730,通知外部空间管理模块将对应匿名页写入外部存储器的swap区域。
在本申请的一个实施例中,当匿名页管理模块判断匿名页未写入swap区域时,还可以将该匿名页生成唯一的标识并进行记录。当内存管理模块再次发出该匿名页的写入通知时,匿名页管理模块可以通过记录的标识确定swap区域已存有该匿名页,则避免后面重复写入。
参考图8,图8示出了本申请一个实施例的匿名页与哈希值对应关系示意图。如图8所示,表中包括不同的匿名页,例如,匿名页a和匿名页b。这些匿名页对应的唯一标识的哈希值。当内存管理模块判断匿名页a未曾被写入swap区域,根据哈希算法,匿名页管理模块对该匿名页a生成唯一哈希值1,并存储在相应的检索表中,并通知外部空间存储模块将匿名页写入swap区域。当匿名页管理模块再次接收到写入匿名页a的通知时,可以根据哈希表检索到哈希值1,从而判断出与哈希值1对应的匿名页已经被写入swap区域,不需要重复写入,实现了降低swap写入次数、提升了swap写入速率和存储空间的利用率。同时,避免频繁的向设备中写入数据损伤外部存储器,提高了外部存储器的使用寿命。
本申请中的检索表可以是哈希表(hash Map)、树表(Tree Map)的形式。以哈希表为例说明检索表的结构,哈希表中可以包括键-值(key-value),其中,键(key)为由匿名页计算生成的值(哈希值1或哈希值2),或者由匿名页计算生成的值,压缩后计算方式为CRC、MD5、SHA1等,在实际应用时,可根据产品的性能、安全等因素选取。值(Value)包括匿名页在预设区域(例如,swap区域)的地址。在一些实施例中,值(Value)中还包括匿名页的引用计数,例如,在匿名页每写入一次或需要写入时(预设区域已有,不需要实际写入),引用计数加1。每读取一次引用计数减1。由于通常写入与读取是相对应的,因此通过写入的次数和读取的次数,在后续删除读取的匿名页时,可以优先删除引用计数为0的,尽可能避免删除被读取概率高的匿名页。此外,当匿名页被删除时,检索表中对应哈希值也将对应的删除。
当外部空间管理模块接收到通知后,可知直接执行S760,将对应的匿名页写入swap区域。也可以先执行S750,将匿名页经过压缩算法进行压缩,将压缩后的匿名页写入swap区域,从而进一步提高外部存储空间的利用率。
场景2:匿名页读取流程
参考图9,图9示出了本申请另一实施例的手机中各模块执行内存匿名页的处理方法的交互流程图。如图9所示,手机包括处理器和与处理器连接的外部存储器。其中,处理器中可以包括内存管理模块、匿名页管理模块和外部空间管理模块。外部存储器中设有swap区域,用于转存内存中的匿名页。该流程图包括S910-S980。
S910,内存管理模块接收到切回应用的操作。
其中,切回应用是指应用在后台运行,重新将该应用切回前台,即当前界面。当内存管理模块接收到切回应用的操作后,将触发匿名页的读取流程,并执行S720。
S920,内存管理模块通知匿名页管理模块读取匿名页。其中,读取匿名页是指将匿名页从外部存储器中的swap区域读取到内存,以实现应用快速切换到前台。匿名页管理模块接收到通知后,执行S930。
S930,匿名页管理模块通知外部空间管理模块读取匿名页并标记已读。
S940,外部空间管理模块从外部存储器的swap区域读取匿名页到处理器的内存,并将该匿名页标记已读。同时,外部空间管理模块检测swap区域的剩余空间。
在一些实施例中,当存储在swap区域的匿名页是经过zram压缩的匿名页,则在外部空间管理模块读取压缩的匿名页后,外部空间管理模块首先将压缩的匿名页读取到内存中的zram区域,并进行解压,在读取到zram区域之外的内存中。
S950,外部空间管理模块将剩余空间大小发送给匿名页管理模块。
S960,匿名页管理模块判断剩余空间是否达到预设值。
若判断剩余空间已经达到预设值,例如100MB。则执行S970。若未达到预设值,则不需要执行命令。
S970,匿名页管理模块通知外部空间管理模块删除已标记匿名页。
在本申请的实施例中,匿名页删除可以按照S730中的哈希表中引用计数的方式优先删除引用计数为0的匿名页。在一些实施例中,删除匿名页可以按照预设的规则,对已读的匿名页设定优先级,将优先级排列交底的优先删除。例如,根据读取的时间排列,将距离当前时间较远的已读的匿名页设定优先级为低级,则优先删除这些低优先级的匿名页,直到剩余空间大于预设值。此外,也可以根据匿名页被读取的次数的多少,进行优先级设置,此处并不作为限定。
S980,外部空间管理模块执行删除命令,从swap区域删除这些标记已读的匿名页。
根据本申请实施例的读取流程,处理器不是立即将已读取的匿名页进行删除,而是在达到预设值以后进行删除,可以增加写入场景中匿名页检索命中的概率,进而尽可能的避免重复的写入。以减少写入次数,提升swap写入速率。进一步避免频繁写入损伤外部存储器,提高外部存储器的使用寿命。
在上述实施例中,是以内存管理模块、匿名页管理模块和外部空间管理模块作为示例进行的说明,在本申请的一些实施例中,也可以是其他模块,模块的数量可以多余这些模块的数量,也可以少于这些模块的数量,此处并不作为限定。
本申请还提供一种电子设备,包括:至少一个处理器以及存储器,存储器包括物理内存和外存,用于存储由设备的一个或多个处理器执行的指令;
处理器,用于执行指令,并执行:
接收到退出应用的第一操作;
响应于第一操作,从物理内存中确定与应用对应的匿名页;
在外存的预设区域,基于匿名页进行检索,其中,预设区域可以为swap区域或swap文件;
根据检索的结果,执行匿名页的写入操作。
在本申请的一个实施例中,处理器用于基于匿名页对应的哈希值,从哈希表中进行检索,并得到检索的结果。
在本申请的一个实施例中,检索的结果为预设区域已经写入匿名页,
执行匿名页的写入操作,包括:
处理器不再执行将匿名页写入预设区域。
在本申请的一个实施例中,检索的结果为预设区域未写入匿名页,
执行匿名页的写入操作,包括:
处理器用于将匿名页写入预设区域,释放物理内存,并记录匿名页已写入预设区域。
在本申请的一个实施例中,处理器用于生成与匿名页对应的哈希值,并将哈希值保存在哈希表中,以记录匿名页已写入预设区域。
在本申请的一个实施例中,处理器用于将匿名页进行压缩,将压缩后的匿名页写入预设区域。
在本申请的一个实施例中,处理器还用于执行:
接收到将应用切换到当前界面的第二操作,
响应于第二操作,从预设区域读取匿名页,并标记已读;
当预设区域的剩余空间小于等于预设值,从预设区域中删除标记已读的匿名页。
在本申请的一个实施例中,当预设区域的剩余空间大于预设值,处理器用于保留预设区域内的已读取的匿名页。
在本申请的一个实施例中,处理器用于将压缩后的匿名页从预设区域读取到zram区域进行解压,再读取解压后的匿名页。
本申请实施例的电子设备的部件及工作流程在上述实施例中进行了详细的说明,具体可参考上述实施例图7和图9所述的处理方法,此处不再赘述。
本申请还提供一种电子设备,包括:
存储器,用于存储由设备的一个或多个处理器执行的指令,以及
处理器,用于执行上述实施例中结合图7和图9所解释的处理方法。
本申请还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器运行时,使得处理器执行上述实施例中图7和图9所解释的处理方法。
本申请还提供一种包含指令的计算机程序产品,当该计算机程序产品在电子设备上运行时,使得处理器执行上述实施例中图7和图9所解释的处理方法。
现在参考图10,所示为根据本申请的一实施例的SoC(System on Chip,片上系统)1300的框图。在图10中,相似的部件具有同样的附图标记。另外,虚线框是更先进的SoC的可选特征。在图10中,SoC1300包括:互连单元1350,其被耦合至应用处理器1310;系统代理单元1380;总线控制器单元1390 ;集成存储器控制器单元1340;一组或一个或多个协处理器1320,其可包括集成图形逻辑、图像处理器、音频 处理器和视频处理器;静态随机存取存储器(Static Random Access Memory,SRAM)单元1330;直接存储器存取(DMA)单元1360。在一个实施例中,协处理器1320包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、或嵌入式处理器等。
静态随机存取存储器(SRAM)单元 1330中可以包括用于存储数据和/或指令的一个或多个计算机可读介质。计算机可读存储介质中可以存储有指令,具体而言,存储有该指令的暂时和永久副本。该指令可以包括:由处理器中的至少一个单元执行时使Soc1300执行根据上述实施例中的拍摄方法,具体可参照上述实施例图7和图9所解释的处理方法,在此不再赘述。
本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组 合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程 系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(Digital Signal Processor,DSP)、微控制器、专用集成电路(Application Specific Integrated Circuit ,ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、光盘只读存储器(Compact Disc Read Only Memory,CD-ROMs)、磁光盘、只读存储器(Read OnlyMemory,ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(Erasable ProgrammableRead Only Memory ,EPROM)、电可擦除可编程只读存储器(Electrically ErasableProgrammable Read Only Memory ,EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明书附图中所示的方式和/或顺序来布置。 另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。
Claims (22)
1.一种内存匿名页的处理方法,应用于电子设备,其特征在于,包括:
所述电子设备接收到退出应用的第一操作;
响应于所述第一操作,所述电子设备确定与应用对应的匿名页;
在所述电子设备的外存的预设区域,所述电子设备基于所述匿名页进行检索;
所述电子设备根据检索的结果,执行所述匿名页的写入操作。
2.根据权利要求1所述的方法,其特征在于,所述电子设备基于所述匿名页进行检索,包括:
所述电子设备基于所述匿名页对应的哈希值,从哈希表中进行检索,并得到所述检索的结果,所述哈希表存储与所述电子设备的物理内存中,用于记录已经写入预设区域内的匿名页对应的哈希值。
3.根据权利要求2所述的方法,其特征在于,所述电子设备根据检索的结果,执行所述匿名页的写入操作,包括,
所述电子设备确定所述检索的结果为匿名页对应的哈希值存在所述哈希表中,表明所述预设区域已经存在匿名页,所述电子设备不执行将匿名页写入所述预设区域。
4.根据权利要求2所述的方法,其特征在于,所述电子设备根据检索的结果,执行所述匿名页的写入操作,包括:
所述电子设备确定所述检索的结果为所述匿名页对应的哈希值未存在所述哈希表中,表明所述预设区域未写入匿名页;
所述电子设备将所述匿名页写入所述预设区域,释放物理内存,并记录所述匿名页已写入所述预设区域。
5.根据权利要求4所述的方法,其特征在于,记录所述匿名页已写入所述预设区域,包括:
所述电子设备生成与所述匿名页对应的哈希值,并将所述哈希值保存在哈希表中。
6.根据权利要求4或5所述的方法,其特征在于,所述电子设备将所述匿名页写入所述预设区域,包括:
所述电子设备将所述匿名页进行压缩,将压缩后的匿名页写入所述预设区域。
7.根据权利要求1-5任一项所述的方法,其特征在于,还包括:
所述电子设备接收到将所述应用切换到当前界面的第二操作,
响应于所述第二操作,所述电子设备从所述预设区域读取所述匿名页,并标记已读;
当所述预设区域的剩余空间小于等于预设值,所述电子设备从所述预设区域中删除标记已读的匿名页。
8.根据权利要求7所述的方法,其特征在于,当所述预设区域的剩余空间大于预设值,所述电子设备保留所述预设区域内的已读取的匿名页。
9.根据权利要求7所述的方法,其特征在于,所述电子设备从所述预设区域读取所述匿名页,包括:
所述电子设备将压缩后的所述匿名页从所述预设区域读取到zram区域进行解压,再读取解压后的所述匿名页。
10.根据权利要求1-5任一项所述的方法,其特征在于,所述预设区域为swap区域或swap文件。
11.一种电子设备,其特征在于,包括:至少一个处理器以及存储器,所述存储器包括物理内存和外存,用于存储由设备的一个或多个处理器执行的指令;
处理器,用于执行指令,并执行:
接收到退出应用的第一操作;
响应于所述第一操作,从所述物理内存中确定与应用对应的匿名页;
在所述外存的预设区域,基于所述匿名页进行检索;
根据检索的结果,执行所述匿名页的写入操作。
12.根据权利要求11所述的电子设备,其特征在于,所述处理器基于所述匿名页对应的哈希值,从哈希表中进行检索,并得到所述检索的结果,所述哈希表存储与所述电子设备的物理内存中,用于记录已经写入预设区域内的匿名页对应的哈希值。
13.根据权利要求12所述的电子设备,其特征在于,所述处理器确定所述检索的结果为匿名页对应的哈希值存在所述哈希表中,表明所述预设区域已经存在所述匿名页,所述处理器不执行将所述匿名页写入所述预设区域。
14.根据权利要求12所述的电子设备,其特征在于,所述处理器确定所述检索的结果为所述匿名页对应的哈希值未存在所述哈希表中,表明所述预设区域未写入所述匿名页;
所述处理器将所述匿名页写入所述预设区域,释放物理内存,并记录所述匿名页已写入所述预设区域。
15.根据权利要求14所述的电子设备,其特征在于,所述处理器用于生成与所述匿名页对应的哈希值,并将所述哈希值保存在哈希表中,以记录所述匿名页已写入所述预设区域。
16.根据权利要求14或15所述的电子设备,其特征在于,所述处理器用于将所述匿名页进行压缩,将压缩后的匿名页写入所述预设区域。
17.根据权利要求11-15任一项所述的电子设备,其特征在于,处理器还用于执行:
接收到将所述应用切换到当前界面的第二操作,
响应于所述第二操作,从所述预设区域读取所述匿名页,并标记已读;
当所述预设区域的剩余空间小于等于预设值,从所述预设区域中删除标记已读的匿名页。
18.根据权利要求17所述的电子设备,其特征在于,当所述预设区域的剩余空间大于预设值,所述处理器用于保留所述预设区域内的已读取的匿名页。
19.根据权利要求17所述的电子设备,其特征在于,所述处理器用于将压缩后的所述匿名页从所述预设区域读取到zram区域进行解压,再读取解压后的所述匿名页。
20.根据权利要求11-15任一项所述的电子设备,其特征在于,所述预设区域为swap区域或swap文件。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被电子设备运行时,使得所述电子设备执行权利要求1-10任一项所述的方法。
22.一种包含指令的计算机程序产品,其特征在于,当该计算机程序产品在电子设备上运行时,使得电子设备执行权利要求1-10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210143582.3A CN114185494B (zh) | 2022-02-16 | 2022-02-16 | 内存匿名页的处理方法、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210143582.3A CN114185494B (zh) | 2022-02-16 | 2022-02-16 | 内存匿名页的处理方法、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114185494A true CN114185494A (zh) | 2022-03-15 |
CN114185494B CN114185494B (zh) | 2022-07-19 |
Family
ID=80607089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210143582.3A Active CN114185494B (zh) | 2022-02-16 | 2022-02-16 | 内存匿名页的处理方法、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114185494B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114741205A (zh) * | 2022-06-02 | 2022-07-12 | 荣耀终端有限公司 | 一种匿名页回收方法及电子设备 |
CN115858046A (zh) * | 2023-02-28 | 2023-03-28 | 荣耀终端有限公司 | 一种预加载内存页的方法、电子设备及芯片系统 |
CN115981573A (zh) * | 2023-02-16 | 2023-04-18 | 荣耀终端有限公司 | 数据管理方法、电子设备及计算机可读写存储介质 |
CN117130541A (zh) * | 2023-03-02 | 2023-11-28 | 荣耀终端有限公司 | 存储空间配置方法及相关设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729305A (zh) * | 2012-10-11 | 2014-04-16 | 财团法人工业技术研究院 | 虚拟机的存储器管理的方法和计算机系统 |
CN104050055A (zh) * | 2013-03-15 | 2014-09-17 | 索尼公司 | 电子设备、创建快照映像的方法和程序 |
CN104794182A (zh) * | 2015-04-10 | 2015-07-22 | 中国科学院计算技术研究所 | 一种并行网络文件系统小文件异步预读装置及方法 |
US20180032260A1 (en) * | 2016-07-29 | 2018-02-01 | Samsung Electronics Co., Ltd. | System and method for integrating overprovisioned memory devices |
CN107704321A (zh) * | 2017-09-30 | 2018-02-16 | 北京元心科技有限公司 | 内存分配的方法、装置及终端设备 |
CN111984413A (zh) * | 2020-08-20 | 2020-11-24 | Oppo(重庆)智能科技有限公司 | 内存回收方法、装置、电子设备及存储介质 |
US10901627B1 (en) * | 2017-02-28 | 2021-01-26 | Amazon Technologies, Inc. | Tracking persistent memory usage |
CN113722087A (zh) * | 2021-06-10 | 2021-11-30 | 荣耀终端有限公司 | 虚拟内存管理方法和电子设备 |
US20220035655A1 (en) * | 2019-04-15 | 2022-02-03 | Oneplus Technology (Shenzhen) Co., Ltd. | Method and Device for Anonymous Page Management, Terminal Device, and Readable Storage Medium |
-
2022
- 2022-02-16 CN CN202210143582.3A patent/CN114185494B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729305A (zh) * | 2012-10-11 | 2014-04-16 | 财团法人工业技术研究院 | 虚拟机的存储器管理的方法和计算机系统 |
CN104050055A (zh) * | 2013-03-15 | 2014-09-17 | 索尼公司 | 电子设备、创建快照映像的方法和程序 |
CN104794182A (zh) * | 2015-04-10 | 2015-07-22 | 中国科学院计算技术研究所 | 一种并行网络文件系统小文件异步预读装置及方法 |
US20180032260A1 (en) * | 2016-07-29 | 2018-02-01 | Samsung Electronics Co., Ltd. | System and method for integrating overprovisioned memory devices |
US10901627B1 (en) * | 2017-02-28 | 2021-01-26 | Amazon Technologies, Inc. | Tracking persistent memory usage |
CN107704321A (zh) * | 2017-09-30 | 2018-02-16 | 北京元心科技有限公司 | 内存分配的方法、装置及终端设备 |
US20220035655A1 (en) * | 2019-04-15 | 2022-02-03 | Oneplus Technology (Shenzhen) Co., Ltd. | Method and Device for Anonymous Page Management, Terminal Device, and Readable Storage Medium |
CN111984413A (zh) * | 2020-08-20 | 2020-11-24 | Oppo(重庆)智能科技有限公司 | 内存回收方法、装置、电子设备及存储介质 |
CN113722087A (zh) * | 2021-06-10 | 2021-11-30 | 荣耀终端有限公司 | 虚拟内存管理方法和电子设备 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114741205A (zh) * | 2022-06-02 | 2022-07-12 | 荣耀终端有限公司 | 一种匿名页回收方法及电子设备 |
CN114741205B (zh) * | 2022-06-02 | 2022-11-11 | 荣耀终端有限公司 | 一种匿名页回收方法及电子设备 |
CN115981573A (zh) * | 2023-02-16 | 2023-04-18 | 荣耀终端有限公司 | 数据管理方法、电子设备及计算机可读写存储介质 |
CN115981573B (zh) * | 2023-02-16 | 2024-07-23 | 荣耀终端有限公司 | 数据管理方法、电子设备及计算机可读写存储介质 |
CN115858046A (zh) * | 2023-02-28 | 2023-03-28 | 荣耀终端有限公司 | 一种预加载内存页的方法、电子设备及芯片系统 |
CN117130541A (zh) * | 2023-03-02 | 2023-11-28 | 荣耀终端有限公司 | 存储空间配置方法及相关设备 |
CN117130541B (zh) * | 2023-03-02 | 2024-06-04 | 荣耀终端有限公司 | 存储空间配置方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114185494B (zh) | 2022-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114185494B (zh) | 内存匿名页的处理方法、电子设备及可读存储介质 | |
CN109992523B (zh) | 内存处理方法和装置、电子设备、计算机可读存储介质 | |
CN111274039B (zh) | 内存回收方法、装置、存储介质及电子设备 | |
WO2019137252A1 (zh) | 内存处理方法、电子设备、计算机可读存储介质 | |
WO2021218370A1 (zh) | 一种内存管理方法及终端设备 | |
CN114840450B (zh) | 一种存储空间整理方法及电子设备 | |
WO2024179104A1 (zh) | 一种预加载内存页的方法、电子设备及芯片系统 | |
WO2019128542A1 (zh) | 应用处理方法、电子设备、计算机可读存储介质 | |
CN113495744B (zh) | 一种版本升级方法及相关装置 | |
WO2023070462A1 (zh) | 一种文件去重方法、装置和设备 | |
CN115981573B (zh) | 数据管理方法、电子设备及计算机可读写存储介质 | |
WO2023237047A1 (zh) | 数据处理方法及电子设备 | |
CN110032421B (zh) | 内存中图集的管理方法、装置、终端及存储介质 | |
CN116166573B (zh) | 控制内存回收的方法、电子设备及存储介质 | |
CN117707639A (zh) | 应用启动加速方法、电子设备及存储介质 | |
CN115033193B (zh) | 转屏处理方法、装置、介质及电子设备 | |
CN116049021B (zh) | 存储空间管理方法、电子设备及计算机可读存储介质 | |
CN116662222B (zh) | 缓存管理方法及相关设备 | |
CN116661645B (zh) | 显示应用卡片的方法、电子设备及可读存储介质 | |
CN116049113B (zh) | 文件系统的整理方法、电子设备及计算机可读存储介质 | |
CN117130767B (zh) | 回收内存的方法、电子设备及存储介质 | |
CN114461405B (zh) | 一种内存中锁定页面的存储方法及相关装置 | |
CN118444839A (zh) | 数据处理方法、电子设备及存储介质 | |
WO2024179306A1 (zh) | 管理缩略图的方法及相关装置 | |
CN116719752A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230906 Address after: 201306 building C, No. 888, Huanhu West 2nd Road, Lingang New Area, 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. |