CN111382087A - 一种内存管理方法及电子设备 - Google Patents
一种内存管理方法及电子设备 Download PDFInfo
- Publication number
- CN111382087A CN111382087A CN201811653011.4A CN201811653011A CN111382087A CN 111382087 A CN111382087 A CN 111382087A CN 201811653011 A CN201811653011 A CN 201811653011A CN 111382087 A CN111382087 A CN 111382087A
- Authority
- CN
- China
- Prior art keywords
- memory
- size
- page
- electronic device
- task
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种内存管理方法及电子设备,该方法包括:电子设备在第一任务启动时,根据内存页需求的学习结果确定与所述第一任务对应的第一总内存和第一内存页大小,然后电子设备确定当前存在与所述第一总内存对应的内存页时,将所述内存页的内存页大小调整至与所述第一内存页大小相同,最终电子设备将调整之后的内存页分配给所述第一任务。
Description
技术领域
本申请涉及电子设备技术领域,尤其涉及一种内存管理方法及电子设备。
背景技术
近年来,随着电子产业和通信技术的飞速发展,目前智能家庭设备越来越多,例如手机,智能音箱、智能手环等,人们的生活变得越来越智能化。由于手机的便携性,且可以从应用商店上下载各种功能的应用软件,所以手机已经成为人们日常生活中必不可少的必备品。
随着手机的操作系统提供的功能不断丰富,操作系统内文件数量也急速上升,占用电子设备的内存空间较大,但内存空间又是有限的,手机的操作系统在内存管理中,为了减少内存的空间的浪费,采用了页作为分配的基本单位(内存页大小通常是4K),而且在分配的过程中采用了页号(逻辑地址)和页框号(物理地址)的映射表,这样使得程序在内存中的分布就不需要严格的连续分布了。
但是现有手机的操作系统在为应用程序分配内存时,通常使用固定的内存页大小。如果设置内存页的大小比较大,则存在内存缺页少,内存访问性能好,但内存开销大的问题;如果设置内存页的大小比较小,则存在内存开销小,但内存缺页多,内存访问性能差的问题。
发明内容
本申请提供一种内存管理方法及电子设备,用以提高内存访问效率,平衡内存开销大小和内存缺页大小之间存在矛盾的问题。
第一方面,本申请实施例提供了一种内存管理方法,所述方法适用于电子设备,该方法包括:电子设备在第一任务启动时,根据内存页需求的学习结果确定与第一任务对应的第一总内存和第一内存页大小,然后电子设备确定当前存在与第一总内存对应的内存页时,将内存页的内存页大小调整至与第一内存页大小相同,最终电子设备将调整之后的内存页分配给第一任务。
本申请实施例中,电子设备在任务启动时就为任务预留了内存,而且内存页大小也是与当前系统的物理内存和所需总内存匹配的,所以可以提高内存访问效率,平衡内存开销大小和内存缺页大小之间存在矛盾的问题。
在一种可能的设计中,电子设备确定当前不存在与第一总内存大小对应的内存时,则进行内存回收,生成与第一总内存大小对应的内存。
本申请实施例中,电子设备在确定内存不足时,及时对内存进行回收和对碎片进行整理,可以解决内存碎片化严重导致内存不足的问题。
在一种可能的设计中,电子设备采集第一任务每次被分配的历史内存信息,历史内存信息包括缺页率、占用的内存大小,以及内存页大小;电子设备根据占用的内存大小,确定第一任务所需要的第一总内存;电子设备根据缺页率,以及电子设备的总的物理内存大小,确定第一任务所需要的第一内存页大小,其中,缺页率越大,以及总的物理内存越大,一个内存页越大;电子设备生成学习结果,学习结果包括第一任务、第一总内存页和第一内存页大小的对应关系。
本申请实施例中,电子设备利用历史时段任务的内存分配信息,计算电子设备中该任务所需要的总内存和内存页大小,这一学习结果可以反映该任务的需求,作为下一次该任务的内存分配的依据,可以提高内存访问效率,平衡内存开销大小和内存缺页大小之间存在矛盾的问题。
在一种可能的设计中,电子设备还采集第一任务每次运行时所使用的文件信息,电子设备在第一任务启动时,将文件信息对应的文件缓存到调整之后的内存中。
本申请实施例中,电子设备还对任务所需文件进行学习,并在任务启动时就将文件加载到内存中,所以可以一定程度上提高任务处理的速率,提高系统的性能。
第二方面,本申请实施例提供一种电子设备,包括处理器和存储器。其中,存储器用于存储一个或多个计算机程序;当存储器存储的一个或多个计算机程序被处理器执行时,使得该电子设备能够实现上述任一方面的任意一种可能的设计的方法。
第三方面,本申请实施例还提供一种装置,该装置包括执行上述任一方面的任意一种可能的设计的方法的模块/单元。这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。
第四方面,本申请实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,当计算机程序在电子设备上运行时,使得所述电子设备执行上述任一方面的任意一种可能的设计的方法。
第五方面,本申请实施例还提供一种包含计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行上述任一方面的任意一种可能的设计的方法。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
图1为本申请实施例提供的一种互联场景示意图;
图2为本申请实施例提供的一种手机的结构示意图;
图3为本申请实施例提供的安卓操作系统结构示意图;
图4为本申请实施例提供的一种内存管理方法示意图;
图5为本申请实施例提供的一种软件系统结构示意图一;
图6为本申请实施例提供的一种软件系统结构示意图二;
图7为本申请实施例提供的一种软件系统结构示意图三;
图8为本申请实施例提供的一种软件系统结构示意图四;
图9为本申请实施例提供的一种电子设备结构示意图。
具体实施方式
为了便于理解,示例的给出了部分与本申请实施例相关概念的说明以供参考。
内存页,指的是将物理内存按照固定页面大小划分为多个页面,一个页面即为一个内存页。
虚拟内存空间,指的是连续完整的虚拟地址空间。虚拟内存空间所映射的物理内存通常是并不连续物理内存碎片,甚至还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。
缺页:处理器发出的虚拟地址在物理内存中找不到。
缺页中断,如果处理器发出的虚拟地址在物理内存中找不到,则产生一次缺页中断,而缺页中断服务程序负责将需要的虚拟页面找到并加载到物理内存中。
内存碎片整理,物理内存长期内存分配释放后,造成空闲内存碎片化,需要将使用的物理内存和空闲内存进行整理,形成整块的空闲内存。
缺页率,指的是访问页面失败次数除以进程页面访问总次数,设访问成功次数为S,访问失败次数为F,访问总次数A=S+F,缺页率=F/A。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
示例性,在手机运行游戏的对战场景的任务时需要大量的内存,如果按照现有技术,在该游戏应用内存缺少时才分配物理内存,并且是按默认固定4K内存页大小分配内存页,如果手机系统内存不足、内存碎片化严重,分配内存的耗时会较长、内存缺页率较高,导致游戏出现卡顿,手机性能降低,进而影响到用户的体验。为了解决这一问题,本申请实施例提供一种内存管理方法,在某个任务启动时,电子设备先为该任务分配与第一总内存对应的内存页,以及将所述内存页的内存页大小调整至与所述第一内存页大小相同,然后才将调整之后的内存页分配给该应用程序。这样,可以一定程度上减小内存分配耗费的时长,另外,因内存页大小与第一内存页大小相一致,所以可以改善内存缺页率较高的问题。
本申请实施例提供的上述内存管理方法可以应用于如图1所示的多个电子设备100基于通信网络互联的场景。其中,该通信网络可以是局域网,也可以是通过中继(relay)设备转接的广域网。当该通信网络为局域网时,示例性的,该通信网络可以是wifi热点网络、wifi P2P网络、蓝牙网络、zigbee网络或近场通信(near field communication,NFC)网络等近距离通信网络。当该通信网络为广域网时,示例性的,该通信网络可以是第三代移动通信技术(3rd-generation wireless telephone technology,3G)网络、第四代移动通信技术(the 4th generation mobile communication technology,4G)网络、第五代移动通信技术(5th-generation mobile communication technology,5G)网络、未来演进的公共陆地移动网络(public land mobile network,PLMN)或因特网等。在图1所示的场景中,电子设备100在启动运行应用程序或者应用程序中的某一任务时,按照上述方法进行内存管理和分配。
需要说明的是,在本申请一些实施例中,图1所示的电子设备100可以是还包含其他功能诸如个人数字助理和/或音乐播放器功能的便携式电子设备,诸如手机、平板电脑、具备无线通讯功能的可穿戴设备(如智能手表)等。便携式电子设备的示例性实施例包括但不限于搭载或者其他操作系统的便携式电子设备。上述便携式电子设备也可以是其他便携式电子设备,诸如具有触敏表面(例如触控面板)的膝上型计算机(laptop)等。还应当理解的是,在本申请其他一些实施例中,上述电子设备100也可以不是便携式电子设备,而是具有触敏表面(例如触控面板)的台式计算机。
下面以电子设备100为手机为例进行说明,图2示出的是与本申请各实施例相关的电子设备100的部分结构的框图。
如图2所示,电子设备100为手机,该手机可以包括处理器110,外部存储器接口120,内部存储器121,USB接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及SIM卡接口195等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(Neural-network Processing Unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。本申请实施例中,处理器110用于获取长视频中的各个镜头的视频开始时间点和视频结束时间点,并根据与镜头对应的字幕片段的字幕开始时间点和字幕结束时间点,调整镜头的视频开始时间点和视频结束时间点进行调整,得到调整之后的所述镜头的视频开始时间点和视频结束时间点,最终根据调整之后的各个镜头的视频开始时间点和视频结束时间点,对所述长视频进行拆分,生成多个短视频。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
电子设备100的无线通信功能可以通过天线模块1,天线模块2移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将蜂窝网天线复用为无线局域网分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(Low Noise Amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN),蓝牙(bluetooth,BT),全球导航卫星系统(globalnavigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。本申请实施例中,电子设备100通过无线通信模块160从服务器200获取长视频和字幕文件等数据。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS))和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。本申请实施例中,电子设备100通过GPU,显示屏194,以及应用处理器等实现对短视频的播放显示。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用LCD(liquid crystal display,液晶显示屏),OLED(organic light-emitting diode,有机发光二极管),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:MPEG1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。电子设备100可以设置至少一个麦克风170C。在另一些实施例中,电子设备100可以设置两个麦克风,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。本申请实施例中,麦克风170C可以用于采集用户的语音,例如第一用户的第一语言的第一语音。
图3是本申请实施例的电子设备100的软件结构框图。电子设备的操作系统可以是Android系统,Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。如图3所示,应用程序包可以包括电话、相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。例如应用启动API,业务处理API,应用退出API。
如图3所示,应用程序框架层还包括用于实现本申请实施例提供的内存管理方法的内存页需求学习装置、内存页预留装置以及内存页大小调整装置。
1、内存页需求学习装置,用于学习各个应用场景的内存页的需求。内存页需求学习装置,包括缺页数据采集模块和内存页需求学习模块。
其中,在应用程序启动时,缺页数据采集模块开始采集缺页数据,在该应用程序退出时,缺页数据采集结束。缺页数据采集模块主要是采集应用程序从启动到结束这段时间内的内存缺页信息。
内存页需求学习模块,用于根据采集到的应用缺页信息,学习应用的第一内存页大小,以及第一总内存,生成包括第一内存页大小,以及第一总内存的内存页需求的学习结果。
2、内存页预留装置负责在应用程序启动时,为该应用程序预留所需的内存页。
具体地,在应用程序启动时,内存页预留装置先判断该应用程序是否存在内存页需求的学习结果,如果没有,则不处理;如果有内存页需求的学习结果,根据学习数据,为该应用程序预留所需的内存页。
3、内存页大小调整装置根据学习到的第一内存页大小动态调整内存页的大小。内存页大小调整装置包括内存页分配管理模块和堆内存映射模块。
内存页分配管理模块,用于根据当前所运行的应用程序、以及内存页需求学习装置学习的各应用场程序的第一内存页大小,将内存页的大小调整至所述第一内存页大小一致。
堆内存映射模块,用于将实际物理内存页映射到应用虚拟内存空间。
另外,该软件系统还包括内存管理装置,该内存管理装置包括内存分配模块、内存回收模块和内存碎片整理模块,内存管理装置,用于为应用程序分配调整后的内存页,以及在当前可用内存不满足第一总内存时,进行内存回收和内存碎片整理。
其中,应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
以下将结合附图和应用场景,对本申请实施例提供的内存管理方法进行详细介绍。
参见图4,示例性的示出了本申请实施例提供的一种内存管理方法的流程,该方法是由电子设备执行,该方法包括如下步骤。
步骤401,电子设备在第一任务启动时,电子设备的处理器根据学习结果确定第一任务所需要的第一总内存和第一内存页大小。即图3中的电子设备的应用程序框架层中的内存管理装置根据学习结果确定第一任务所需要的第一总内存和第一内存页大小。
步骤402,电子设备的处理器确定当前存在与第一总内存大小对应的内存时,将内存的内存页大小调整至与第一内存页大小相同。即图3中的电子设备的应用程序框架层中的内存管理装置确定当前存在与第一总内存大小对应的内存时,由内存页大小调整装置将内存的内存页大小调整至与第一内存页大小相同。
可选择的还可以包括步骤403,电子设备的处理器若确定当前不存在与第一总内存大小对应的内存时,则进行内存回收,生成与第一总内存大小对应的内存,然后再将内存的内存页大小调整至与第一内存页大小相同。即应用程序框架层中的内存管理装置确定当前不存在与第一总内存大小对应的内存时,进行内存回收,生成与第一总内存大小对应的内存,然后内存页大小调整装置将生成的内存的内存页大小调整至与第一内存页大小相同。
步骤404,电子设备的处理器将调整之后的内存页分配给第一任务。即由图3中的电子设备的内存页预留装置将调整之后的内存页分配给第一任务。
例如,图3中的内存管理装置检测到电子设备中当前正在运行游戏应用中的对战任务时,则从内存页需求学习装置学习到的内存页需求的学习结果中查找与该对战任务的标识对应的第一总内存和第一内存页大小。假设第一总内存较大(例如10兆),第一内存页大小为64K,那么在内存管理装置确定当前存在10兆的内存时,内存页大小调整装置会将该10兆内存的内存页的大小调整至64K。然后内存页预留装置会将调整后的内存映射到对战任务的虚拟内存空间,供游戏运行时使用。
在执行步骤401之前,图3中的电子设备中的应用程序框架层中的内存页需求学习装置会采集为该第一任务每次分配的历史内存信息,该历史内存信息包括缺页率、占用的内存大小,以及内存页大小。内存页需求学习装置根据占用的内存大小确定第一任务对应的第一总内存,并根据缺页率,以及电子设备的总的物理内存大小,确定第一任务对应的第一内存页大小,最终内存页需求学习装置生成包括所述第一任务对应的第一总内存和第一内存页大小。
结合图3所示的软件结构,举例来说,如图5所示,在应用程序层中的游戏应用每次启动时,内存页需求学习装置中的缺页数据采集模块记录该游戏应用的内存分配信息,以及缺页次数;当游戏应用退出时,数据采集模块停止采集。在一种可能的设计中,数据采集模块可以在内存缺页处理的服务中添加调试代码,该调试代码可以对每次内存分配的内存页以及缺页次数进行统计。数据采集模块将采集的内存分配信息发送给内存页需求学习模块,内存页需求学习模块根据内存分配信息计算缺页率,再结合系统总的物理内存大小,可以计算出第一内存页大小,从而生成内存页需求的学习结果。例如内存页需求的学习结果如表1所示。
表1
在表1中,第一列为缺页率,2G、3G、4G、6G和8G为不同的电子设备的总的物理内存大小,4K、8K、16K等则是不同的缺页率和总的物理内存所学习得到最佳的第一内存页大小。从表1可见,缺页率越大,以及总的物理内存越大,一个内存页越大。例如,缺页率是20%,系统总的物理内存大小是2G时,第一内存页大小为4K,缺页率是70%,系统总的物理内存大小是2G时,第一内存页大小为8K。也就是说,内存页需求学习模块根据数据采集模块所采集的内存分配信息,确定第一内存页大小,该第一内存页大小具有内存缺页少,内存访问性能好,内存开销小的效果。
也就是说,用户使用电子设备的时间越长,数据采集模块所采集到的数据越丰富,数据采集模块可以基于不同应用程序或者应用程序中的不同任务的数据采集结果,确定出与各个应用程序,或者各个应用程序中的各个任务相对应的第一内存页大小。
需要说明的是,在一种可能的设计中,数据采集模块也可以采集任务每次运行所加载的文件的信息,然后在应用再一次运行时,将该文件的信息对应的文件加载到调整之后的内存中,以供内存使用,这样做的好处是可以节省电子设备在运行该应用的某个任务加载文件的时长,提高响应速度和系统运行的速率。
参见图6,内存页需求学习模块生成内存页需求的学习结果之后,当游戏应用再次启动时,内存页预留装置确定当前是否存在与第一总内存大小对应的内存,若存在,预留与之对应的内存。若不存在,则先指示内存管理装置中的内存回收模块和内存碎片管理模块对内存进行回收,生成与第一总内存大小对应的内存。例如,内存页需求学习模块识别到游戏应用需要16兆的内存,那么在游戏应用再次启动时,内存页预留装置启动内存回收及内存碎片整理,生成16兆的可用内存。因内存页预留装置提取预留了任务所需的内存,所以可以避免现有技术中在内存缺少时才分配物理内存所耗费的时长,可以提高系统的运行速率。
考虑到内存页的大小不同,内存的缺页次数和内存开销也不同,因此本申请实施例中,当内存预留装置预留足够的内存页之后,内存页大小调整装置会将内存页的大小调整至与第一内存页大小相同,最后再指示内存管理装置中的内存分配单元进行内存分配。结合图7具体来说,内存页分配管理模块根据学习到的第一内存页大小,调整当前内存页的大小与第一内存页大小一致,然后堆内存映射模块将该内存页映射到应用虚拟内存空间,以供任务运行时使用。一般地,内存页大小调整装置针对不同任务标识,对应地将内存调整为与该任务标识对应的第一内存页大小,如:应用A的第一内存页大小为8K、应用B的第一内存页大小16K,那么在电子设备运行应用A时,内存页大小调整装置将可用内存调整为8K大小的内存页,在电子设备运行应用B时,内存页大小调整装置将可用内存调整为16K大小的内存页。
总结来说,如图8所示,在应用的每次启动时,内存页需求学习装置利用缺页数据采集模块采集该应用的不同任务的内存分配信息和缺页次数等信息,然后内存页需求学习装置计算缺页率,生成不同任务所需要的第一总任务和第一内存页大小,并将生成的信息保存在内存页学习数据库中。这样,当应用下一次再启动时,内存页预留装置通过查找内存页学习数据库,确定出该任务所需要的总内存。如果发现内存不足,则可以通过内存管理装置进行内存回收和内存碎片整理,生成该任务所需要的总内存。接着在任务处理过程中,内存页大小调整装置中的内存页分配管理模块查找内存页学习数据,调整内存的内存页大小与第一内存页大小一致,最终,堆内存映射模块将该内存页映射到应用虚拟内存空间,以供任务运行时使用。
综上,本申请实施例所提供的内存管理方法,因提前为任务的运行预留内存,并且将内存的内存页大小调整至较好的内存页大小,所以既能减少分配内存耗费的时长,又能提高内存的利用率。例如在相机启动时,处理器为相机预留内存,并调整内存页大小,可以改善拍照时因为分配连续内存时间较长导致的各种卡顿问题,解决长时间使用后因内存碎片化严重,无法快速整理出连续内存,影响相机性能的问题。
本申请实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,当计算机程序在电子设备上运行时,使得所述电子设备执行上述信息处理方法任意一种可能的实现。
本申请实施例还提供一种包含计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行上述信息处理方法任意一种可能的实现。
在本申请的另一些实施例中,本申请实施例公开了一种电子设备,如图9所示,该电子设备可以包括:处理器901;存储器902;以及一个或多个计算机程序903,上述各器件可以通过一个或多个通信总线904连接。
其中该一个或多个计算机程序903被存储在上述存储器902中并被配置为被处理器901执行,该一个或多个计算机程序903包括指令,上述指令可以用于执行如图4相应实施例中的各个步骤。处理器901生成的学习结果保存在存储器902中。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何在本申请实施例揭露的技术范围内的变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.一种内存管理方法,其特征在于,所述方法包括:
电子设备在第一任务启动时,根据学习结果确定所述第一任务所需要的第一总内存和第一内存页大小;
所述电子设备确定当前存在与所述第一总内存大小对应的内存时,将所述内存的内存页大小调整至与所述第一内存页大小相同;
所述电子设备将调整之后的内存分配给所述第一任务。
2.根据权利要求1所述的方法,其特征在于,所述电子设备将所述内存的内存页大小调整至与所述第一内存页大小相同之前,还包括:
所述电子设备确定当前不存在与所述第一总内存大小对应的内存时,则进行内存回收,生成与所述第一总内存大小对应的内存。
3.根据权利要求1或2所述的方法,其特征在于,所述电子设备根据学习结果确定所述第一任务所需要的第一总内存和第一内存页大小之前,还包括:
所述电子设备采集所述第一任务每次被分配的历史内存信息,所述历史内存信息包括缺页率、占用的内存大小,以及内存页大小;
所述电子设备根据所述占用的内存大小,确定所述第一任务所需要的第一总内存;
所述电子设备根据所述缺页率,以及所述电子设备的总的物理内存大小,确定所述第一任务所需要的第一内存页大小,其中,缺页率越大,以及总的物理内存越大,一个内存页越大;
所述电子设备生成学习结果,所述学习结果包括所述第一任务、第一总内存页和第一内存页大小的对应关系。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述电子设备根据学习结果确定所述第一任务所需要的第一总内存和第一内存页大小之前,还包括:
所述电子设备采集所述第一任务每次运行时所使用的文件信息;
该方法还包括:
所述电子设备在所述第一任务启动时,将所述文件信息对应的文件缓存到所述调整之后的内存中。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述电子设备将调整之后的内存分配给所述第一任务,包括:
所述电子设备为所述第一任务分配与所述第一内存页大小相同的内存页,并将所述内存页映射到虚拟内存空间,以供所述第一任务使用。
6.一种电子设备,其特征在于,包括处理器和存储器;
所述存储器用于存储一个或多个计算机程序;
当所述存储器存储的一个或多个计算机程序被所述处理器执行时,使得所述电子设备执行:
在第一任务启动时,根据学习结果确定所述第一任务所需要的第一总内存和第一内存页大小;
确定当前存在与所述第一总内存大小对应的内存时,将所述内存的内存页大小调整至与所述第一内存页大小相同;
将调整之后的内存分配给所述第一任务。
7.根据权利要求6所述的电子设备,其特征在于,当所述存储器存储的一个或多个计算机程序被所述处理器执行时,还使得所述电子设备执行:
确定当前不存在与所述第一总内存大小对应的内存时,则进行内存回收,生成与所述第一总内存大小对应的内存。
8.根据权利要求6或7所述的电子设备,其特征在于,当所述存储器存储的一个或多个计算机程序被所述处理器执行时,还使得所述电子设备执行:
根据学习结果确定所述第一任务所需要的第一总内存和第一内存页大小之前,采集所述第一任务每次被分配的历史内存信息,所述历史内存信息包括缺页率、占用的内存大小,以及内存页大小;
根据所述占用的内存大小,确定所述第一任务所需要的第一总内存;
根据所述缺页率,以及所述电子设备的总的物理内存大小,确定所述第一任务所需要的第一内存页大小,其中,缺页率越大,以及总的物理内存越大,内存页越大;
生成学习结果,所述学习结果包括所述第一任务、第一总内存页和第一内存页大小的对应关系。
9.根据权利要求6至8任一项所述的电子设备,其特征在于,当所述存储器存储的一个或多个计算机程序被所述处理器执行时,还使得所述电子设备执行:
根据学习结果确定所述第一任务所需要的第一总内存和第一内存页大小之前,采集所述第一任务每次运行时所使用的文件信息;
在所述第一任务启动时,将所述文件信息对应的文件缓存到所述调整之后的内存中。
10.根据权利要求6至9任一项所述的电子设备,其特征在于,当所述存储器存储的一个或多个计算机程序被所述处理器执行时,使得所述电子设备具体执行:
为所述第一任务分配与所述第一内存页大小相同的内存页,并将所述内存页映射到虚拟内存空间,以供所述第一任务使用。
11.一种计算机存储介质,其特征在于,所述计算机可读存储介质包括计算机程序,当计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1至5任一项所述的内存管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811653011.4A CN111382087A (zh) | 2018-12-28 | 2018-12-28 | 一种内存管理方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811653011.4A CN111382087A (zh) | 2018-12-28 | 2018-12-28 | 一种内存管理方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111382087A true CN111382087A (zh) | 2020-07-07 |
Family
ID=71219579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811653011.4A Pending CN111382087A (zh) | 2018-12-28 | 2018-12-28 | 一种内存管理方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111382087A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782560A (zh) * | 2020-07-10 | 2020-10-16 | Oppo广东移动通信有限公司 | 内存回收方法、装置、终端设备以及存储介质 |
CN113568845A (zh) * | 2021-07-29 | 2021-10-29 | 北京大学 | 一种基于强化学习的内存地址映射方法 |
CN114168065A (zh) * | 2020-09-10 | 2022-03-11 | 荣耀终端有限公司 | 调整内存配置参数的方法和装置 |
CN114579198A (zh) * | 2022-01-20 | 2022-06-03 | 飞腾信息技术有限公司 | 内存芯片的启动方法、装置、计算机设备及存储介质 |
CN116266159A (zh) * | 2021-12-17 | 2023-06-20 | 华为技术有限公司 | 一种缺页异常处理方法和电子设备 |
CN116451756A (zh) * | 2023-06-16 | 2023-07-18 | 深圳亘存科技有限责任公司 | 内存高利用率的神经网络协处理器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150032985A1 (en) * | 2011-08-24 | 2015-01-29 | Microsoft Corporation | Memory allocation analysis |
CN105095099A (zh) * | 2015-07-21 | 2015-11-25 | 浙江大学 | 一种基于内存页位图变更的大内存页整合方法 |
CN105740078A (zh) * | 2016-01-29 | 2016-07-06 | 华为技术有限公司 | 一种内存管理方法、装置及终端 |
CN106843906A (zh) * | 2017-02-22 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种调整系统页面大小的方法和服务器 |
US20180253245A1 (en) * | 2017-03-06 | 2018-09-06 | International Business Machines Corporation | Pre-backing virtual storage using learning data |
-
2018
- 2018-12-28 CN CN201811653011.4A patent/CN111382087A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150032985A1 (en) * | 2011-08-24 | 2015-01-29 | Microsoft Corporation | Memory allocation analysis |
CN105095099A (zh) * | 2015-07-21 | 2015-11-25 | 浙江大学 | 一种基于内存页位图变更的大内存页整合方法 |
CN105740078A (zh) * | 2016-01-29 | 2016-07-06 | 华为技术有限公司 | 一种内存管理方法、装置及终端 |
CN106843906A (zh) * | 2017-02-22 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种调整系统页面大小的方法和服务器 |
US20180253245A1 (en) * | 2017-03-06 | 2018-09-06 | International Business Machines Corporation | Pre-backing virtual storage using learning data |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782560A (zh) * | 2020-07-10 | 2020-10-16 | Oppo广东移动通信有限公司 | 内存回收方法、装置、终端设备以及存储介质 |
CN114168065A (zh) * | 2020-09-10 | 2022-03-11 | 荣耀终端有限公司 | 调整内存配置参数的方法和装置 |
US11995317B2 (en) | 2020-09-10 | 2024-05-28 | Honor Device Co., Ltd. | Method and apparatus for adjusting memory configuration parameter |
CN114168065B (zh) * | 2020-09-10 | 2024-05-31 | 荣耀终端有限公司 | 调整内存配置参数的方法和装置 |
CN113568845A (zh) * | 2021-07-29 | 2021-10-29 | 北京大学 | 一种基于强化学习的内存地址映射方法 |
CN113568845B (zh) * | 2021-07-29 | 2023-07-25 | 北京大学 | 一种基于强化学习的内存地址映射方法 |
CN116266159A (zh) * | 2021-12-17 | 2023-06-20 | 华为技术有限公司 | 一种缺页异常处理方法和电子设备 |
CN114579198A (zh) * | 2022-01-20 | 2022-06-03 | 飞腾信息技术有限公司 | 内存芯片的启动方法、装置、计算机设备及存储介质 |
CN114579198B (zh) * | 2022-01-20 | 2024-02-20 | 飞腾信息技术有限公司 | 内存芯片的启动方法、装置、计算机设备及存储介质 |
CN116451756A (zh) * | 2023-06-16 | 2023-07-18 | 深圳亘存科技有限责任公司 | 内存高利用率的神经网络协处理器 |
CN116451756B (zh) * | 2023-06-16 | 2023-08-18 | 深圳亘存科技有限责任公司 | 内存高利用率的神经网络协处理器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115473957B (zh) | 一种图像处理方法和电子设备 | |
CN109559270B (zh) | 一种图像处理方法及电子设备 | |
CN111382087A (zh) | 一种内存管理方法及电子设备 | |
CN114650363B (zh) | 一种图像显示的方法及电子设备 | |
WO2022257748A1 (zh) | 虚拟内存管理方法和电子设备 | |
CN111314775B (zh) | 一种视频拆分方法及电子设备 | |
CN113935898A (zh) | 图像处理方法、系统、电子设备及计算机可读存储介质 | |
WO2022095744A1 (zh) | Vr显示控制方法、电子设备及计算机可读存储介质 | |
CN114461588A (zh) | 调节预读窗口的方法及电子设备 | |
CN115119048B (zh) | 一种视频流处理方法及电子设备 | |
CN114064160A (zh) | 应用图标布局方法及相关装置 | |
CN116723415B (zh) | 缩略图生成的方法及终端设备 | |
CN116048217B (zh) | 一种电子设备运行方法、装置和电子设备 | |
CN115482143B (zh) | 应用的图像数据调用方法、系统、电子设备及存储介质 | |
CN114443240B (zh) | 输入输出请求处理方法和电子设备 | |
CN117724863A (zh) | 一种目标信号处理方法和电子设备 | |
CN114398108A (zh) | 电子设备及其驱动加载方法、介质 | |
CN116703689B (zh) | 一种着色器程序的生成方法、装置和电子设备 | |
CN116266159B (zh) | 一种缺页异常处理方法和电子设备 | |
CN116095512B (zh) | 终端设备的拍照方法及相关装置 | |
CN116627855B (zh) | 内存处理方法及相关装置 | |
CN116719569B (zh) | 启动应用的方法及装置 | |
CN116703741B (zh) | 一种图像对比度的生成方法、装置和电子设备 | |
WO2021093847A1 (zh) | 一种具有柔性屏幕的电子设备的显示方法及电子设备 | |
CN115840528A (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 |