CN111858057B - 运行内存的分配方法、装置、计算机设备以及存储介质 - Google Patents

运行内存的分配方法、装置、计算机设备以及存储介质 Download PDF

Info

Publication number
CN111858057B
CN111858057B CN202010723095.5A CN202010723095A CN111858057B CN 111858057 B CN111858057 B CN 111858057B CN 202010723095 A CN202010723095 A CN 202010723095A CN 111858057 B CN111858057 B CN 111858057B
Authority
CN
China
Prior art keywords
type
page
pages
target
computer 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.)
Active
Application number
CN202010723095.5A
Other languages
English (en)
Other versions
CN111858057A (zh
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.)
Oppo Chongqing Intelligent Technology Co Ltd
Original Assignee
Oppo Chongqing Intelligent 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 Oppo Chongqing Intelligent Technology Co Ltd filed Critical Oppo Chongqing Intelligent Technology Co Ltd
Priority to CN202010723095.5A priority Critical patent/CN111858057B/zh
Publication of CN111858057A publication Critical patent/CN111858057A/zh
Application granted granted Critical
Publication of CN111858057B publication Critical patent/CN111858057B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/5022Mechanisms to release resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请公开了一种运行内存的分配方法、装置、计算机设备以及存储介质,属于计算机技术领域。所述方法用于计算机设备中,所述方法包括:根据页面申请请求,获取第一页面数量;响应于第一页面数量小于目标数量,将运行内存回收;在回收运行内存的过程中,获取回收属性;响应于回收属性满足目标回收属性,获取第一数量差值的第三类型的页面;将第一页面数量的目标类型的页面以及第一数量差值的第三类型的页面,作为计算机设备响应于页面申请请求进行分配的分配页面。本申请可以通过计算机设备灵活将第三类型的页面充当第一类型的页面来分配,增加了计算机设备分配运行内存的灵活性,提高了计算机设备分配运行内存的效率。

Description

