CN111090521A - 内存分配方法、装置、存储介质及电子设备 - Google Patents

内存分配方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN111090521A
CN111090521A CN201911261551.2A CN201911261551A CN111090521A CN 111090521 A CN111090521 A CN 111090521A CN 201911261551 A CN201911261551 A CN 201911261551A CN 111090521 A CN111090521 A CN 111090521A
Authority
CN
China
Prior art keywords
memory
space
demand
address
thread
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
Application number
CN201911261551.2A
Other languages
English (en)
Other versions
CN111090521B (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 CN201911261551.2A priority Critical patent/CN111090521B/zh
Publication of CN111090521A publication Critical patent/CN111090521A/zh
Application granted granted Critical
Publication of CN111090521B publication Critical patent/CN111090521B/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本申请公开了一种内存分配方法、装置、存储介质及电子设备。该方法包括:当接收到线程发送的内存分配请求时,确定所述内存分配请求对应的内存需求量;判断所述内存需求量是否小于预设阈值;若所述内存需求量小于预设阈值,则从第一内存空间中靠近第一内存地址的空闲空间中,确定大小与所述内存需求量匹配的目标内存空间;若所述内存需求量不小于预设阈值,则从第一内存空间中靠近第二内存地址的空闲空间中,确定大小与所述内存需求量匹配的目标内存空间;将所述目标内存空间对应的内存地址发送至所述线程。本申请可以减少内存碎片化的程度,提高内存利用率。

Description

内存分配方法、装置、存储介质及电子设备
技术领域
本申请属于电子技术领域,尤其涉及一种内存分配方法、装置、存储介质及电子设备。
背景技术
在操作系统中,通常采用动态内存管理机制,内核将虚拟内存分配给有内存需求的线程,线程执行完毕后,再将内存释放,以供内核继续将内存分配给有内存需求的其他线程。
相关技术的内存分配方案,当大小内存交替申请时,小内存释放后留下的空闲内存块分布在内存空间各个不连续的区域,从而造成内存碎片化,导致内存利用率较低。
发明内容
本申请实施例提供一种内存分配方法、装置、存储介质及电子设备,可以减少内存碎片化的程度,提高内存利用率。
本申请实施例提供一种内存分配方法,包括:
当接收线程发送的内存分配请求时,确定所述内存分配请求对应的内存需求量;
判断所述内存需求量是否小于预设阈值;
若所述内存需求量小于预设阈值,则从第一内存空间中靠近第一内存地址的空闲空间中,确定大小与所述内存需求量匹配的目标内存空间;
若所述内存需求量不小于预设阈值,则从第一内存空间中靠近第二内存地址的空闲空间中,确定大小与所述内存需求量匹配的目标内存空间;
将所述目标内存空间对应的内存地址发送至所述线程。
本申请实施例提供一种内存分配装置,包括:
第一确定模块,用于当接收线程发送的内存分配请求时,确定所述内存分配请求对应的内存需求量;
判断模块,用于判断所述内存需求量是否小于预设阈值;
第二确定模块,用于若所述内存需求量小于预设阈值,则从第一内存空间中靠近第一内存地址的空闲空间中,确定大小与所述内存需求量匹配的目标内存空间;
第二确定模块,还用于若所述内存需求量不小于预设阈值,则从第一内存空间中靠近第二内存地址的空闲空间中,确定大小与所述内存需求量匹配的目标内存空间;
发送模块,用于将所述目标内存空间对应的内存地址发送至所述线程。
本申请实施例提供一种存储介质,其上存储有计算机程序,当所述计算机程序在计算机上执行时,使得所述计算机执行本申请实施例提供的内存分配方法中的流程。
本申请实施例还提供一种电子设备,包括存储器,处理器,所述处理器通过调用所述存储器中存储的计算机程序,用于执行本申请实施例提供的内存分配方法中的流程。
本申请实施例中,当内存需求量小于预设阈值时,从第一内存空间中靠近第一内存地址的空闲空间中,确定大小与内存需求量匹配的目标内存空间;当内存需求量不小于预设阈值时,从第一内存空间中靠近第二内存地址的空闲空间中,确定大小与内存需求量匹配的目标内存空间,即将第一内存空间按照内存需求量的大小进行不同方向分配,将内存需求量较小的内存集中在同一区域,将内存需求量较大的内存集中在另一区域,减少了内存碎片化的程度,提高了内存空间的利用率。
附图说明
下面结合附图,通过对本申请的具体实施方式详细描述,将使本申请的技术方案及其有益效果显而易见。
图1是本申请实施例提供的内存分配方法的第一种流程示意图。
图2是本申请实施例提供的内存分配方法的第一种场景示意图。
图3是本申请实施例提供的内存分配方法的第二种流程示意图。
图4是本申请实施例提供的内存分配方法的第二种场景示意图。
图5是本申请实施例提供的内存分配方法的第三种场景示意图。
图6是本申请实施例提供的内存分配方法的第四种场景示意图。
图7是本申请实施例提供的内存分配装置的结构示意图。
图8是本申请实施例提供的电子设备的第一种结构示意图。
图9是本申请实施例提供的电子设备的第二种结构示意图。
具体实施方式
请参照图示,其中相同的组件符号代表相同的组件,本申请的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本申请具体实施例,其不应被视为限制本申请未在此详述的其它具体实施例。
可以理解的是,本申请实施例的执行主体可以是诸如智能手机或平板电脑等电子设备。
请参阅图1,图1是本申请实施例提供的内存分配方法的第一种流程示意图,流程可以包括:
在101中,当接收到线程发送的内存分配请求时,确定该内存分配请求对应的内存需求量。
可以理解的是,一个应用程序(application)对应一个进程。进程包括一个或多个线程的。线程向电子设备的内核申请内存以执行任务,即向电子设备的内核发送内存分配请求。
如图2所示,当电子设备运行的应用程序为32位的应用程序时,电子设备的内核通常给该应用程序分配一大小为4GB的虚拟内存地址空间,包括brk区域和mmap区域。该虚拟内存地址空间的地址范围为:0x00000000至0xFFFFFFFF。其中,0至1GB区域为brk区域,该brk区域的地址范围为0x00000000至0x3FFFFFFF。1GB至4GB区域为mmap区域,该mmap区域的地址范围为0x3FFFFFFF至0xFFFFFFFF。
在brk区域中,0至32KB区域被预留,剩余的32KB至1GB区域用于内存分配。其中,0至32KB区域的地址范围为:0x00000000至0x00007FFF。32KB至1GB区域的地址范围为:0x00007FFF至0x3FFFFFFF。
在mmap区域中,4088MB至4GB区域被预留,该4088MB至4GB区域又被称为栈,剩余的1GB至4088MB区域用于内存分配。其中,4088MB至4GB区域的地址范围为:0xFF7FFFFF至0xFFFFFFFF。地址0xFFFFFFFF所在的位置为栈顶。1GB至4088MB区域的地址范围为:0x3FFFFFFF至0xFF7FFFFF。
需要说明的是,以上仅是对32位的应用程序对应的虚拟内存地址空间进行示例性的说明,并不用于限制本申请。
比如,当某线程开始运行时,该线程可向电子设备的内核发送内存分配请求,以向该内核请求占用一定大小的内存空间。其中,该内存分配请求携带有内存需求量,该内存需求量表示该线程需申请的内存的大小。该内存需求量的单位为字节(Byte,B)。例如,该内存需求量可以为1KB、100KB、1MB、4MB或1GB等等。其中,1GB=1024MB,1MB=1024KB,1KB=1024B。
在本申请实施例中,当某线程向电子设备的内核发送内存分配请求时,该内核即接收到该线程发送的内存分配请求。当接收到该线程发送的内存分配请求时,该内核可确定内存分配请求对应的内存需求量。
在102中,判断内存需求量是否小于预设阈值。若内存需求量小于预设阈值,则进入流程103。若内存需求量不小于预设阈值,则进入流程104。
在103中,从第一内存空间中靠近第一内存地址的空闲空间中,确定大小与内存需求量匹配的目标内存空间。
在104中,从第一内存空间中靠近第二内存地址的空闲空间中,确定大小与内存需求量匹配的目标内存空间。
比如,当确定出内存分配请求对应的内存需求量之后,该电子设备可判断该内存需求量是否小于预设阈值。若内存需求量小于预设阈值,则电子设备可通过内核从第一内存空间中靠近第一内存地址的空闲空间中,确定大小与内存需求量匹配的目标内存空间。若内存需求量不小于预设阈值,则电子设备可通过内核从第一内存空间靠近第二内存地址的空闲空间中,确定大小与内存需求量匹配的目标内存空间。比如,目标内存空间的大小可不小于内存需求量。其中,预设阈值可以根据实际情况设置,例如,预设阈值可以为1MB、4MB或10MB等等。
在本申请实施例中,第一内存空间可以是mmap区域中的1GB至4088MB区域,以下简称mmap区域。即,在下述描述中涉及到的mmap区域均指代mmap区域中的1GB至4088MB区域。第一内存地址可为0x3FFFFFF,第二内存地址可为0xFF7FFFFF;或者,第一内存地址可为0xFF7FFFFF,第二内存地址可为0x3FFFFFF。
例如,假设内存需求量为4MB,预设阈值为1MB。可以确定,该内存需求量大于预设阈值,因此,电子设备可通过内核从mmap区域中靠近0xFF7FFFFF的空闲空间中,确定大小等于4MB的目标内存空间。
又例如,假设内存需求量为16KB,预设阈值为1MB。可以确定,该内存需求量小于预设阈值,因此,电子设备可通过内核从mmap区域中靠近0x3FFFFFF的空闲空间中,确定大小等于16KB的目标内存空间。
又例如,当接收到线程发送的内存分配请求时,电子设备还可通过内核确定该内存分配请求对应的内存单元的大小,如该内存分配请求对应的内存单元可以为4KB、16KB或1MB等。假设某进程发送的内存分配请求对应的内存单元为4KB,内存需求量为5KB。可以确定,该内存需求量小于预设阈值,那么,因此,电子设备可通过内核从mmap区域中靠近0x3FFFFFF的空闲空间中,确定大小等于8KB的目标内存空间。可以理解的是,目标内存空间的大小需为内存分配请求对应的内存单元的整数倍。
在105中,将目标内存空间对应的内存地址发送至线程。
比如,当确定出目标内存空间之后,电子设备可通过内核将该目标内存空间对应的内存地址发送至线程。
例如,假设目标内存空间的地址范围为0xFF3FFFFF至0xFF7FFFFF,电子设备可通过内核将地址0xFF3FFFFF和/或地址0xFF7FFFFF确定为该目标内存空间对应的内存地址,并将该地址0xFF3FFFFF和/或地址0xFF7FFFFF发送至线程,以通知该线程,该线程可使用地址范围为0xFF3FFFFF至0xFF7FFFFF的内存空间。
又例如,假设目标内存空间的地址范围为0x3FFFFFF至0x40003FFF,电子设备可通过内核将0x3FFFFFF和/或0x40003FFF确定为该目标内存空间对应的内存地址,并将0x3FFFFFF和/或0x40003FFF发送至线程,以通知该线程,该线程可使用地址范围为0x3FFFFFF至0x40003FFF的内存空间。
请参阅图3,图3是本申请实施例提供的内存分配方法的第二种流程示意图,流程可以包括:
201、当接收到线程发送的内存分配请求时,电子设备确定内存分配请求对应的内存需求量。
比如,当某线程向电子设备的内核发送内存分配请求时,该内核即接收到该线程发送的内存分配请求。当接收到该线程发送的内存分配请求时,该内核可确定内存分配请求对应的内存需求量。
202、电子设备确定内存分配请求对应的内存类型。
203、当内存分配请求对应的内存类型为第一类型时,电子设备执行判断内存需求量是否小于预设阈值。若内存需求量小于预设阈值,则进入流程204。若内存需求量不小于预设阈值,则进入流程205。
比如,当电子设备的内核接收到某线程发送的内存分配请求时,电子设备还可以判断内存分配请求对应的内存类型是否为第一类型或第二类型。其中,第一类型为mmap类型,即对应请求分配第一内存空间的内存。第二类型为brk类型,即对应请求分配第二内存空间的内存。当内存分配请求对应的内存类型为第一类型时,电子设备可通过内核判断内存需求量是否小于预设阈值。当内存需求量小于预设阈值时,可进入流程204。当内存需求量不小于预设阈值时,可进入流程205。其中,预设阈值可以根据实际情况设置,例如,预设阈值可以为1MB、4MB或10MB等等。
在本申请实施例中,第一内存空间可以是mmap区域中的1GB至4088MB区域,以下简称mmap区域,第二内存空间可以是brk区域中的32KB至1GB区域,以下简称brk区域。即,在下述描述中涉及到的mmap区域均指代mmap区域中的1GB至4088MB区域,且在下述描述中涉及到的brk区域均指代brk区域中的32KB至1GB区域。
204、电子设备从第一内存空间中靠近第一内存地址的空闲空间中,确定大小与内存需求量匹配的目标内存空间。
205、电子设备从第一内存空间中靠近第二内存地址的空闲空间中,确定大小与内存需求量匹配的目标内存空间。
206、电子设备将目标内存空间对应的内存地址发送至线程。
比如,若内存需求量小于预设阈值,则电子设备可通过内核从第一内存空间中靠近第一内存地址的空闲空间中,确定大小与内存需求量匹配的目标内存空间。若内存需求量不小于预设阈值,则电子设备可通过内核从第一内存空间靠近第二内存地址的空闲空间中,确定大小与内存需求量匹配的目标内存空间。当确定出目标内存空间之后,电子设备可通过内核将目标内存空间对应的内存地址发送至线程。其中,目标内存空间的大小可不小于内存需求量。
其中,第一内存地址可为0x3FFFFFF,第二内存地址可为0xFF7FFFFF;或者,第一内存地址可为0xFF7FFFFF,第二内存地址可为0x3FFFFFF。
例如,如图4所示,假设线程B1发送的内存分配请求对应的类型为mmap类型,线程B1发送的内存分配请求对应的内存需求量为4MB,预设阈值为1MB,整个mmap区域均为空闲区域,即电子设备还未通过内核从mmap区域分配内存空间给任何线程。可以确定,该内存需求量大于预设阈值,因此,电子设备可通过内核从mmap区域中靠近0xFF7FFFFF的空闲空间中,确定大小等于4MB的目标内存空间。该目标内存空间的地址范围为0xFF3FFFFF至0xFF7FFFFF。随后,电子设备可通过内核将地址0xFF3FFFFF确定为目标内存空间对应的内存地址,并将地址0xFF3FFFFF发送至该线程B1,以通知该线程B1,该线程B1可使用地址范围为0xFF3FFFFF至0xFF7FFFFF的内存空间。
又例如,请继续参阅图4,假设线程B2发送的内存分配请求对应的类型为mmap类型,线程B2发送的内存分配请求对应的内存需求量为100KB,预设阈值为1MB。电子设备已通过内核分配4MB的内存给线程B1,即mmap区域中除分配给线程B1的内存空间之外均为空闲空间。可以确定,该内存需求量小于预设阈值,因此,电子设备可通过内核从mmap区域中靠近0x3FFFFFFF的空闲空间中,确定大小等于100KB的目标内存空间。该目标内存空间的地址范围为0x3FFFFFFF至0x40018FFF。随后,电子设备可通过内核将地址0x3FFFFFFF确定为目标内存空间对应的内存地址,并将地址0x3FFFFFFF发送至该线程B2,以通知该线程B2,该线程B2可使用地址范围为0x3FFFFFFF至0x40018FFF的内存空间。
在一些实施例中,如图5所示,电子设备已通过内核分配了2个500KB的内存空间、2个1000KB的内存空间、1个4MB的内存空间及1个8MB的内存空间给相应的线程。并在2个500KB的内存空间对应的线程执行完毕时,释放了该2个500KB的内存空间;且在1个4MB的内存空间对应的线程执行完毕时,释放了该1个4MB的内存空间。此时,当电子设备的内核接收到线程B3发送的对应的内存需求量为400KB的内存分配请求时,电子设备可通过内核将地址范围为0x3FFFFFFF至0x 40063FFF的目标内存空间分配给该线程B3。当电子设备的内核再次接收到线程B4发送的对应的内存需求量为2MB的内存分配请求时,电子设备可通过内核将地址范围为0xFF5FFFFF至0xFF7FFFFF的目标内存空间分配给该线程B4。其中,线程B3或线程B4发送的内存分配请求对应的类型为mmap类型。
207、当内存分配请求对应的内存类型为第二类型时,则电子设备从第二内存空间中靠近第三内存地址的空闲空间中,确定大小与内存需求量匹配的第三内存空间。
208、电子设备将第三内存空间对应的内存地址发送至线程。
比如,若内存分配请求对应的内存类型为第二类型,即对应请求分配brk区域的内存时,电子设备可从第二内存空间中靠近第三内存地址的空闲空间中,确定大小与内存需求量匹配的第三内存空间。其中,第三内存空间的大小可不小于内存需求量,第三内存地址可为0x00007FFF。
例如,如图6所示,假设线程B5发送的内存分配请求对应的类型为brk类型,线程B5发送的内存分配请求对应的内存需求量为4MB,整个brk区域均为空闲区域,即电子设备还未通过内核从brk区域分配内存空间给任何线程。电子设备可从brk区域中靠近0x00007FFF的空闲空间中,确定大小等于4MB的第三内存空间。该第三内存空间的地址范围为0x00007FFF至0x003FFFFF。随后,电子设备可通过内核将地址0x00007FFF确定为第三内存空间对应的内存地址,并将地址0x00007FFF发送至该线程B5,以通知该线程B5,该线程B5可使用地址范围为0x00007FFF至0x003FFFFF的内存空间。
在一些实施例中,在流程203之前,还可以包括:
当内存类型为第一类型时,电子设备判断第一内存空间对应的空闲空间的大小是否不小于内存需求量;
若第一内存空间对应的空闲空间的大小不小于内存需求量,则电子设备执行判断内存需求量是否小于预设阈值。
比如,第一内存空间对应的空闲空间可包括未被分配过的空闲空间,以及已被分配给相应线程,但被释放的空闲空间。例如,该第一内存空间对应的空闲空间可以为如图5所示的空闲空间。
如图5所示,第一内存空间对应的空闲空间包括多个不连续的空闲空间,当内存分配请求对应的内存类型为mmap类型时,电子设备可通过内核判断该多个不连续的空闲空间中是否存在至少一个空闲空间的大小不小于内存需求量。若该多个不连续的空闲空间中存在至少一个空闲空间的大小不小于内存需求量,电子设备可通过内核判断内存需求量是否小于预设阈值。
在一些实施例中,当内存分配请求对应的内存类型为mmap类型时,电子设备可先通过内核判断内存需求量是否小于预设阈值。当内存需求量小于预设阈值时,电子设备可通过内核判断第一内存空间对应的空闲空间中是否存在至少一个大小不小于内存需求量的空闲空间。若第一内存空间对应的空闲空间中存在至少一个大小不小于内存需求量的空闲空间,则可进入流程204。其中,第一内存空间对应的空闲空间可包括未被分配过的空闲空间,以及已被分配给相应线程,但被释放的大小小于预设阈值的空闲空间。例如,已被分配给相应线程,但被释放的大小小于预设阈值的空闲空间可以为如图5所示的空闲空间(500KB)。
当内存需求量不小于预设阈值时,电子设备可通过内核判断第一内存空间对应的空闲空间中是否存在至少一个大小不小于内存需求量的空闲空间。若第一内存空间对应的空闲空间中存在至少一个大小不小于内存需求量的空闲空间,则可进入流程205。其中,第一内存空间对应的空闲空间可包括未被分配过的空闲空间,以及已被分配给相应线程,但被释放的大小不小于预设阈值的空闲空间。例如,已被分配给相应线程,但被释放的大小不小于预设阈值的空闲空间可以为如图5所示的空闲空间(4MB)。
在一些实施例中,电子设备判断第一内存空间对应的空闲空间的大小是否不小于内存需求量之后,还可以包括:
若第一内存空间对应的空闲空间的大小小于内存需求量,则电子设备从第二内存空间中靠近第四内存地址的空闲空间中,确定大小与内存需求量匹配的第四内存空间;
电子设备将第四内存空间对应的内存地址发送至线程。
比如,如图5所示,第一内存空间对应的空闲空间可包括多个不连续的空闲空间,电子设备可通过内核判断该多个不连续的空闲空间中是否存在至少一个空闲空间的大小不小于内存需求量。若该多个不连续的空闲空间中不存在大小不小于内存需求量的空闲空间,电子设备可通过内核从第二内存空间中靠近第四内存地址的空闲空间中,确定大小与内存需求量匹配的第四内存空间。随后,电子设备可将第四内存空间对应的内存地址发送至对应的线程。其中,第四内存空间的大小可不小于内存需求量,第四内存地址可为0x3FFFFFFF。
例如,如图6所示,假设线程B6发送的内存分配请求对应的类型为mmap类型,线程B6发送的内存分配请求对应的内存需求量为2MB,电子设备已通过内核分配4MB的内存给线程B5,即brk区域中除分配给线程B5的内存空间之外均为空闲空间。当mmap区域对应的空闲空间的大小小于内存需求量时,电子设备可从brk区域中靠近0x3FFFFFFF的空闲空间中,确定大小等于2MB的第四内存空间。该第四内存空间的地址范围为0x3FDFFFFF至0x3FFFFFFF。随后,电子设备可通过内核将地址0x3FDFFFFF确定为目标内存空间对应的内存地址,并将地址0x3FDFFFFF发送至该线程B6,以通知该线程B6,该线程B6可使用地址范围为0x3FDFFFFF至0x3FFFFFFF的内存空间。
在一些实施例中,在电子设备确定大小与内存需求量匹配的目标内存空间之后,还可以包括:
当未能成功确定目标内存空间时,电子设备从第二内存空间中靠近第四内存地址的空闲空间中,确定大小与内存需求量匹配的第五内存空间;
电子设备将第五内存空间对应的内存地址发送至线程。
比如,当内存分配请求对应的内存类型为mmap类型时,电子设备可通过内核判断内存需求量是否小于预设阈值。假设内核判定内存需求量不小于预设阈值,那么,电子设备可通过内核从第一内存空间中靠近第二内存地址的空闲空间中,确定大小与内存需求量匹配的目标内存空间。
可以理解的是,第一内存空间中靠近第二内存地址的空闲空间可以包括未被分配过的空闲空间,以及已被分配给相应线程,但被释放的空闲空间。当未被分配过的空闲空间,以及已被分配给相应线程,但被释放的空闲空间中不存在大小不小于该内存需求量的内存空间时,电子设备的内核必然无法成功确定出目标内存空间。而当电子设备通过内核未能成功确定目标内存空间时,电子设备可通过内核从第二内存空间中靠近第四内存地址的空闲空间中,确定大小与内存需求量匹配的第五内存空间。随后,电子设备可将该第五内存空间对应的内存地址发送至线程。其中,第五内存空间的大小可不小于内存需求量。
在一些实施例中,确定内存分配请求对应的内存需求量之前,还可以包括:
电子设备确定线程对应的应用程序;
电子设备判断应用程序的类型是否为预设应用类型;
若应用程序的类型为预设应用类型,则电子设备执行确定内存分配请求对应的内存需求量。
可以理解的是,64位应用程序对应的虚拟内存空间极大,内存碎片化对64位应用程序来说,几乎没有什么影响。因此,当64位应用程序对应的线程申请内存时,电子设备可通过内核按照相关技术的内存分配方案给该线程分配内存;也可以通过内核按照本申请实施例提供的内存分配方法给该线程分配内存。而相对于64位应用程序来说,32位应用程序对应的虚拟内存空间极小,内存碎片化对32位应用程序来说,影响较大。因此,当32位应用程序对应的线程申请内存时,电子设备可通过内核按照本申请实施例提供的内存分配方法给该线程分配内存。
比如,当电子设备通过内核接收到线程发送的内核分配请求时,电子设备可确定线程对应的应用程序。随后,电子设备可判断应用程序的类型是否为预设应用类型,如判断应用程序是否为32位应用程序。若应用程序的类型为预设应用类型,电子设备可通过内核确定内存分配请求对应的内存需求量。
请参阅图7,图7为本申请实施例提供的内存分配装置的结构示意图。该内存分配装置300包括:第一确定模块301,判断模块302,第二确定模块303及发送模块304。
第一确定模块301,用于当接收到线程发送的内存分配请求时,确定所述内存分配请求对应的内存需求量;
判断模块302,用于判断所述内存需求量是否小于预设阈值;
第二确定模块303,用于若所述内存需求量小于预设阈值,则从第一内存空间中靠近第一内存地址的空闲空间中,确定大小与所述内存需求量匹配的目标内存空间;
第二确定模块303,还用于若所述内存需求量不小于预设阈值,则从第一内存空间中靠近第二内存地址的空闲空间中,确定大小与所述内存需求量匹配的目标内存空间;
发送模块304,用于将所述目标内存空间对应的内存地址发送至所述线程。
在一些实施例中,判断模块302,可以用于:确定所述内存分配请求对应的内存类型;当所述内存类型为第一类型时,执行判断所述内存需求量是否小于预设阈值;当所述内存类型为第二类型时,从第二内存空间中靠近第三内存地址的空闲空间中,确定大小与所述内存需求量匹配的第三内存空间;将所述第三内存空间对应的内存地址发送至所述线程。
在一些实施例中,判断模块302,可以用于:当所述内存类型为第一类型时,判断所述第一内存空间对应的空闲空间的大小是否不小于所述内存需求量;若所述第一内存空间对应的空闲空间的大小不小于所述内存需求量,则执行判断所述内存需求量是否小于预设阈值。
在一些实施例中,判断模块302,可以用于:若所述第一内存空间对应的空闲空间的大小小于所述内存需求量,则从第二内存空间中靠近第四内存地址的空闲空间中,确定大小与所述内存需求量匹配的第四内存空间;将所述第四内存空间对应的内存地址发送至所述线程。
在一些实施例中,第二确定模块303,可以用于:当未能成功确定出目标内存空间时,从第二内存空间中靠近第四内存地址的空闲空间中,确定大小与所述内存需求量匹配的第五内存空间;将所述第五内存空间对应的内存地址发送至所述线程。
在一些实施例中,第一确定模块301,可以用于:确定所述线程对应的应用程序;判断所述应用程序的类型是否为预设应用类型;若所述应用程序的类型为预设应用类型,则执行确定所述内存分配请求对应的内存需求量。
在一些实施例中,所述第一内存地址为所述第一内存空间的起始地址,所述第二内存地址为所述第一内存空间的终止地址;或者,所述第一内存地址为所述第一内存空间的终止地址,所述第二内存地址为所述第一内存空间的起始地址。
本申请实施例提供一种计算机可读的存储介质,其上存储有计算机程序,当所述计算机程序在计算机上执行时,使得所述计算机执行如本实施例提供的内存分配方法中的流程。
本申请实施例还提供一种电子设备,包括存储器,处理器,所述处理器通过调用所述存储器中存储的计算机程序,用于执行本实施例提供的内存分配方法中的流程。
例如,上述电子设备可以是诸如平板电脑或者智能手机等移动终端。请参阅图8,图8为本申请实施例提供的电子设备的结构示意图。
该电子设备400可以包括存储器401、处理器402等部件。本领域技术人员可以理解,图8中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储器401可用于存储应用程序和数据。存储器401存储的应用程序中包含有可执行代码。应用程序可以组成各种功能模块。处理器402通过运行存储在存储器401的应用程序,从而执行各种功能应用以及数据处理。
处理器402是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器401内的应用程序,以及调用存储在存储器401内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。
在本实施例中,电子设备中的处理器402会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行代码加载到存储器401中,并由处理器402来运行存储在存储器401中的应用程序,从而实现流程:
当接收到线程发送的内存分配请求时,确定所述内存分配请求对应的内存需求量;
判断所述内存需求量是否小于预设阈值;
若所述内存需求量小于预设阈值,则从第一内存空间中靠近第一内存地址的空闲空间中,确定大小与所述内存需求量匹配的目标内存空间;
若所述内存需求量不小于预设阈值,则从第一内存空间中靠近第二内存地址的空闲空间中,确定大小与所述内存需求量匹配的目标内存空间;
将所述目标内存空间对应的内存地址发送至所述线程。
请参阅图9,电子设备400可以包括存储器401、处理器402、输入单元403、输出单元404、显示屏405等部件。
存储器401可用于存储应用程序和数据。存储器401存储的应用程序中包含有可执行代码。应用程序可以组成各种功能模块。处理器402通过运行存储在存储器401的应用程序,从而执行各种功能应用以及数据处理。
处理器402是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器401内的应用程序,以及调用存储在存储器401内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。
输入单元403可用于接收输入的数字、字符信息或用户特征信息(比如指纹),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
输出单元404可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。输出单元可包括显示面板。
显示屏405可以用于显示文字、图片等信息。
在本实施例中,电子设备中的处理器402会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行代码加载到存储器401中,并由处理器402来运行存储在存储器401中的应用程序,从而实现流程:
当接收到线程发送的内存分配请求时,确定所述内存分配请求对应的内存需求量;
判断所述内存需求量是否小于预设阈值;
若所述内存需求量小于预设阈值,则从第一内存空间中靠近第一内存地址的空闲空间中,确定大小与所述内存需求量匹配的目标内存空间;
若所述内存需求量不小于预设阈值,则从第一内存空间中靠近第二内存地址的空闲空间中,确定大小与所述内存需求量匹配的目标内存空间;
将所述目标内存空间对应的内存地址发送至所述线程。
在一些实施方式中,处理器402执行判断所述内存需求量是否小于预设阈值之前,还可以执行:确定所述内存分配请求对应的内存类型;当所述内存类型为第一类型时,执行判断所述内存需求量是否小于预设阈值;当所述内存类型为第二类型时,从第二内存空间中靠近第三内存地址的空闲空间中,确定大小与所述内存需求量匹配的第三内存空间;将所述第三内存空间对应的内存地址发送至所述线程。
在一些实施方式中,处理器402执行判断所述内存需求量是否小于预设阈值之前,还可以执行:当所述内存类型为第一类型时,判断所述第一内存空间对应的空闲空间的大小是否不小于所述内存需求量;若所述第一内存空间对应的空闲空间的大小不小于所述内存需求量,则执行判断所述内存需求量是否小于预设阈值。
在一些实施方式中,处理器402执行判断所述第一内存空间对应的空闲空间的大小是否不小于所述内存需求量之后,还可以执行:若所述第一内存空间对应的空闲空间的大小小于所述内存需求量,则从第二内存空间中靠近第四内存地址的空闲空间中,确定大小与所述内存需求量匹配的第四内存空间;将所述第四内存空间对应的内存地址发送至所述线程。
在一些实施方式中,处理器402执行确定大小与所述内存需求量匹配的目标内存空间之后,还可以执行:当未能成功确定出目标内存空间时,从第二内存空间中靠近第四内存地址的空闲空间中,确定大小与所述内存需求量匹配的第五内存空间;将所述第五内存空间对应的内存地址发送至所述线程。
在一些实施方式中,处理器402执行确定所述内存分配请求对应的内存需求量之前,还可以执行:确定所述线程对应的应用程序;判断所述应用程序的类型是否为预设应用类型;若所述应用程序的类型为预设应用类型,则执行确定所述内存分配请求对应的内存需求量。
在一些实施方式中,所述第一内存地址为所述第一内存空间的起始地址,所述第二内存地址为所述第一内存空间的终止地址;或者,所述第一内存地址为所述第一内存空间的终止地址,所述第二内存地址为所述第一内存空间的起始地址。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对内存分配方法的详细描述,此处不再赘述。
本申请实施例提供的所述内存分配装置与上文实施例中的内存分配方法属于同一构思,在所述内存分配装置上可以运行所述内存分配方法实施例中提供的任一方法,其具体实现过程详见所述内存分配方法实施例,此处不再赘述。
需要说明的是,对本申请实施例所述内存分配方法而言,本领域普通技术人员可以理解实现本申请实施例所述内存分配方法的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,所述计算机程序可存储于一计算机可读取存储介质中,如存储在存储器中,并被至少一个处理器执行,在执行过程中可包括如所述内存分配方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)等。
对本申请实施例的所述内存分配装置而言,其各功能模块可以集成在一个处理芯片中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中,所述存储介质譬如为只读存储器,磁盘或光盘等。
以上对本申请实施例所提供的一种内存分配方法、装置、存储介质及电子设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种内存分配方法,其特征在于,包括:
当接收到线程发送的内存分配请求时,确定所述内存分配请求对应的内存需求量;
判断所述内存需求量是否小于预设阈值;
若所述内存需求量小于预设阈值,则从第一内存空间中靠近第一内存地址的空闲空间中,确定大小与所述内存需求量匹配的目标内存空间;
若所述内存需求量不小于预设阈值,则从第一内存空间中靠近第二内存地址的空闲空间中,确定大小与所述内存需求量匹配的目标内存空间;
将所述目标内存空间对应的内存地址发送至所述线程。
2.根据权利要求1所述的内存分配方法,其特征在于,所述判断所述内存需求量是否小于预设阈值之前,还包括:
确定所述内存分配请求对应的内存类型;
当所述内存类型为第一类型时,执行判断所述内存需求量是否小于预设阈值;
当所述内存类型为第二类型时,从第二内存空间中靠近第三内存地址的空闲空间中,确定大小与所述内存需求量匹配的第三内存空间;
将所述第三内存空间对应的内存地址发送至所述线程。
3.根据权利要求2所述的内存分配方法,其特征在于,所述判断所述内存需求量是否小于预设阈值之前,还包括:
当所述内存类型为第一类型时,判断所述第一内存空间对应的空闲空间的大小是否不小于所述内存需求量;
若所述第一内存空间对应的空闲空间的大小不小于所述内存需求量,则执行判断所述内存需求量是否小于预设阈值。
4.根据权利要求3所述的内存分配方法,其特征在于,所述判断所述第一内存空间对应的空闲空间的大小是否不小于所述内存需求量之后,还包括:
若所述第一内存空间对应的空闲空间的大小小于所述内存需求量,则从第二内存空间中靠近第四内存地址的空闲空间中,确定大小与所述内存需求量匹配的第四内存空间;
将所述第四内存空间对应的内存地址发送至所述线程。
5.根据权利要求1所述的内存分配方法,其特征在于,所述确定大小与所述内存需求量匹配的目标内存空间之后,还包括:
当未能成功确定出目标内存空间时,从第二内存空间中靠近第四内存地址的空闲空间中,确定大小与所述内存需求量匹配的第五内存空间;
将所述第五内存空间对应的内存地址发送至所述线程。
6.根据权利要求1所述的内存分配方法,其特征在于,所述确定所述内存分配请求对应的内存需求量之前,还包括:
确定所述线程对应的应用程序;
判断所述应用程序的类型是否为预设应用类型;
若所述应用程序的类型为预设应用类型,则执行确定所述内存分配请求对应的内存需求量。
7.根据权利要求1所述的内存分配方法,其特征在于,所述第一内存地址为所述第一内存空间的起始地址,所述第二内存地址为所述第一内存空间的终止地址;或者,所述第一内存地址为所述第一内存空间的终止地址,所述第二内存地址为所述第一内存空间的起始地址。
8.一种内存分配装置,其特征在于,包括:
第一确定模块,用于当接收到线程发送的内存分配请求时,确定所述内存分配请求对应的内存需求量;
判断模块,用于判断所述内存需求量是否小于预设阈值;
第二确定模块,用于若所述内存需求量小于预设阈值,则从第一内存空间中靠近第一内存地址的空闲空间中,确定大小与所述内存需求量匹配的目标内存空间;
第二确定模块,还用于若所述内存需求量不小于预设阈值,则从第一内存空间中靠近第二内存地址的空闲空间中,确定大小与所述内存需求量匹配的目标内存空间;
发送模块,用于将所述目标内存空间对应的内存地址发送至所述线程。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行权利要求1至7任一项所述的内存分配方法。
10.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行权利要求1至7任一项所述的内存分配方法。
CN201911261551.2A 2019-12-10 2019-12-10 内存分配方法、装置、存储介质及电子设备 Active CN111090521B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911261551.2A CN111090521B (zh) 2019-12-10 2019-12-10 内存分配方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911261551.2A CN111090521B (zh) 2019-12-10 2019-12-10 内存分配方法、装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN111090521A true CN111090521A (zh) 2020-05-01
CN111090521B CN111090521B (zh) 2023-05-02

