CN112114962A - 一种内存分配方法及装置 - Google Patents
一种内存分配方法及装置 Download PDFInfo
- Publication number
- CN112114962A CN112114962A CN202010924360.6A CN202010924360A CN112114962A CN 112114962 A CN112114962 A CN 112114962A CN 202010924360 A CN202010924360 A CN 202010924360A CN 112114962 A CN112114962 A CN 112114962A
- Authority
- CN
- China
- Prior art keywords
- memory
- application program
- memory allocation
- file
- flash
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 276
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000013507 mapping Methods 0.000 claims abstract description 42
- 230000006870 function Effects 0.000 claims abstract description 34
- 238000012545 processing Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
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)
Abstract
本公开关于一种内存分配方法及装置,涉及计算机技术领域,本方法应用于安装有IOS操作系统的计算设备,解决IOS操作系统出现的OOM问题,从而避免图片、视频画质被压缩,提高用户体验感。具体方案包括:获取用于请求为应用程序分配内存的内存分配请求;响应于内存分配请求,调用文件映射函数,为应用程序分配闪存文件空间。
Description
技术领域
本公开涉及信息技术领域,尤其涉及一种内存分配方法及装置。
背景技术
操作系统一般会为应用程序配置一定大小的内存资源,如16兆字节(MB)或24MB,用以存储应用程序在运行过程中所获取到的数据。当应用程序涉及到多媒体资源的资源处理时,常常会出现占用大量内存资源的情况,这样,很容易会超过操作系统对该应用程序的内存限制,引发应用程序可用内存耗尽(out of memory,OMM),进而导致应用程序的异常退出。
由此可见,如何合理地为应用程序分配可用内存至关重要。
发明内容
本公开提供一种内存分配方法及装置,以解决应用在使用过程中发生的OOM问题,提高用户满意度。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种内存分配方法,应用于安装有IOS操作系统的计算设备,方法包括:
获取用于请求为应用程序分配内存的内存分配请求;
响应于内存分配请求,调用文件映射函数,为应用程序分配闪存文件空间。
可选的,调用文件映射函数,为应用程序分配闪存文件空间之前,内存分配方法还包括:
确定应用程序所需的内存容量大于预设阈值。
可选的,内存分配方法还包括:
若应用程序所需的内存容量小于预设阈值,为应用程序分配物理内存。
可选的,文件映射函数对应的内存包括闪存文件空间和物理内存。
可选的,为应用程序分配的闪存文件空间的最大容量与IOS操作系统版本对应。
根据本公开实施例的第二方面,提供一种内存分配装置,装置应用于安装有IOS操作系统的计算设备,装置包括:
获取模块,被配置为获取用于请求为应用分配内存的内存分配请求;
处理模块,被配置为响应于内存分配请求,调用文件映射函数,为应用程序分配闪存文件空间。
可选的,内存分配装置还包括:
确定模块,被配置为确定应用程序所需的内存容量大于预设阈值。
可选的,内存分配装置包括:
处理模块,还被配置为若应用程序所需的内存容量小于预设阈值,为应用程序分配物理内存。
根据本公开实施例的第三方面,提供一种服务器,该服务器包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,处理器被配置为执行指令,以实现上述第一方面中任一种内存分配方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,计算机可读存储介质上存储有指令,当计算机可读存储介质中的指令由服务器的处理器执行时,使得服务器能够执行上述第一方面中任一种内存分配方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,包含指令,当其在计算机上运行时,使得计算机执行如第一方面中任一种内存分配方法。
本公开提供的技术方案至少带来以下有益效果:操作系统接收到应用程序的内存分配请求后,调用内存分配器进行内存分配,内存分配器可使用多种分配策略以达到高效分配。具体分配策略包括:1)对于接收到的应用程序的内存分配请求,全部分配闪存文件空间(通过内存映射文件函数获取)至应用程序;2)根据预设的内存容量分配阈值,对于接收到的应用程序的内存分配请求判断所需的内存容量,若内存容量小于分配阈值,为应用程序分配物理内存;若请求的内存容量大于分配阈值,为应用程序分配闪存文件空间(通过内存映射文件函数获取)。同时,本申请还创建内存池,内存池包括物理内存和闪存文件空间(通过内存映射文件函数获取);通过将物理内存和闪存文件空间拼装成一个内存池,上层应用可直接调用统一的内存池函数,对应用程序进行内存分配。因此,无论选择何种方式都可以解决关于应用程序的内存分配请求进行分配内存资源的需求,从而极大地减少了发生OOM的几率,大大提高了应用程序的稳定性,进一步提升用户体验,且通用性高。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种内存分配方法的流程图;
图2是根据一示例性实施例示出的一种内存分配方法的流程图;
图3是根据一示例性实施例示出的一种内存分配方法的流程图;
图4是根据一示例性实施例示出的一种内存分配装置的结构框图;
图5是根据一示例性实施例示出的一种内存分配装置的结构框图;
图6是根据一示例性实施例示出的一种内存分配装置的结构框图;
图7是根据一示例性实施例示出的一种内存分配装置的结构框图;
图8是根据一示例性实施例示出的一种服务器的结构框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
下面先对本公开实施例中涉及到的术语/名词进行解释说明。
1.OOM:在iPhone手机上,内存耗尽导致的应用程序被系统强制退出现象。IOS操作系统上的OOM问题,根本原因是应用内存占用超过了系统允许的单个应用所能使用内存的阈值。
2.TCMalloc:TCMalloc全称Thread-Caching Malloc,即线程缓存的malloc,实现了高效的多线程内存管理,用于替代系统的内存分配相关的函数(malloc、free,new,new等)。TCMalloc是gperftools的一部分,除TCMalloc外,gperftools还包括heap-checker、heap-profiler和cpu-profiler。由Google公司开源的高性能内存分配框架,适用于各种PC(个人计算机)平台,比如Windows平台、Linux平台等。
3.mmap:是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再调用read,write等系统调用函数。相反,内核空间对这段区域的修改也直接反映用户空间,从而可以实现不同进程间的文件共享。
IOS操作系统判断应用程序是否OOM,根据应用程序当前的内存占用是否超过阈值来判断。应用程序所能够获取的内存不仅可以通过IOS操作系统的malloc、calloc、new等分配函数提供,还可以通过mmap获得匿名共享内存。mmap包括内存映射和文件映射两种用法。IOS操作系统在计算应用内存占用时,通过内存映射分配的内存被计入内存占用,而文件映射分配的内存不会被计入内存占用。因此,可使用内存映射的方式申请更多的内存。
本方案的思路为使用通过文件映射方式得到不计入内存使用的内存为应用程序提供内存资源。本公开实施例提供的内存分配方法应用于IOS操作系统使用的场景中。
图1是根据一示例性实施例示出的一种内存分配方法的应用场景示意图,该应用场景至少包括一个计算设备。其中,计算设备包括处理器01、内存分配器02、物理内存03、闪存文件空间04;处理器01用于根据应用程序的内存分配请求调用内存分配器为应用程序分配内存,具体分配的内存为物理内存或者闪存文件空间(等同于下文中提到的通过文件映射方式得到的闪存文件空间)。
可选地,计算设备可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。计算设备可以包括处理器、存储器以及网络接口等。
在一种可实施的方式中,结合图1,如图2所示,处理器01获取应用程序的内存分配请求,处理器01将应用程序的内存分配请求发送给内存分配器02,内存分配器02根据预设的分配策略,分配物理内存03或者闪存文件空间04以供使用,处理器01调用内存分配器分配的内存发送至应用程序。
本领域技术人员应能理解上述计算设备仅为举例,其他现有的或今后可能出现的如可适用于本公开,也应包含在本公开保护范围以内,并在此以引用方式包含于此。
下面结合各个附图,对本公开实施例提供的内存分配方法进行示例性说明。
图3是根据一示例性实施例示出的一种内存分配方法的流程图,该方法可以包括步骤301-步骤302。
301、获取用于请求为应用程序分配内存的内存分配请求;
该分配请求为应用程序请求操作系统分配内存,以执行用户的操作需求。具体的,内存分配请求中包括应用程序所需的内存容量。
302、响应于内存分配请求,调用文件映射函数,为应用程序分配闪存文件空间。
系统的物理内存是有限的,而对内存的需求是变化的,程序的动态性越强,内存管理就越重要,选择合适的内存管理算法会带来明显的性能提升。根据应用程序所需的内存容量使用线程内存分配器分配内存容量至应用程序。其中,线程内存分配器为TCMalloc,相较于其他的内存分配器TCMalloc具有如下优势:速度快、降低了锁争用、节省内存等。
在一具体的实施例中,根据应用程序发送的内存分配请求,TCMalloc调用文件映射函数(mmap)为应用程序分配闪存文件空间。应用程序使用闪存文件空间,从而降低IOS操作系统计算中的内存占用,从而实现避免OOM的问题。
具体的,文件映射函数(mmap)分配闪存文件空间的具体过程如下:
(一)进程启动映射过程,并且在虚拟内存空间为映射创建虚拟映射区域;
1、进程调用库函数mmap;
2、在当前进程的虚拟地址空间中寻找一段满足要求的空闲的连续的虚拟地址;
3、为这个虚拟地址区分配一个vm_area_struct数据结构,并且对其进行初始化;
4、将新建的虚拟区结构插进进程的虚拟地址区域链表或者AVL树中。
(二)调用内核mmap函数,实现文件的物理地址和进程的虚拟地址区的一一映射关系;
1、通过待映射文件指针,在文件描述表中找到与之对应的文件描述符,再根据文件描述符链接到内核中“已打开文件集”中找到该文件的文件结构体(structfile),这个structfile中维护着和这个已打开文件相关的各项信息;
2、通过文件的struct file链接到file_operations模块,调用内核函数mmap;
3、内核mmap函数通过虚拟文件系统inode模块定位到文件磁盘的物理地址;
4、通过remap_pfn_range建立页表,实现文件物理地址和进程虚拟地址区域的映射关系,但是此时这片虚拟地址并没有任何数据关联到主存。
(三)进程发起对这片映射空间的访问,引发缺页异常,实现文件内容到主存的拷贝;
1、进程read/write访问虚拟地址空间这一段映射地址,通过查询页表发现这一段并不在物理页面上,从而引发了缺页。
2、确认无非法操作之后,内核发起请求调页过程,调页先在交换缓存空间寻找需访问的内存页,如果没有就调用nopage函数,把所缺的页从闪存空间中装入主存中,之后进程可以对这片主存进行read/write,如果操作改变了其内容,一定的时间之后,系统会自动会写脏页面到对应的闪存空间地址,也即完成了写入到文件的过程。
其中read/write操作为:进程发起read请求,内核查看进程文件描述符表,定位到内核已打开文件集上的文件信息,从而找到此文件的inode,inode在address_space上查找要请求的文件页是否已从缓存在页缓存中,存在则直接返回这片文件页的内容,不存在通过inode定位到文件闪存空间地址,将数据从闪存空间复制到页缓存,之后再次发起读页面过程进而将页缓存的数据发给用户进程。
图4是根据一示例性实施例示出的一种内存分配方法的流程图,该方法可以包括步骤401-步骤403b。
401、获取用于请求为应用程序分配内存的内存分配请求;
该分配请求为应用程序请求操作系统分配内存,以执行用户的操作需求。
402、响应于内存分配请求,确定应用程序所需的内存容量是否大于预设阈值;
IOS操作系统中可设定多种分配策略。其中一种分配策略的判断条件为:应用程序所需的内存容量是否大于预设阈值;通过使用不同的分配策略来适应不同的使用环境来提搞分配效率,提高用户的体验感。
示例性的,预设阈值为应用程序初始化时的内存阈值。同时,预设阈值可自由设定,依据应用程序的使用环境、使用场景确定。
403a、调用文件映射函数,为应用程序分配闪存文件空间。
当应用程序所需的内存容量大于预设阈值时,内存分配器调用文件映射函数(mmap)为应用程序分配闪存文件空间,由于闪存文件空间与物理内存具有唯一确定的对应关系,当操作系统执行应用程序时,可根据闪存文件空间地址访问对应的物理内存从而实现操作功能。
403b、为应用程序分配物理内存。
当确定应用程序所需的内存容量小于预设阈值时,内存分配器调用物理内存为应用程序进行分配。由于应用程序所需的内存容量小于预设阈值,因此在应用程序运行过程中不会产生OOM问题,为了更快响应用户操作指令和提供更高的用户体验,直接分配物理内存至应用程序使用。
进一步地,文件映射函数对应的内存包括闪存文件空间和物理内存。
在一具体的实施例中,通过将物理内存接口和闪存文件空间接口(通过文件映射的方式得到)所能获得的内存拼装成一个内存池,提供统一的分配接口给内存分配器,内存分配器通过调用接口函数,可直接得到2种内存资源。同时,内存分配器根据应用程序的内存容量请求,确定分配的内存容量和内存类型(物理内存、闪存文件空间、物理内存和闪存文件空间)至应用程序。
进一步地,为应用程序分配的闪存文件空间的最大容量与IOS操作系统版本对应。具体的,在实际应用测试过程中发现,通过文件映射方式所能够获得的内存资源是有上限的,不同IOS操作系统版本所能够获取的内存资源大小并不完全一致(如iphone6最大可以获得1.6G的闪存文件空间,而实际应用中限定了最大使用上限为1G,足以应对常规的OOM);相对于OOM问题而言,上述通过文件映射方式获取的内存资源在大部分IOS版本上已经超过了OOM内存阈值的一半,是非常巨量的内存配额,足够缓解绝大部分OOM问题。
采用本发明实施例,可通过文件映射的方式为应用程序分配内存,由于系统设定分配策略,根据分配策略可按照不同的内存需求选择最合适的方式进行分配。同时,本发明提出将物理内存和闪存文件空间(通过文件映射的方式得到)结合成内存池供内存分配器使用,因此,在应用程序请求分配内存时,可根据实际应用场景进行内存分配,如直接分配物理内存、闪存文件空间(通过文件映射的方式得到)或分配内存池接口。不仅仅避免了OOM问题,而且进一步提高了工作效率,提升用户满意度,且通用性高。
基于统一发明构思,本发明实施例中还提供了一种与内存分配方法对应的内存分配装置,由于该装置解决问题的原理与本发明实施例内存分配方法相似,因此该装置的实施可以参见方法的实施,重复之处不在赘述。
图5是根据一示例性实施例示出的一种内存分配装置结构示意图,该装置应用于安装有IOS操作系统的终端,该内存分配装置包括:获取模块51、处理模块52。
获取模块51,被配置为获取用于请求为应用程序分配内存的内存分配请求;
处理模块52,被配置为响应于内存分配请求,调用文件映射函数,为应用程序分配闪存文件空间。
图6是根据一示例性实施例示出的一种内存分配装置结构示意图,该装置应用于安装有IOS操作系统的终端,该内存分配装置包括:获取模块61、确定模块62、处理模块63。
获取模块61,被配置为获取用于请求为应用程序分配内存的内存分配请求;
确定模块62,被配置为响应于内存分配请求,确定应用程序所需的内存容量是否大于预设阈值。
处理模块63,被配置为当应用程序所需的内存容量大于预设阈值时,调用文件映射函数,为应用程序分配闪存文件空间;
当应用程序所需的内存容量小于预设阈值时,为应用程序分配物理内存。
进一步地,文件映射函数对应的内存包括闪存文件空间和物理内存。
进一步地,为应用程序分配的闪存文件空间的最大容量与IOS操作系统版本对应。
如图7所示,内存分配装置可以包括至少一个处理器71,通信总线72,存储器73以及至少一个通信接口74。
处理器71可以是一个CPU,微处理单元,ASIC,或一个或多个用于控制本公开方案程序执行的集成电路。
通信总线72可包括一通路,在上述组件之间传送信息。
通信接口74,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。
存储器73可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理单元相连接。存储器也可以和处理单元集成在一起。
其中,存储器73用于存储执行本公开方案的应用程序代码,并由处理器71来控制执行。处理器71用于执行存储器73中存储的应用程序代码,从而实现本公开方法中的功能。
在具体实现中,作为一种实施例,处理器71可以包括一个或多个CPU,例如图7中的CPU 0和CPU 1。
在具体实现中,作为一种实施例,内存分配装置可以包括多个处理器,例如图7中的处理器71和处理器75。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,内存分配装置还可以包括输入设备76和输出设备77。输入设备76和处理器71通信,可以以多种方式接受用户的输入。例如,输入设备76可以是鼠标、键盘、触摸屏设备或传感设备等。输出设备77和处理器71通信,可以以多种方式来显示信息。例如,输出设备77可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备等。
本领域技术人员可以理解,图7中示出的结构并不构成对终端的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图8是根据一示例性实施例示出的一种服务器的结构框图,该服务器可以是内存分配装置。该服务器可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器81和一个或一个以上的存储器82。其中,存储器82中存储有至少一条指令,至少一条指令由处理器81加载并执行以实现上述各个方法实施例提供的内存分配方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
本公开还提供了一种包括指令的计算机可读存储介质,计算机可读存储介质上存储有指令,当计算机可读存储介质中的指令由计算机设备的处理器执行时,使得计算机能够执行上述所示实施例提供的内存分配方法。例如,计算机可读存储介质可以为包括指令的存储器73,上述指令可由终端的处理器71执行以完成上述方法。又例如,计算机可读存储介质可以为包括指令的存储器82,上述指令可由服务器的处理器81执行以完成上述方法。可选地,计算机可读存储介质可以是非临时性计算机可读存储介质,例如,非临时性计算机可读存储介质可以是ROM、RAM、CD-ROM、磁带、软盘和光数据存储设备等。
本公开还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机设备执行上述所示实施例提供的内存分配方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种内存分配方法,其特征在于,所述方法应用于安装有IOS操作系统的计算设备,所述方法包括:
获取用于请求为应用程序分配内存的内存分配请求;
响应于所述内存分配请求,调用文件映射函数,为所述应用程序分配闪存文件空间。
2.根据权利要求1所述的内存分配方法,其特征在于,所述调用文件映射函数,为所述应用程序分配闪存文件空间之前,所述内存分配方法还包括:
确定所述应用程序所需的内存容量大于预设阈值。
3.根据权利要求2所述的内存分配方法,其特征在于,所述内存分配方法还包括:
若所述应用程序所需的内存容量小于所述预设阈值,为所述应用程序分配物理内存。
4.根据权利要求1-3中任意一项所述的内存分配方法,其特征在于,
所述文件映射函数对应的内存包括所述闪存文件空间和物理内存。
5.根据权利要求1所述的内存分配方法,其特征在于,
为所述应用程序分配的所述闪存文件空间的最大容量与所述IOS操作系统版本对应。
6.一种内存分配装置,其特征在于,所述装置应用于安装有IOS操作系统的计算设备,所述装置包括:
获取模块,被配置为获取用于请求为应用程序分配内存的内存分配请求;
处理模块,被配置为响应于所述内存分配请求,调用文件映射函数,为所述应用程序分配闪存文件空间。
7.根据权利要求6所述的内存分配装置,其特征在于,所述内存分配装置还包括:
确定模块,被配置为确定所述应用程序所需的内存容量大于预设阈值。
8.根据权利要求7所述的内存分配装置,其特征在于,所述内存分配装置包括:
处理模块,被配置为若所述应用程序所需的内存容量小于所述预设阈值,为所述应用程序分配物理内存。
9.一种服务器,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1-5中任一项所述的内存分配方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,当所述计算机可读存储介质中的指令由服务器的处理器执行时,使得所述服务器能够执行如权利要求1-5中任一项所述的内存分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010924360.6A CN112114962A (zh) | 2020-09-04 | 2020-09-04 | 一种内存分配方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010924360.6A CN112114962A (zh) | 2020-09-04 | 2020-09-04 | 一种内存分配方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112114962A true CN112114962A (zh) | 2020-12-22 |
Family
ID=73803491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010924360.6A Pending CN112114962A (zh) | 2020-09-04 | 2020-09-04 | 一种内存分配方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112114962A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022213875A1 (zh) * | 2021-04-08 | 2022-10-13 | 华为技术有限公司 | 一种内存扩展方法以及相关设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808219A (zh) * | 2014-12-29 | 2016-07-27 | 中国移动通信集团公司 | 一种内存空间分配方法及装置 |
US20160371194A1 (en) * | 2015-06-19 | 2016-12-22 | Sap Se | Numa-aware memory allocation |
CN108062247A (zh) * | 2016-11-09 | 2018-05-22 | 腾讯科技(深圳)有限公司 | 一种内存管理方法及系统 |
CN109683818A (zh) * | 2018-12-17 | 2019-04-26 | 联想(北京)有限公司 | 一种数据存储方法、设备及存储介质 |
CN110489232A (zh) * | 2019-08-12 | 2019-11-22 | 新华三技术有限公司成都分公司 | 资源隔离方法、装置、电子设备及存储介质 |
CN110928803A (zh) * | 2018-09-19 | 2020-03-27 | 阿里巴巴集团控股有限公司 | 一种内存管理方法及装置 |
CN111367755A (zh) * | 2020-02-17 | 2020-07-03 | 上海基分文化传播有限公司 | 一种移动终端的用户日志写入方法及系统 |
CN111522659A (zh) * | 2020-04-15 | 2020-08-11 | 联想(北京)有限公司 | 一种空间使用方法和装置 |
-
2020
- 2020-09-04 CN CN202010924360.6A patent/CN112114962A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808219A (zh) * | 2014-12-29 | 2016-07-27 | 中国移动通信集团公司 | 一种内存空间分配方法及装置 |
US20160371194A1 (en) * | 2015-06-19 | 2016-12-22 | Sap Se | Numa-aware memory allocation |
CN108062247A (zh) * | 2016-11-09 | 2018-05-22 | 腾讯科技(深圳)有限公司 | 一种内存管理方法及系统 |
CN110928803A (zh) * | 2018-09-19 | 2020-03-27 | 阿里巴巴集团控股有限公司 | 一种内存管理方法及装置 |
CN109683818A (zh) * | 2018-12-17 | 2019-04-26 | 联想(北京)有限公司 | 一种数据存储方法、设备及存储介质 |
CN110489232A (zh) * | 2019-08-12 | 2019-11-22 | 新华三技术有限公司成都分公司 | 资源隔离方法、装置、电子设备及存储介质 |
CN111367755A (zh) * | 2020-02-17 | 2020-07-03 | 上海基分文化传播有限公司 | 一种移动终端的用户日志写入方法及系统 |
CN111522659A (zh) * | 2020-04-15 | 2020-08-11 | 联想(北京)有限公司 | 一种空间使用方法和装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022213875A1 (zh) * | 2021-04-08 | 2022-10-13 | 华为技术有限公司 | 一种内存扩展方法以及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200220924A1 (en) | Service Deployment Method and Function Management Platform Under Serverless Architecture | |
US20190220418A1 (en) | Memory Management Method and Apparatus | |
CN102819497B (zh) | 一种内存分配方法、装置及系统 | |
CN113674133A (zh) | Gpu集群共享显存系统、方法、装置及设备 | |
US20160352821A1 (en) | Method and system for allocating resources for virtual hosts | |
US20050240748A1 (en) | Locality-aware interface for kernal dynamic memory | |
CN110727517A (zh) | 一种基于分区设计的内存分配方法和装置 | |
CN116302491A (zh) | 内存管理方法、装置、计算机设备及存储介质 | |
EP3249539B1 (en) | Method and device for accessing data visitor directory in multi-core system | |
CN115421924A (zh) | 一种内存分配方法、装置及设备 | |
US20200409833A1 (en) | Reducing fragmentation of computer memory | |
US20140289739A1 (en) | Allocating and sharing a data object among program instances | |
CN110162395B (zh) | 一种内存分配的方法及装置 | |
CN112650692A (zh) | 堆内存分配方法、装置及存储介质 | |
CN112114962A (zh) | 一种内存分配方法及装置 | |
CN115729438A (zh) | 数据访问方法、装置及存储介质 | |
CN113010453A (zh) | 一种内存管理的方法、系统、设备及可读存储介质 | |
CN114253456A (zh) | 一种缓存负载均衡方法和装置 | |
CN109408412B (zh) | 内存预取控制方法、装置及设备 | |
CN116225693A (zh) | 元数据管理方法、装置、计算机设备及存储介质 | |
WO2022262623A1 (zh) | 一种数据交换方法及装置 | |
US9405470B2 (en) | Data processing system and data processing method | |
WO2015161804A1 (zh) | 一种Cache分区的方法及装置 | |
CN114518962A (zh) | 内存的管理方法及装置 | |
CN115562871A (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 |