运行内存的分配方法、装置、计算机设备以及存储介质
技术领域
本申请涉及计算机技术领域,特别涉及一种运行内存的分配方法、装置、计算机设备以及存储介质。
背景技术
随着计算机技术的快速发展,在人们的日常生活中可以使用各种各样的计算机设备。其中,计算机设备的运行内存往往是人们较为关注的。
目前,对于计算机设备的操作***来说,计算机设备的操作***可以对自身的运行内存进行管理、分配等。其中,对于运行内存的分配,操作***往往是通过页面的形式将运行内存划分,然后按照划分好的运行内存进行分配。当计算机设备中需要使用运行内存时,操作***可以分配对应数量的页面,从而实现分配对应大小的运行内存,进而保证计算机设备的正常运行。在这些页面中,计算机设备还会这些页面分类,赋予对应的页面类型,比如:A类型、B类型等。
在相关技术中,当计算机设备的运行内存不够分配时,往往会通过执行内存回收,再将回收的运行内存重新分配,导致计算机设备分配运行内存花费的时间长、效率低等问题。
发明内容
本申请实施例提供了一种运行内存的分配方法、装置、计算机设备以及存储介质,可以提高计算机设备在某一类型的页面不够时,分配运行内存的效率。所述技术方案如下:
一个方面,本申请实施例提供了一种运行内存的分配方法,所述方法由计算机设备执行,所述方法包括:
根据页面申请请求,获取第一页面数量,所述页面申请请求用于请求分配目标数量的第一类型的页面,所述页面用于指示所述计算机设备中运行内存的划分结果,所述第一页面数量是目标类型的所述页面的数量,所述目标类型包括所述第一类型和第二类型;
响应于所述第一页面数量小于所述目标数量,将所述运行内存回收;
在回收所述运行内存的过程中,获取回收属性,所述回收属性用于指示所述计算机设备回收所述运行内存的效率或者时长中的至少一项;
响应于所述回收属性满足目标回收属性,获取第一数量差值的第三类型的所述页面,所述第一数量差值是所述目标数量与所述第一页面数量的差值,其中,所述第一类型的页面与所述第二类型的页面的匹配度,高于所述第一类型的页面与所述第三类型的页面的匹配度;
将所述第一页面数量的所述目标类型的所述页面以及所述第一数量差值的所述第三类型的所述页面,作为所述计算机设备响应于所述页面申请请求进行分配的分配页面。
另一方面,本申请实施例提供了一种运行内存的分配装置,所述装置用于计算机设备中,所述装置包括:
数量获取模块,用于根据页面申请请求,获取第一页面数量,所述页面申请请求用于请求分配目标数量的第一类型的页面,所述页面用于指示所述计算机设备中运行内存的划分结果,所述第一页面数量是目标类型的所述页面的数量,所述目标类型包括所述第一类型和第二类型;
内存回收模块,用于响应于所述第一页面数量小于所述目标数量,将所述运行内存回收;
属性获取模块,用于在回收所述运行内存的过程中,获取回收属性,所述回收属性用于指示所述计算机设备回收所述运行内存的效率或者时长;
页面获取模块,用于响应于所述回收属性满足目标回收属性,获取第一数量差值的第三类型的所述页面,所述第一数量差值是所述目标数量与所述第一页面数量的差值,其中,所述第一类型的页面与所述第二类型的页面的匹配度,高于所述第一类型的页面与所述第三类型的页面的匹配度;
页面分配模块,用于将所述第一页面数量的所述目标类型的所述页面以及所述第一数量差值的所述第三类型的所述页面,作为所述计算机设备响应于所述页面申请请求进行分配的分配页面。
另一方面,本申请实施例提供了一种计算机设备,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上所述的运行内存的分配方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上所述的运行内存的分配方法。
另一方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行上述一个方面提供的运行内存的分配方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
本申请通过计算机设备在运行内存回收过程中,获取用于指示计算机设备回收运行内存的效率或者时长中的至少一项的回收属性,在该回收属性满足目标回收属性时,获取与第一类型的匹配度更低的第三类型的页面,从而灵活将第三类型的页面充当第一类型的页面来分配,避免了在回收运行内存时,计算机设备分配太久导致的分配效率低的问题,增加了计算机设备分配运行内存的灵活性,提高了计算机设备分配运行内存的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一示例性实施例提供的一种运行内存的分配方法的方法流程图;
图2是本申请一示例性实施例提供的一种运行内存的分配方法的方法流程图;
图3是本申请一示例性实施例提供的一种运行内存的分配方法的方法流程图;
图4是本申请一示例性实施例提供的一种运行内存的分配方法的方法流程图;
图5是本申请一示例性实施例提供的运行内存的分配装置的结构框图;
图6是本申请一示例性实施例提供的一种计算机设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
本申请提供的方案,可以用于人们在日常生活中使用具有运行内存的计算机设备时,计算机设备响应自身的应用程序的运行,为运行的应用程序分配运行内存的现实场景中,为了便于理解,下面首先对本申请实施例涉及的一些名词以及终端的结构进行简单介绍。
操作***(Operating System,OS)是管理和控制计算机设备的硬件与软件资源的计算机程序,是管理计算机设备硬件资源,控制其他程序运行并为用户提供交互操作界面的***软件的集合。
运行内存(Random Access Memory,RAM):指计算机设备运行应用程序时的内存,也可以称为运存或者随机存取存储器或者***内存。运行内存通常可以作为操作***或其他正在运行程序的临时存储介质。
Linux操作***:是基于Unix(尤尼斯)操作***发展而来的一种克隆***。
随着计算机技术领域的快速发展,极大地方便了人们的日常生活。其中,用户可以通过使用计算机设备运行各种各样的应用程序,计算机设备运行各种各样的应用程序的过程中,计算机设备的操作***往往会对运行的应用程序分配对应大小的运行内存,从而保证自身的正常运作。
可选地,上述计算机设备可以是具有运行内存的终端,比如,该终端可以是手机、平板电脑、电子书阅读器、智能眼镜、智能手表、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑、膝上型便携计算机和台式计算机等等。
可选地,上述计算机设备也可以是一台服务器,或者由若干台服务器,或者是一个虚拟化平台,或者是一个云计算服务中心。
可选地,上述计算机设备的操作***可以是Android(安卓)操作***、BSD(Berkeley Software Distribution,伯克利软件套件)操作***、iOS操作***、Linux操作***、Mac OS X操作***、Windows(视窗)操作***、Windows Phone(WP)操作***和z/OS操作***等中的任意一种。
在一种可能实现的方式中,上述计算机设备的操作***通过也可以按照页面分配的方式对自身的运行内存进行管理分配。比如,对于计算机设备来说,其操作***是Linux操作***,运行内存的大小为6GB(吉字节),计算机设备可以基于自身的Linux操作***将大小为6GB的运行内存进行划分,得到各个类型的页面,通过调用、分配这些页面实现对运行内存的管理分配。
其中,计算机设备的操作***对运行内存进行划分后,得到固定数量的各种类型的页面。比如,第一类型的页面为5个,第二类型的页面为3个,第三类型的页面为8个,第四类型的页面为4个,第五类型的页面为3个等等。计算机设备的操作***在运行应用程序时,若该应用程序的运行需要2个第二类型的页面,那么,计算机设备的操作***可以相应的从已经划分好的这些页面中分配出2个第二类型的页面给该应用程序,实现计算机设备正常运行该应用程序。
可选地,如果某个应用程序需要***作***分配2个第四类型的页面,并且,此时计算机设备中4个第四类型的页面都被占用(相当于该类型的页面被耗尽),或者剩余1个第四类型的页面,计算机设备的操作***暂时不能分配2个第四类型的页面给该应用程序,此时计算机设备可以将分配出去的运行内存进行回收,使得第四类型的页面的数量多于两个,再给该应用程序分配2个第四类型的页面。
在相关技术中,为了提高计算机设备分配运行内存的效率,在上述4个第四类型的页面都被占用的情况下,操作***也可以不进行内存回收,获取与第四类型的页面匹配度较高的页面(比如:第一类型的页面、第二类型的页面)。可选地,不同类型的页面之间的匹配度可以由开发人员设定。即,当某个应用程序需要***作***分配2个第四类型的页面,并且,此时计算机设备中4个第四类型的页面都被占用时,操作***还可以在第一类型的页面的数量多于2个的情况下,获取2个第一类型的页面,将这2个第一类型的页面分配给该应用程序使用,从而避免计算机设备对运行内存进行回收带来的延迟问题。
然而,在计算机设备中,由于某个类型的页面对应的匹配度较高的页面也可能存在被耗尽的情况,而此时如果某个类型的页面对应的匹配度较低的页面存在空闲,按照相关技术,这种匹配度较低的页面并不会被计算机设备获取,从而执行运行内存的回收。
例如,上述第四类型的页面与第五类型的页面之间的匹配度较低,第四类型的页面与第一类型的页面、第二类型的页面之间的匹配度高于第四类型的页面与第五类型的页面之间的匹配度,操作***在需要分配第四类型的页面,且第四类型的页面的数量不够时,操作***可以获取第一类型的页面、第二类型的页面,但不能获取第五类型的页面,此时,如果在计算机设备中出现第一类型的页面、第二类型的页面出现被耗尽,第五类型的页面存在剩余的情况,此时操作***并不能获取第五类型的页面,而执行运行内存的回收,同样容易导致计算机设备分配运行内存花费的时间长、效率低等问题。在本申请中,计算机设备也可以获取第五类型的页面,并将第五类型的页面分配给当前需要的应用程序,从而降低计算机设备分配运行内存花费的时间长,提高计算机设备分配运行内存的效率。
为了降低计算机设备分配运行内存花费的时间长,提高计算机设备分配运行内存的效率,本申请提供了一种解决方案,请参考图1,其示出了本申请一示例性实施例提供的一种运行内存的分配方法的方法流程图。该方法可以应用于上述具有运行内存的计算机设备中,由该计算机设备执行。如图1所示,该运行内存的分配方法可以包括以下几个步骤:
步骤101,根据页面申请请求,获取第一页面数量。
其中,页面申请请求用于请求分配目标数量的第一类型的页面,该页面用于指示计算机设备中运行内存的划分结果,第一页面数量是目标类型的页面的数量,目标类型包括第一类型和第二类型。即,计算机设备可以根据页面申请请求,获取包含页面申请请求所请求分配的第一类型的页面以及第二类型的页面的数量。
可选地,页面申请请求可以是计算机设备中运行应用程序时生成的,目标数量可以由该应用程序决定。该应用程序可以是计算机设备自带的应用程序,也可以是计算机设备后续安装的应用程序。
步骤102,响应于第一页面数量小于目标数量,将运行内存回收。
可选地,计算机设备可以检测第一页面数量与目标数量之间的大小关系,在第一页面数量小于目标数量的情况下,执行回收运行内存的步骤。
步骤103,在回收运行内存的过程中,获取回收属性,回收属性用于指示计算机设备回收运行内存的效率或者时长中的至少一项。
可选地,计算机设备在回收运行内存的过程中,还可以将计算机设备回收运行内存的效率或者时长中的至少一项获取为回收属性。
步骤104,响应于回收属性满足目标回收属性,获取第一数量差值的第三类型的页面。
其中,第一数量差值是目标数量与第一页面数量的差值,其中,第一类型的页面与第二类型的页面的匹配度,高于第一类型的页面与第三类型的页面的匹配度。可选地,不同类型的页面之间的匹配度可以由开发人员预先设定。
可选地,计算机设备可以检测回收属性与目标回收属性之间的关系,在获取的回收属性满足目标回收属性的情况下,获取第一数量差值的第三类型的页面。
步骤105,将第一页面数量的目标类型的页面以及第一数量差值的第三类型的页面,作为计算机设备响应于页面申请请求进行分配的分配页面。
即,计算机设备将第一页面数量的目标类型的页面以及第一数量差值的第三类型的页面分配出来,响应该页面申请请求,保证计算机设备的正常运行。
综上所述,本申请通过计算机设备在运行内存回收过程中,获取用于指示计算机设备回收运行内存的效率或者时长中的至少一项的回收属性,在该回收属性满足目标回收属性时,获取与第一类型的匹配度更低的第三类型的页面,从而灵活将第三类型的页面充当第一类型的页面来分配,避免了在回收运行内存时,计算机设备分配太久导致的分配效率低的问题,增加了计算机设备分配运行内存的灵活性,提高了计算机设备分配运行内存的效率。
在一种可能实现的方式中,在计算机设备运行某个应用程序或者代码时,计算机设备可以创建相应的进程,并对创建的进程主动生成页面申请请求,通过该页面申请请求,计算机设备的操作***自动分配目标数量的某一类型的页面。
其中,以计算机设备主动生成页面申请请求,开发人员设置的回收属性是用于指示计算机设备回收运行内存的效率为例,对上述图1所示的方案进行举例介绍。请参考图2,其示出了本申请一示例性实施例提供的一种运行内存的分配方法的方法流程图。该方法可以应用于上述具有运行内存的计算机设备中,由该计算机设备执行。如图2所示,该运行内存的分配方法可以包括以下几个步骤:
步骤201,响应于第一进程的触发操作,生成页面申请请求。
其中,第一进程是计算机设备中产生的任意一个进程。页面申请请求用于请求分配目标数量的第一类型的页面,页面用于指示计算机设备中运行内存的划分结果。可选地,第一类型可以由应用程序自身决定。
可选地,在计算机设备中对运行内存进行划分后,便可以得到各种类型的页面,计算机设备通过各种类型的页面对运行内存进行分配。当计算机设备中运行某个应用程序或者执行某个代码程序时,计算机设备可以相应的创建一个进程,该进程需要一定大小的运行内存,此时,计算机设备可以相应地生成页面申请请求,请求对应大小的运行内存,即,请求操作***为其分配某一数量的某一类型的页面。
比如,计算机设备的运行内存是4GB,操作***对计算机设备的运行内存进行划分后,得到A类型的页面为5个,B类型的页面为3个,C类型的页面为8个,D类型的页面为4个。当第一应用程序在计算机设备中运行时,计算机设备创建一个进程,计算机设备可以响应该进程的创建,生成页面申请请求,请求操作***分配3个A类型的页面。
步骤202,记录生成页面申请请求的时间。
可选地,在本申请实施例中,计算机设备可以在生成页面申请请求时,记录下当前生成页面申请请求的时间。比如,在计算机设备在11点12分生成一个页面申请请求,计算机设备可以对应该页面申请请求记录11点12分,表示该页面申请请求的创建时间。
步骤203,根据页面申请请求,获取第一类型。
可选地,计算机设备可以从页面申请请求中获取到其所要请求分配的页面的类型和数量。即,如果上述页面申请请求需要获取目标数量的第一类型的页面,那么,计算机设备可以根据页面申请请求,获取到第一类型和目标数量。例如,如果上述页面申请请求需要获取3个A类型的页面,那么,计算机设备可以根据页面申请请求,获取到A类型和3。
步骤204,根据第一类型,获取第一页面数量。
其中,第一页面数量是目标类型的页面的数量,目标类型包括第一类型和第二类型。即,计算机设备可以根据上述得到的第一类型,直接获取第一类型的页面数量和第二类型的页面数量。其中,第一类型的页面与第二类型的页面之间的匹配度高于匹配度阈值。
可选地,开发人员可以设置第一匹配表格,其中,第一匹配表格中包含各个类型各自对应的匹配度高于匹配度阈值的类型。请参考表1,其示出了本申请一示例性实施例中涉及的一种第一匹配表格的对应关系表。
第一类型 第二类型
A类型 B类型、C类型、D类型
B类型 A类型、C类型、D类型
C类型 A类型、D类型
…… ……
表1
如表1所示,其中,如果第一类型是A类型,那么与第一类型的页面之间的匹配度高于匹配度阈值有B类型、C类型、D类型等。
可选地,计算机设备在根据第一类型,获取第一页面数量时,可以先根据第一类型,获取第一类型的页面的数量。判断第一类型的页面数量是否小于上述页面申请请求中所请求的目标数量,计算机设备响应于第一类型的页面的数量小于目标数量,根据第一类型以及第一匹配关系,获取第二类型;根据第二类型,获取第二类型的页面的数量;根据第一类型的页面的数量以及第二类型的页面的数量,获取第一页面数量。
即,计算机设备根据第一类型,从自身剩余的各种类型的页面中,查找第一类型的页面,并统计得到的剩余的第一类型的页面的数量。比如,第一类型为A类型,计算机设备得到A类型后,查找到自身剩余的各种类型的页面中A类型的页面的数量为2个,那么,计算机设备获取第一类型的页面的数量为2。
可选地,如果上述页面申请请求中所请求的目标数量为3,那么计算机设备在获取到第一类型的同时,获取到目标数量为3,本步骤中,计算机设备可以判断获取到的第一类型的页面数量是否小于上述页面申请请求中所请求的目标数量。此处,A类型的页面的数量为2个,目标数量为3,计算机设备判断出获取到的第一类型的页面数量是小于上述页面申请请求中所请求的目标数量的,那么,根据第一类型以及第一匹配关系,获取第二类型,即根据上述表1,查询到第一类型对应的第二类型,并根据第二类型,获取第二类型的页面的数量。此处,计算机设备根据第二类型获取第二类型的页面的数量的方式,可以参照计算机设备根据第一类型获取第一类型的页面的数量的方式,此处不再赘述。
计算机设备在得到第一类型的页面的数量以及第二类型的页面的数量后,可以将两者求和,得到第一页面数量。比如,上述A类型的页面的数量为2个,B类型的页面的数量为1个、C类型的页面的数量为0个、D类型的页面的数量为2个,那么,计算机设备得到的第一页面数量为5。
可选地,计算机设备如果判断出第一类型的页面的数量不小于目标数量,那么计算机设备还可以响应于第一类型的页面的数量不小于目标数量,获取目标数量的第一类型的页面;将目标数量的第一类型的页面作为计算机设备响应于页面申请请求进行分配的分配页面。
也就是说,在本步骤中,如果计算机设备判断出第一类型的页面的数量不小于目标数量,说明计算机设备中剩余的第一类型的页面的数量足以满足此次页面申请请求中所请求的目标数量,计算机设备可以直接从剩余的第一类型的页面中分配目标数量的第一类型的页面给第一进程,完成响应页面申请请求,结束本次流程。
步骤205,响应于第一页面数量小于目标数量,将运行内存回收。
可选地,在得到第一页面数量后,计算机设备可以判断第一页面数量与目标数量之间的大小关系,并响应于第一页面数量小于目标数量,执行对运行内存的回收。比如,计算机设备根据第一类型,得到的第一页面数量为3,而目标数量为5,计算机设备可以判断出第一页面数量小于目标数量,说明计算机设备中此时剩余的第一页面数量不能满足页面申请请求的需求,需要将已经分配出去的页面进行回收,重新对该第一进程分配页面。
步骤206,获取运行内存的回收时间以及回收的运行内存的大小。
可选地,计算机设备可以在运行内存回收的过程中,周期性地获取运行内存的回收时间以及已经回收的运行内存的大小。比如,计算机设备中每隔2毫秒采集一次运行内存的回收情况,包括此次运行内存的回收时间点和回收内存大小。比如,在11点20分,计算机设备回收到的运行内存为156MB(兆字节),那么,计算机设备获取到的运行内存的回收时间点是11点20分,回收的运行内存的大小为156MB。
步骤207,根据生成页面申请请求的时间、运行内存的回收时间以及回收的运行内存的大小,获取回收属性,回收属性用于指示计算机设备回收运行内存的效率。
可选地,本申请实施例中是以回收属性用于指示计算机设备回收运行内存的效率为例的,因此,在本步骤中,计算机设备可以根据生成页面申请请求的时间、运行内存的回收时间以及回收的运行内存的大小,获取到计算机设备回收运行内存的效率。
比如,在计算机设备响应于第一页面数量小于目标数量,执行运行内存回收的过程中,计算机设备在第一时刻获取运行内存的回收时间以及已经回收的运行内存的大小,将上述步骤202中记录的生成页面申请请求的时间与此时得到的第一时刻相减,得到第一时长,该第一时长用于指示计算机设备从生成页面申请请求至回收运行内存的时间段。
根据已经回收的运行内存的大小除以第一时长,得到回收效率,将该回收效率作为回收属性。比如,在上述步骤202中记录的生成页面申请请求的时间为11点15分,在步骤206中获取到的运行内存的回收时间是11点15分20毫秒,已经回收的运行内存的大小为156MB,那么,计算机设备可以得到第一时长为20毫秒(ms),回收效率为7.8MB/ms,将该回收效率作为回收属性。
步骤208,响应于回收属性小于回收效率阈值,获取第一数量差值的第三类型的页面。
其中,第一数量差值是目标数量与第一页面数量的差值,其中,第一类型的页面与第二类型的页面的匹配度,高于第一类型的页面与第三类型的页面的匹配度。
可选地,开发人员可以设置第二匹配表格,其中,第二匹配表格中包含各个类型各自对应的匹配度低于匹配度阈值的类型。请参考表2,其示出了本申请一示例性实施例中涉及的一种第二匹配表格的对应关系表。
第一类型 第三类型
A类型 E类型
B类型 F类型、H类型
C类型 G类型
…… ……
表2
如表2所示,其中,如果第一类型是A类型,那么与第一类型的页面之间的匹配度低于匹配度阈值的有E类型。
可选地,计算机设备获取第三类型的页面的方式可以如下:计算机设备响应于回收属性满足目标回收属性,根据第一类型以及第二匹配关系,获取第三类型;根据目标数量以及第一页面数量,获取第一数量差值;根据第三类型以及述第一数量差值,获取第一数量差值的第三类型的页面。
其中,计算机设备根据第三类型以及述第一数量差值,获取第一数量差值的第三类型的页面的方式可以如下:根据第三类型,获取第二页面数量,第二页面数量是第三类型的页面的数量;响应于第二页面数量不小于第一数量差值,获取第一数量差值的第三类型的页面。
即,计算机设备可以对上述得到的回收属性进行判断,在本申请实施例中,回收属性是用于指示计算机设备回收运行内存的效率,相应的,计算机设备中可以预先设置有回收效率阈值,计算机设备将计算得到的回收效率与回收效率阈值进行比较,在回收属性小于回收效率阈值的情况下,获取第一数量差值的第三类型的页面。
例如,计算机设备可以计算出上述目标数量与第一页面数量之间的差值,在第一页面数量小于目标数量,且回收属性小于回收效率阈值的情况下,计算机设备可以根据上述表2得到第三类型,并查询自身剩余的第三类型的页面,获取到第二页面数量,判断第二页面数量与第一数量差值之间的大小关系,在第二页面数量不小于第一数量差值的情况下,计算机设备获取第一数量差值的第三类型的页面。比如,上述页面申请请求用于请求分配3个A类型的页面,计算机设备在上述过程中得到第一页面数量(包括B类型、C类型、D类型)为2,并且判断出回收效率小于回收效率阈值(即,回收属性满足目标回收属性),计算机设备获取第一数量差值(1个)的E类型的页面。
在一种可能实现的方式中,计算机设备还可以响应于第二页面数量小于第一数量差值,将运行内存回收;从回收到的运行内存对应的页面中获取第一数量差值的第一类型的页面;将第一页面数量的目标类型的页面、第二页面数量的第三类型的页面以及第一数量差值的第一类型的页面,作为计算机设备响应于页面申请请求进行分配的分配页面。
即,第三类型的页面的数量也不足以满足该第一进程的需求,此时,计算机设备可以将运行内存回收,直接从回收到的运行内存对应的页面中获取第一数量差值的第一类型的页面。可选地,计算机设备从回收到的运行内存对应的页面中获取第一数量差值的第一类型的页面的方式,可以参照上述计算机设获取目标数量的第一类型的页面的方式,此处不再赘述,最终将第一页面数量的目标类型的页面、第二页面数量的第三类型的页面以及第一数量差值的第一类型的页面,作为计算机设备响应于页面申请请求进行分配的分配页面,结束此次页面分配的流程。
在一种可能实现的方式中,计算机设备还可以响应于回收属性不满足目标回收属性,从回收到的运行内存对应的页面中获取第一数量差值的第一类型的页面;将第一页面数量的目标类型的页面以及第一数量差值的第一类型的页面,作为计算机设备响应于页面申请请求进行分配的分配页面。即,上述计算机设备获取的回收效率大于回收效率阈值,计算机设备可以直接从回收到的运行内存对应的页面中获取第一数量差值的第一类型的页面;最终将第一页面数量的目标类型的页面以及第一数量差值的第一类型的页面,作为计算机设备响应于页面申请请求进行分配的分配页面,结束此次页面分配的流程。
步骤209,将第一页面数量的目标类型的页面以及第一数量差值的第三类型的页面,作为计算机设备响应于页面申请请求进行分配的分配页面。
可选地,计算机设备将从剩余目标类型的页面中获取第一页面数量的目标类型的页面,以及从剩余的第三类型的页面中第一数量差值的第三类型的页面,将这些页面作为计算机设备响应于页面申请请求进行分配的分配页面,结束此次页面分配的流程。
在一种可能实现的方式中,计算机设备可以响应于第一页面数量不小于目标数量,获取目标数量的目标类型的页面;将目标数量的目标类型的页面,作为计算机设备响应于页面申请请求进行分配的分配页面。即,在上述步骤205中,判断出第一页面数量是不小于目标数量的,说明计算机设备中剩余的目标类型的页面可以满足页面申请请求,因此,计算机设备可以直接获取目标数量的目标类型的页面,并将这些页面进行分配即可。
综上所述,本申请通过计算机设备在运行内存回收过程中,获取用于指示计算机设备回收运行内存的效率或者时长中的至少一项的回收属性,在该回收属性满足目标回收属性时,获取与第一类型的匹配度更低的第三类型的页面,从而灵活将第三类型的页面充当第一类型的页面来分配,避免了在回收运行内存时,计算机设备分配太久导致的分配效率低的问题,增加了计算机设备分配运行内存的灵活性,提高了计算机设备分配运行内存的效率。
在一种可能实现的方式中,以计算机设备主动生成页面申请请求,开发人员设置的回收属性是用于指示计算机设备回收运行内存的时长为例,对上述图1所示的方案进行举例介绍。
请参考图3,其示出了本申请一示例性实施例提供的一种运行内存的分配方法的方法流程图。该方法可以应用于上述具有运行内存的计算机设备中,由该计算机设备执行。如图3所示,该运行内存的分配方法可以包括以下几个步骤:
步骤301,响应于第一进程的触发操作,生成页面申请请求。
步骤302,记录生成页面申请请求的时间。
步骤303,根据页面申请请求,获取第一类型。
步骤304,根据第一类型,获取第一页面数量。
步骤305,响应于第一页面数量小于目标数量,将运行内存回收。
其中,步骤301至步骤305中的描述可以参照上述图2实施例中步骤201至步骤205中的描述,此处不再赘述。
步骤306,获取运行内存的回收时间。
可选地,计算机设备可以在运行内存回收的过程中,也可以周期性地获取运行内存的回收时间。比如,计算机设备中每隔2毫秒采集一次运行内存的回收情况,包括此次运行内存的回收时间点。比如,在11点20分计算机设备开支执行运行内存的回收,在运行内存的回收过程中,获取了一次运行内存的回收时间为11点20分20毫秒。
步骤307,根据生成页面申请请求的时间以及运行内存的回收时间,获取回收属性,回收属性用于指示计算机设备回收运行内存的时长。
可选地,本申请实施例中是以回收属性用于指示计算机设备回收运行内存的时长为例的,因此,在本步骤中,计算机设备可以根据生成页面申请请求的时间以及运行内存的回收时间,获取两者的时间差,将两者的时间差作为计算机设备回收运行内存的时长。
比如,在计算机设备响应于第一页面数量小于目标数量,执行运行内存回收的过程中,计算机设备在第一时刻获取运行内存的回收时间,将上述步骤302中记录的生成页面申请请求的时间与此时得到的第一时刻相减,得到第一时长,该第一时长作为回收属性。
步骤308,响应于回收属性不大于回收延迟阈值,获取第一数量差值的第三类型的页面。
即,计算机设备可以对上述得到的回收属性进行判断,在本申请实施例中,回收属性是用于指示计算机设备回收运行内存的时长,相应的,计算机设备中可以预先设置有回收延迟阈值,计算机设备将计算得到的第一时长与回收延迟阈值进行比较,在第一时长大于回收效率阈值的情况下,获取第一数量差值的第三类型的页面。
可选地,本步骤中获取第一数量差值的第三类型的页面的方式也可以参照上述步骤208中的描述,此处不再赘述。
步骤309,将第一页面数量的目标类型的页面以及第一数量差值的第三类型的页面,作为计算机设备响应于页面申请请求进行分配的分配页面。
其中,步骤308至步骤309中的描述可以参照上述图2实施例中步骤208至步骤209中的描述,此处不再赘述。
综上所述,本申请通过计算机设备在运行内存回收过程中,获取用于指示计算机设备回收运行内存的效率或者时长中的至少一项的回收属性,在该回收属性满足目标回收属性时,获取与第一类型的匹配度更低的第三类型的页面,从而灵活将第三类型的页面充当第一类型的页面来分配,避免了在回收运行内存时,计算机设备分配太久导致的分配效率低的问题,增加了计算机设备分配运行内存的灵活性,提高了计算机设备分配运行内存的效率。
下面,以上述图2实施例中,计算机设备的操作***是Linux操作***,各种类型的页面以Movable page可移动页面,Unmovable page不可移动页面,Highatomic page紧急页面,Reclaim page可回收页面,cma page连续页面几种界面举例,对上述图2所示实施例进行介绍。
请参考图4,其示出了本申请一示例性实施例提供的一种运行内存的分配方法的方法流程图。该方法可以用于具有运行内存的计算机设备中,由该计算机设备执行,如图4所示,该运行内存的分配方法可以包括以下几个步骤:
步骤401,生成页面申请请求。
可选的,用户可以提前在终端中开启语音唤醒功能,终端在开启语音唤醒功能的情况下,接收到唤醒语音后,可以将终端唤醒,从而执行本申请的其他步骤。在一种可能实现的方式中,用户可以在终端的设置界面中设置语音唤醒功能的开启和关闭,在本步骤中,用户将终端的语音唤醒功能开启。
步骤402,记录页面申请请求的生成时间。
其中,页面申请请求用于请求目标数量的可移动页面。
步骤403,检测是否存在目标数量的可移动页面。
若存在,执行步骤413,否则执行步骤404。
步骤404,获取目标数量与剩余的可移动页面的差值。
步骤405,检测是否存在目标数量与剩余的可移动页面的数量的差值的可回收页面。
即,可移动页面与可回收页面之间相当于上述第一类型和第二类型的页面。若存在,执行步骤413,若不存在,执行步骤406。
步骤406,执行运行内存的回收。
步骤407,在运行内存的回收过程中,获取运行内存的回收时刻。
步骤408,计算运行内存的回收时刻与页面申请请求的生成时间之间的时间差值。
即,本实施例中,也是以回收属性用于指示计算机设备回收运行内存的时长进行举例的。
步骤409,检测时间差值是否大于时间阈值。
若大于,则执行步骤410,否则执行步骤406。
步骤410,获取紧急页面。
其中,可移动页面与紧急页面之间相当于上述第一类型和第三类型的页面。
步骤411,检测紧急页面的数量是否大于目标数量与剩余的可移动页面的数量的差值。
若大于,执行步骤412,否则执行步骤406。
步骤412,偷取目标数量与剩余的可移动页面的数量的差值数量的紧急页面。
步骤413,进行页面分配。
综上所述,本申请通过计算机设备在运行内存回收过程中,获取用于指示计算机设备回收运行内存的效率或者时长中的至少一项的回收属性,在该回收属性满足目标回收属性时,获取与第一类型的匹配度更低的第三类型的页面,从而灵活将第三类型的页面充当第一类型的页面来分配,避免了在回收运行内存时,计算机设备分配太久导致的分配效率低的问题,增加了计算机设备分配运行内存的灵活性,提高了计算机设备分配运行内存的效率。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图5,其示出了本申请一示例性实施例提供的运行内存的分配装置的结构框图。该运行内存的分配装置500可以用于计算机设备中,以执行图1、图2、图3或者图4所示实施例提供的方法中由计算机设备执行的全部或者部分步骤。该运行内存的分配装置500可以包括:数量获取模块501,内存回收模块502,属性获取模块503,页面获取模块504以及页面分配模块505。
所述数量获取模块501,用于根据页面申请请求,获取第一页面数量,所述页面申请请求用于请求分配目标数量的第一类型的页面,所述页面用于指示所述计算机设备中运行内存的划分结果,所述第一页面数量是目标类型的所述页面的数量,所述目标类型包括所述第一类型和第二类型;
所述内存回收模块502,用于响应于所述第一页面数量小于所述目标数量,将所述运行内存回收;
所述属性获取模块503,用于在回收所述运行内存的过程中,获取回收属性,所述回收属性用于指示所述计算机设备回收所述运行内存的效率或者时长;
所述页面获取模块504,用于响应于所述回收属性满足目标回收属性,获取第一数量差值的第三类型的所述页面,所述第一数量差值是所述目标数量与所述第一页面数量的差值,其中,所述第一类型的页面与所述第二类型的页面的匹配度,高于所述第一类型的页面与所述第三类型的页面的匹配度;
所述页面分配模块505,用于将所述第一页面数量的所述目标类型的所述页面以及所述第一数量差值的所述第三类型的所述页面,作为所述计算机设备响应于所述页面申请请求进行分配的分配页面。
综上所述,本申请通过计算机设备在运行内存回收过程中,获取用于指示计算机设备回收运行内存的效率或者时长中的至少一项的回收属性,在该回收属性满足目标回收属性时,获取与第一类型的匹配度更低的第三类型的页面,从而灵活将第三类型的页面充当第一类型的页面来分配,避免了在回收运行内存时,计算机设备分配太久导致的分配效率低的问题,增加了计算机设备分配运行内存的灵活性,提高了计算机设备分配运行内存的效率。
可选的,响应于所述回收属性用于指示所述计算机设备回收所述运行内存的效率;
所述页面获取模块504,还用于响应于所述回收属性小于回收效率阈值,获取所述第一数量差值的所述第三类型的所述页面。
可选地,所述装置还包括:
请求生成模块,用于在所述根据页面申请请求,获取第一页面数量之前,响应于第一进程的触发操作,生成所述页面申请请求;
时间记录模块,用于记录所述生成所述页面申请请求的时间;
所述属性获取模块503,包括:第一获取单元和第二获取单元;
所述第一获取单元,用于获取所述运行内存的回收时间以及回收的所述运行内存的大小;
所述第二获取单元,用于根据所述生成所述页面申请请求的时间、所述运行内存的回收时间以及所述回收的所述运行内存的大小,获取所述回收属性。
可选地,响应于所述回收属性用于指示所述计算机设备回收所述运行内存的时长;
所述页面获取模块504,还用于响应于所述回收属性不大于回收延迟阈值,获取所述第一数量差值的所述第三类型的所述页面。
可选地,所述属性获取模块503,包括:第三获取单元和第四获取单元;
所述第三获取单元,用于获取所述运行内存的回收时间;
所述第四获取单元,用于根据所述运行内存的回收时间以及所述生成所述页面申请请求的时间,获取所述回收属性。
可选地,所述装置还包括:
第一获取模块,用于响应于所述回收属性不满足目标回收属性,从回收到的所述运行内存对应的所述页面中获取所述第一数量差值的所述第一类型的页面;
第一分配模块,用于将所述第一页面数量的所述目标类型的所述页面以及所述第一数量差值的所述第一类型的所述页面,作为所述计算机设备响应于所述页面申请请求进行分配的分配页面。
可选地,所述数量获取模块501,包括:第五获取单元和第六获取单元;
所述第五获取单元,用于根据所述页面申请请求,获取所述第一类型;
所述第六获取单元,用于根据所述第一类型,获取所述第一页面数量。
可选地,所述第六获取单元,包括:第一获取子单元,第二获取子单元,第三获取子单元和第四获取子单元;
所述第一获取子单元,用于根据所述第一类型,获取所述第一类型的所述页面的数量;
所述第二获取子单元,用于响应于所述第一类型的所述页面的数量小于所述目标数量,根据所述第一类型以及第一匹配关系,获取所述第二类型;
所述第三获取子单元,用于根据所述第二类型,获取所述第二类型的所述页面的数量;
所述第四获取子单元,用于根据所述第一类型的所述页面的数量以及所述第二类型的所述页面的数量,获取所述第一页面数量。
可选地,所述装置还包括:
第二获取模块,用于响应于所述第一类型的所述页面的数量不小于所述目标数量,获取所述目标数量的所述第一类型的所述页面;
第二分配模块,用于将所述目标数量的所述第一类型的所述页面作为所述计算机设备响应于所述页面申请请求进行分配的分配页面。
可选地,所述页面获取模块504,包括:第七获取单元,第八获取单元和第九获取单元;
所述第七获取单元,用于响应于所述回收属性满足所述目标回收属性,根据所述第一类型以及第二匹配关系,获取所述第三类型;
所述第八获取单元,用于根据所述目标数量以及所述第一页面数量,获取所述第一数量差值;
所述第九获取单元,用于根据所述第三类型以及所述述第一数量差值,获取所述第一数量差值的所述第三类型的所述页面。
可选地,所述第九获取单元,包括:第五获取子单元和第六获取子单元;
所述第五获取子单元,用于根据所述第三类型,获取第二页面数量,所述第二页面数量是所述第三类型的所述页面的数量;
所述第六获取子单元,用于响应于所述第二页面数量不小于所述第一数量差值,获取所述第一数量差值的所述第三类型的所述页面。
可选地,所述装置还包括:
第一回收模块,用于响应于所述第二页面数量小于所述第一数量差值,将所述运行内存回收;
第二获取模块,用于从回收到的所述运行内存对应的所述页面中获取所述第一数量差值的所述第一类型的页面;
所述页面分配模块505,还用于将所述第一页面数量的所述目标类型的所述页面、所述第二页面数量的所述第三类型的所述页面以及所述第一数量差值的所述第一类型的所述页面,作为所述计算机设备响应于所述页面申请请求进行分配的分配页面。
可选地,所述装置还包括:
第三获取模块,用于响应于所述第一页面数量不小于所述目标数量,获取所述目标数量的所述目标类型的所述页面;
第二分配模块,用于将所述目标数量的所述目标类型的所述页面,作为所述计算机设备响应于所述页面申请请求进行分配的分配页面。
图6是本申请一示例性实施例提供的一种计算机设备的结构示意图。如图6所示,计算机设备600包括中央处理单元(Central Processing Unit,CPU)601、包括随机存取存储器(Random Access Memory,RAM)602和只读存储器(Read Only Memory,ROM)603的***存储器604,以及连接***存储器604和中央处理单元601的***总线605。所述计算机设备600还包括帮助计算机内的各个器件之间传输信息的基本输入/输出***(Input/OutputSystem,I/O***)606,和用于存储操作***612、应用程序613和其他程序模块614的大容量存储设备607。
所述基本输入/输出***606包括有用于显示信息的显示器608和用于用户输入信息的诸如鼠标、键盘之类的输入设备609。其中所述显示器608和输入设备609都通过连接到***总线605的输入输出控制器610连接到中央处理单元601。所述基本输入/输出***606还可以包括输入输出控制器610以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器610还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备607通过连接到***总线605的大容量存储控制器(未示出)连接到中央处理单元601。所述大容量存储设备607及其相关联的计算机可读介质为计算机设备600提供非易失性存储。也就是说,所述大容量存储设备607可以包括诸如硬盘或者CD-ROM(Compact Disc Read-Only Memory,只读光盘)驱动器之类的计算机可读介质(未示出)。
所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM(Erasable Programmable Read Only Memory,可擦除可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,带电可擦可编程只读存储器)、闪存或其他固态存储其技术,CD-ROM、DVD(Digital Video Disc,高密度数字视频光盘)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的***存储器604和大容量存储设备607可以统称为存储器。
计算机设备600可以通过连接在所述***总线605上的网络接口单元611连接到互联网或者其它网络设备。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,中央处理单元601通过执行该一个或一个以上程序来实现本申请上述各个实施例提供的方法中,由计算机设备执行的全部或者部分步骤。
在一个示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括计算机程序(指令)的存储器,上述程序(指令)可由计算机设备的处理器执行以完成本申请各个实施例所示的方法的全部或者部分步骤。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(Random Access Memory,RAM)、CD-ROM(CompactDisc Read-Only Memory,只读光盘)驱动器、磁带、软盘和光数据存储设备等。可选的,该存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如上述实施例涉及的运行内存的分配方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例的各种可选实现方式中提供的运行内存的分配方法。
需要说明的是:上述实施例提供的运行内存的分配装置在执行上述运行内存的分配方法时,仅以上述各实施例进行举例说明,实际程序中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请可选的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (16)