Family

ID=70395495

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911261551.2A Active CN111090521B (zh) 2019-12-10 2019-12-10 内存分配方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN111090521B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111611083A (zh) * 2020-05-26 2020-09-01 北京字节跳动网络技术有限公司 虚拟内存上限检测方法、装置、计算机设备及存储介质
CN111708715A (zh) * 2020-06-17 2020-09-25 Oppo广东移动通信有限公司 内存分配方法、内存分配装置及终端设备
CN112214313A (zh) * 2020-09-22 2021-01-12 深圳云天励飞技术股份有限公司 内存分配方法及相关设备
CN113032156A (zh) * 2021-05-25 2021-06-25 北京金山云网络技术有限公司 内存分配方法和装置、电子设备和存储介质
CN113064724A (zh) * 2021-03-26 2021-07-02 华控清交信息科技(北京)有限公司 一种内存分配管理方法、装置和用于内存分配管理的装置
CN116719752A (zh) * 2022-09-30 2023-09-08 荣耀终端有限公司 一种分配内存的方法、电子设备及存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101055533A (zh) * 2007-05-28 2007-10-17 中兴通讯股份有限公司 一种多线程处理器动态内存管理系统及方法
CN101414281A (zh) * 2007-10-19 2009-04-22 大唐移动通信设备有限公司 一种内存管理方法及系统
CN103019949A (zh) * 2012-12-27 2013-04-03 华为技术有限公司 一种写合并属性内存空间的分配方法及装置
CN103389945A (zh) * 2013-07-05 2013-11-13 杭州华三通信技术有限公司 一种内存管理的方法及装置
US20140380017A1 (en) * 2008-02-08 2014-12-25 Freescale Semiconductor, Inc. Memory management and method for allocation using free-list
US20150153958A1 (en) * 2013-12-03 2015-06-04 Samsung Electronics Co., Ltd. Electronic device and method for memory allocation in electronic device
CN109144718A (zh) * 2018-07-06 2019-01-04 北京比特大陆科技有限公司 一种内存分配方法、内存释放方法以及相关设备
CN109375985A (zh) * 2018-09-06 2019-02-22 新华三技术有限公司成都分公司 内存动态管理方法及装置
CN109656836A (zh) * 2018-12-24 2019-04-19 新华三技术有限公司 一种数据处理方法及装置
CN109815162A (zh) * 2019-01-28 2019-05-28 Oppo广东移动通信有限公司 内存管理方法、装置、移动终端及存储介质
CN110245091A (zh) * 2018-10-29 2019-09-17 浙江大华技术股份有限公司 一种内存管理的方法、装置及计算机存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101055533A (zh) * 2007-05-28 2007-10-17 中兴通讯股份有限公司 一种多线程处理器动态内存管理系统及方法
CN101414281A (zh) * 2007-10-19 2009-04-22 大唐移动通信设备有限公司 一种内存管理方法及系统
US20140380017A1 (en) * 2008-02-08 2014-12-25 Freescale Semiconductor, Inc. Memory management and method for allocation using free-list
CN103019949A (zh) * 2012-12-27 2013-04-03 华为技术有限公司 一种写合并属性内存空间的分配方法及装置
CN103389945A (zh) * 2013-07-05 2013-11-13 杭州华三通信技术有限公司 一种内存管理的方法及装置
US20150153958A1 (en) * 2013-12-03 2015-06-04 Samsung Electronics Co., Ltd. Electronic device and method for memory allocation in electronic device
CN109144718A (zh) * 2018-07-06 2019-01-04 北京比特大陆科技有限公司 一种内存分配方法、内存释放方法以及相关设备
CN109375985A (zh) * 2018-09-06 2019-02-22 新华三技术有限公司成都分公司 内存动态管理方法及装置
CN110245091A (zh) * 2018-10-29 2019-09-17 浙江大华技术股份有限公司 一种内存管理的方法、装置及计算机存储介质
CN109656836A (zh) * 2018-12-24 2019-04-19 新华三技术有限公司 一种数据处理方法及装置
CN109815162A (zh) * 2019-01-28 2019-05-28 Oppo广东移动通信有限公司 内存管理方法、装置、移动终端及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AL-YATAMA等: "Memory allocation algorithm for cloud services" *
栾添: "三维引擎中内存对象管理器的设计与实现" *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111611083A (zh) * 2020-05-26 2020-09-01 北京字节跳动网络技术有限公司 虚拟内存上限检测方法、装置、计算机设备及存储介质
CN111611083B (zh) * 2020-05-26 2023-05-02 北京字节跳动网络技术有限公司 虚拟内存上限检测方法、装置、计算机设备及存储介质
CN111708715A (zh) * 2020-06-17 2020-09-25 Oppo广东移动通信有限公司 内存分配方法、内存分配装置及终端设备
CN111708715B (zh) * 2020-06-17 2023-08-15 Oppo广东移动通信有限公司 内存分配方法、内存分配装置及终端设备
CN112214313A (zh) * 2020-09-22 2021-01-12 深圳云天励飞技术股份有限公司 内存分配方法及相关设备
WO2022062833A1 (zh) * 2020-09-22 2022-03-31 深圳云天励飞技术股份有限公司 内存分配方法及相关设备
CN113064724A (zh) * 2021-03-26 2021-07-02 华控清交信息科技(北京)有限公司 一种内存分配管理方法、装置和用于内存分配管理的装置
CN113032156A (zh) * 2021-05-25 2021-06-25 北京金山云网络技术有限公司 内存分配方法和装置、电子设备和存储介质
CN113032156B (zh) * 2021-05-25 2021-10-15 北京金山云网络技术有限公司 内存分配方法和装置、电子设备和存储介质
CN116719752A (zh) * 2022-09-30 2023-09-08 荣耀终端有限公司 一种分配内存的方法、电子设备及存储介质