1.一种运行内存的分配方法,其特征在于,所述方法由计算机设备执行,所述方法包括:
根据页面申请请求,获取第一页面数量,所述页面申请请求用于请求分配目标数量的第一类型的页面,所述页面用于指示所述计算机设备中运行内存的划分结果,所述第一页面数量是目标类型的所述页面的数量,所述目标类型包括所述第一类型和第二类型;
响应于所述第一页面数量小于所述目标数量,将所述运行内存回收;
在回收所述运行内存的过程中,获取回收属性,所述回收属性用于指示所述计算机设备回收所述运行内存的效率或者时长中的至少一项;
响应于所述回收属性满足目标回收属性,获取第一数量差值的第三类型的所述页面,所述第一数量差值是所述目标数量与所述第一页面数量的差值,其中,所述第一类型的页面与所述第二类型的页面的匹配度,高于所述第一类型的页面与所述第三类型的页面的匹配度;
将所述第一页面数量的所述目标类型的所述页面以及所述第一数量差值的所述第三类型的所述页面,作为所述计算机设备响应于所述页面申请请求进行分配的分配页面。
2.根据权利要求1所述的方法,其特征在于,响应于所述回收属性用于指示所述计算机设备回收所述运行内存的效率;
所述响应于所述回收属性满足目标回收属性,获取第一数量差值的第三类型的所述页面,包括:
响应于所述回收属性小于回收效率阈值,获取所述第一数量差值的所述第三类型的所述页面。
3.根据权利要求2所述的方法,其特征在于,在所述根据页面申请请求,获取第一页面数量之前,还包括:
响应于第一进程的触发操作,生成所述页面申请请求;
记录所述生成所述页面申请请求的时间;
所述在回收所述运行内存的过程中,获取回收属性,包括:
获取所述运行内存的回收时间以及回收的所述运行内存的大小;
根据所述生成所述页面申请请求的时间、所述运行内存的回收时间以及所述回收的所述运行内存的大小,获取所述回收属性。
4.根据权利要求1所述的方法,其特征在于,响应于所述回收属性用于指示所述计算机设备回收所述运行内存的时长;
所述响应于所述回收属性满足目标回收属性,获取第一数量差值的第三类型的所述页面,包括:
响应于所述回收属性不大于回收延迟阈值,获取所述第一数量差值的所述第三类型的所述页面。
5.根据权利要求4所述的方法,其特征在于,所述在回收所述运行内存的过程中,获取回收属性,包括:
获取所述运行内存的回收时间;
根据所述运行内存的回收时间以及生成所述页面申请请求的时间,获取所述回收属性。
6.根据权利要求1至5任一所述的方法,其特征在于,所述方法还包括:
响应于所述回收属性不满足所述目标回收属性,从回收到的所述运行内存对应的所述页面中获取所述第一数量差值的所述第一类型的页面;
将所述第一页面数量的所述目标类型的所述页面以及所述第一数量差值的所述第一类型的所述页面,作为所述计算机设备响应于所述页面申请请求进行分配的分配页面。
7.根据权利要求1至5任一所述的方法,其特征在于,所述根据页面申请请求,获取第一页面数量,包括:
根据所述页面申请请求,获取所述第一类型;
根据所述第一类型,获取所述第一页面数量。
8.根据权利要求7所述的方法,其特征在于,所述根据所述第一类型,获取第一页面数量,包括:
根据所述第一类型,获取所述第一类型的所述页面的数量;
响应于所述第一类型的所述页面的数量小于所述目标数量,根据所述第一类型以及第一匹配关系,获取所述第二类型;
根据所述第二类型,获取所述第二类型的所述页面的数量;
根据所述第一类型的所述页面的数量以及所述第二类型的所述页面的数量,获取所述第一页面数量。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
响应于所述第一类型的所述页面的数量不小于所述目标数量,获取所述目标数量的所述第一类型的所述页面;
将所述目标数量的所述第一类型的所述页面作为所述计算机设备响应于所述页面申请请求进行分配的分配页面。
10.根据权利要求1至5任一所述的方法,其特征在于,所述响应于所述回收属性满足目标回收属性,获取第一数量差值的第三类型的所述页面,包括:
响应于所述回收属性满足所述目标回收属性,根据所述第一类型以及第二匹配关系,获取所述第三类型;
根据所述目标数量以及所述第一页面数量,获取所述第一数量差值;
根据所述第三类型以及所述述第一数量差值,获取所述第一数量差值的所述第三类型的所述页面。
11.根据权利要求10所述的方法,其特征在于,所述根据所述第三类型以及所述述第一数量差值,获取所述第一数量差值的所述第三类型的所述页面,包括:
根据所述第三类型,获取第二页面数量,所述第二页面数量是所述第三类型的所述页面的数量;
响应于所述第二页面数量不小于所述第一数量差值,获取所述第一数量差值的所述第三类型的所述页面。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
响应于所述第二页面数量小于所述第一数量差值,将所述运行内存回收;
从回收到的所述运行内存对应的所述页面中获取所述第一数量差值的所述第一类型的页面;
将所述第一页面数量的所述目标类型的所述页面、所述第二页面数量的所述第三类型的所述页面以及所述第一数量差值的所述第一类型的所述页面,作为所述计算机设备响应于所述页面申请请求进行分配的分配页面。
13.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述第一页面数量不小于所述目标数量,获取所述目标数量的所述目标类型的所述页面;
将所述目标数量的所述目标类型的所述页面,作为所述计算机设备响应于所述页面申请请求进行分配的分配页面。
14.一种运行内存的分配装置,其特征在于,所述装置用于计算机设备中,所述装置包括:
数量获取模块,用于根据页面申请请求,获取第一页面数量,所述页面申请请求用于请求分配目标数量的第一类型的页面,所述页面用于指示所述计算机设备中运行内存的划分结果,所述第一页面数量是目标类型的所述页面的数量,所述目标类型包括所述第一类型和第二类型;
内存回收模块,用于响应于所述第一页面数量小于所述目标数量,将所述运行内存回收;
属性获取模块,用于在回收所述运行内存的过程中,获取回收属性,所述回收属性用于指示所述计算机设备回收所述运行内存的效率或者时长;
页面获取模块,用于响应于所述回收属性满足目标回收属性,获取第一数量差值的第三类型的所述页面,所述第一数量差值是所述目标数量与所述第一页面数量的差值,其中,所述第一类型的页面与所述第二类型的页面的匹配度,高于所述第一类型的页面与所述第三类型的页面的匹配度;
页面分配模块,用于将所述第一页面数量的所述目标类型的所述页面以及所述第一数量差值的所述第三类型的所述页面,作为所述计算机设备响应于所述页面申请请求进行分配的分配页面。
15.一种计算机设备,其特征在于,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至13任一所述的运行内存的分配方法。
16.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至13任一所述的运行内存的分配方法。
CN202010723095.5A 2020-07-24 2020-07-24 运行内存的分配方法、装置、计算机设备以及存储介质 Active CN111858057B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010723095.5A CN111858057B (zh) 2020-07-24 2020-07-24 运行内存的分配方法、装置、计算机设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010723095.5A CN111858057B (zh) 2020-07-24 2020-07-24 运行内存的分配方法、装置、计算机设备以及存储介质

Publications (2)

Publication Number Publication Date
CN111858057A CN111858057A (zh) 2020-10-30
CN111858057B true CN111858057B (zh) 2022-04-15

Family

ID=72950565

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010723095.5A Active CN111858057B (zh) 2020-07-24 2020-07-24 运行内存的分配方法、装置、计算机设备以及存储介质

Country Status (1)

Country Link
CN (1) CN111858057B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103593298A (zh) * 2013-10-16 2014-02-19 北京航空航天大学 内存回收方法和装置
CN106030499A (zh) * 2014-05-28 2016-10-12 株式会社日立制作所 计算机***以及计算机***控制方法
CN106843756A (zh) * 2017-01-13 2017-06-13 中国科学院信息工程研究所 基于页面分类的内存页面回收方法及***
CN107153493A (zh) * 2016-03-02 2017-09-12 阿里巴巴集团控股有限公司 业务对象的分配方法及装置
US10152428B1 (en) * 2017-07-13 2018-12-11 EMC IP Holding Company LLC Virtual memory service levels
CN111414254A (zh) * 2020-03-19 2020-07-14 Oppo广东移动通信有限公司 设备管理方法、装置、存储介质及电子设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7853771B2 (en) * 2005-04-12 2010-12-14 International Business Machines Corporation Page allocation management for virtual memory
US7814292B2 (en) * 2005-06-14 2010-10-12 Intel Corporation Memory attribute speculation
US10303618B2 (en) * 2012-09-25 2019-05-28 International Business Machines Corporation Power savings via dynamic page type selection

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103593298A (zh) * 2013-10-16 2014-02-19 北京航空航天大学 内存回收方法和装置
CN106030499A (zh) * 2014-05-28 2016-10-12 株式会社日立制作所 计算机***以及计算机***控制方法
CN107153493A (zh) * 2016-03-02 2017-09-12 阿里巴巴集团控股有限公司 业务对象的分配方法及装置
CN106843756A (zh) * 2017-01-13 2017-06-13 中国科学院信息工程研究所 基于页面分类的内存页面回收方法及***
US10152428B1 (en) * 2017-07-13 2018-12-11 EMC IP Holding Company LLC Virtual memory service levels
CN111414254A (zh) * 2020-03-19 2020-07-14 Oppo广东移动通信有限公司 设备管理方法、装置、存储介质及电子设备

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A unified framework for designing high performance in-memory and hybrid memory file systems;XianzhangChen等;《Journal of Systems Architecture》;elsevier;20180831;第68卷;第51-64页 *
一种面向实时数据库存储引擎的设计与实现;刘波等;《计算机技术与发展》;20110810(第08期);第34-38页 *
可变分区存储管理方式的内存分配回收;宋新伟;《电脑知识与技术》;20140425;第10卷(第12期);第2880-2882页 *
基于新型非易失性存储器的移动终端性能优化研究;钟刊;《中国博士学位论文全文数据库 信息科技辑》;中国学术期刊(光盘版)电子杂志社;20190415(第04期);I137-5 *