Also Published As

Publication number Publication date
CN111090521B (zh) 2023-05-02

Similar Documents

Publication Publication Date Title
CN111090521B (zh) 内存分配方法、装置、存储介质及电子设备
CN111078408B (zh) 内存分配方法、装置、存储介质及电子设备
KR102363526B1 (ko) 복수의 엑세스 모드를 지원하는 불휘발성 메모리를 포함하는 시스템 및 그것의 엑세스 방법
CN111352861B (zh) 内存压缩方法、装置及电子设备
WO2014051781A1 (en) Techniques for dynamic physical memory partitioning
US11360884B2 (en) Reserved memory in memory management system
EP3633515B1 (en) Memory allocation method, apparatus, electronic device, and computer storage medium
CN109712060B (zh) 一种基于gpu容器技术的云桌面显卡共享方法及系统
CN111240601B (zh) 一种分区空间的超级块确定方法、装置、设备及存储介质
CN110895492B (zh) 设备控制方法、装置、存储介质及电子设备
CN111813713A (zh) 数据加速运算处理方法、装置及计算机可读存储介质
CN111078410A (zh) 内存分配方法、装置、存储介质及电子设备
CN112463356A (zh) Gpu堆管理器内存地址分配方法、系统、终端及存储介质
TWI506538B (zh) 動態記憶體分配技術
US8751724B2 (en) Dynamic memory reconfiguration to delay performance overhead
CN115509953A (zh) 内存回收方法及其装置
CN111444117B (zh) 存储空间碎片化实现方法、装置、存储介质及电子设备
CN113485791B (zh) 配置方法和访问方法、装置、虚拟化系统和存储介质
CN114647446A (zh) 存储级存储装置、计算机模块及服务器系统
US20150326684A1 (en) System and method of accessing and controlling a co-processor and/or input/output device via remote direct memory access
CN115357389A (zh) 内存管理方法、装置及电子设备
CN114564315A (zh) 内存分配方法、装置、电子设备及介质
CN114153560A (zh) 一种虚拟中断处理方法、装置、设备及介质
CN113032290A (zh) 闪存配置方法、装置、电子设备和存储介质
EP3048541A1 (en) File access method and device

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