Also Published As

Publication number Publication date
CN111858057A (zh) 2020-10-30

Similar Documents

Publication Publication Date Title
CN109857555B (zh) 内存回收方法及装置、存储介质和电子设备
CN114096953A (zh) 内存管理方法、装置、电子设备和计算机可读介质
CN110247984B (zh) 业务处理方法、装置及存储介质
CN102650931B (zh) 一种写入数据的方法及***
CN107533435B (zh) 存储空间的分配方法及存储设备
CN111078406A (zh) 内存管理方法、装置、存储介质及电子设备
CN109753361B (zh) 一种内存管理方法、电子设备及存储装置
CN114416352A (zh) 算力资源分配方法、装置、电子设备及储存介质
CN112667405B (zh) 信息处理方法、装置、设备及存储介质
CN111309440B (zh) 一种多类型gpu的管理调度的方法和设备
CN115495025B (zh) 一种管理异常存储块的方法和装置
WO2022001136A1 (zh) 分布式存储***Inode号分配管理方法及相关组件
CN111522659B (zh) 一种空间使用方法和装置
CN114996173B (zh) 一种管理存储设备写操作的方法和装置
CN110633130A (zh) 一种基于内存热插拔技术的虚拟内存管理方法和装置
CN113760610A (zh) 基于OpenStack的裸机高可用性的实现方法、装置及电子设备
CN111858057B (zh) 运行内存的分配方法、装置、计算机设备以及存储介质
CN105677481A (zh) 一种数据处理方法、***及电子设备
WO2023236930A1 (zh) 基于ion分配器的内存分配方法、装置、电子设备和可读存储介质
CN115794305A (zh) 虚拟机内存的调整方法和装置、存储介质及电子装置
CN116389268A (zh) 云手机回收的处理方法、装置和计算机设备、存储介质
CN109086223B (zh) 一种控制垃圾回收的方法和装置
CN115543859A (zh) 多分区ssd的磨损均衡优化方法、装置、设备及介质
CN113778688B (zh) 内存管理***、内存管理方法、内存管理装置
CN115587049A (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