CN111124668B - 内存释放方法、装置、存储介质及终端 - Google Patents
内存释放方法、装置、存储介质及终端 Download PDFInfo
- Publication number
- CN111124668B CN111124668B CN201911190959.5A CN201911190959A CN111124668B CN 111124668 B CN111124668 B CN 111124668B CN 201911190959 A CN201911190959 A CN 201911190959A CN 111124668 B CN111124668 B CN 111124668B
- Authority
- CN
- China
- Prior art keywords
- memory release
- memory
- terminal
- application program
- strategy
- 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
Links
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/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/5022—Mechanisms 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)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种内存释放方法、装置、存储介质及终端,属于计算机领域。方法包括:检测到终端满足内存释放条件时,确定所述终端的使用场景;查询与所述使用场景对应的目标内存释放策略,根据所述目标内存释放策略执行内存释放操作。本申请可以根据使用场景自适应的确定内存释放策略,以提高终端运行的流畅性。
Description
技术领域
本申请涉及内存控制领域,尤其涉及一种内存释放方法、装置、存储介质及终端。
背景技术
手机在使用一段时间后会感觉到明显卡顿现象,主要由于系统本身被大量缓存以及手机软件占用而手机内存不足所致。手机一般自带有内存清理功能,通过关闭后台应用来降低卡顿等过卡的情况,例如:用户双击用户界面上显示的内存释放图标,终端检测到该操作后根据预设的释放策略清理系统内存缓存,以提高终端运行的流畅性。
发明内容
本申请实施例提供了的内存释放方法、装置、存储介质及终端,可以解决相关技术中使用固定的内存释放策略带来的灵活性差的问题。所述技术方案如下:
第一方面,本申请实施例提供了一种内存释放方法,所述方法包括:
检测到终端满足内存释放条件时,确定终端的使用场景;
在内存释放策略列表中查询与使用场景对应的目标内存释放策略;
根据目标内存释放策略执行内存释放操作。
第二方面,本申请实施例提供了一种内存释放装置,所述内存释放装置包括:
检测单元,用于检测到终端满足内存释放条件时,确定终端的使用场景;
查询单元,用于在内存释放策略列表中查询与使用场景对应的目标内存释放策略;
释放单元,用于根据目标内存释放策略执行内存释放操作。
第三方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
第四方面,本申请实施例提供一种终端,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。
本申请一些实施例提供的技术方案带来的有益效果至少包括:
在检测到终端满足内存释放条件时,确定终端的使用场景,查询使用场景对应的目标内存释放策略,以及根据目标内存释放策略对内存进行内存释放操作,解决相关技术中使用预先配置的固定的内存释放策略带来的灵活性不高的问题,本申请实施例根据当前的使用场景自适应的选择相应的内存释放策略,能实现使用场景和内存释放策略的适配,为终端当前在前台运行的应用程序提高更优化的内存优化方案,提高该应用程序运行的流畅性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的终端的结构示意图;
图2是本申请实施例提供的操作系统和用户空间的结构示意图;
图3是图1中安卓操作系统的架构图;
图4是图1中IOS操作系统的架构图;
图5是本申请实施例提供的内存释放方法的流程示意图;
图6是本申请实施例提供的内存释放方法的流程示意图;
图7是本申请实施例提供的一种装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。
请参考图1,其示出了本申请一个示例性实施例提供的终端的结构方框图。本申请中的终端可以包括一个或多个如下部件:处理器110、存储器120、输入装置130、输出装置140和总线150。处理器110、存储器120、输入装置130和输出装置140之间可以通过总线150连接。
处理器110可以包括一个或者多个处理核心。处理器110利用各种接口和线路连接整个终端内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行终端的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(digital signal processing,DSP)、现场可编程门阵列(field-programmable gate array,FPGA)、可编程逻辑阵列(programmable logicArray,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(centralprocessing unit,CPU)、图像处理器(graphics processing unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(random Access Memory,RAM),也可以包括只读存储器(read-only memory,ROM)。可选地,该存储器120包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等,该操作系统可以是安卓(Android)系统(包括基于Android系统深度开发的系统)、苹果公司开发的IOS系统(包括基于IOS系统深度开发的系统)或其它系统。存储数据区还可以存储终端在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
参见图2所示,存储器120可分为操作系统空间和用户空间,操作系统即运行于操作系统空间,原生及第三方应用程序即运行于用户空间。为了保证不同第三方应用程序均能够达到较好的运行效果,操作系统针对不同第三方应用程序为其分配相应的系统资源。然而,同一第三方应用程序中不同应用场景对系统资源的需求也存在差异,比如,在本地资源加载场景下,第三方应用程序对磁盘读取速度的要求较高;在动画渲染场景下,第三方应用程序则对GPU性能的要求较高。而操作系统与第三方应用程序之间相互独立,操作系统往往不能及时感知第三方应用程序当前的应用场景,导致操作系统无法根据第三方应用程序的具体应用场景进行针对性的系统资源适配。
为了使操作系统能够区分第三方应用程序的具体应用场景,需要打通第三方应用程序与操作系统之间的数据通信,使得操作系统能够随时获取第三方应用程序当前的场景信息,进而基于当前场景进行针对性的系统资源适配。
以操作系统为Android系统为例,存储器120中存储的程序和数据如图3所示,存储器120中可存储有Linux内核层320、系统运行时库层340、应用框架层360和应用层380,其中,Linux内核层320、系统运行库层340和应用框架层360属于操作系统空间,应用层380属于用户空间。Linux内核层320为终端的各种硬件提供了底层的驱动,如显示驱动、音频驱动、摄像头驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。系统运行库层340通过一些C/C++库来为Android系统提供了主要的特性支持。如SQLite库提供了数据库的支持,OpenGL/ES库提供了3D绘图的支持,Webkit库提供了浏览器内核的支持等。在系统运行时库层340中还提供有安卓运行时库(Android runtime),它主要提供了一些核心库,能够允许开发者使用Java语言来编写Android应用。应用框架层360提供了构建应用程序时可能用到的各种API,开发者也可以通过使用这些API来构建自己的应用程序,比如活动管理、窗口管理、视图管理、通知管理、内容提供者、包管理、通话管理、资源管理、定位管理。应用层380中运行有至少一个应用程序,这些应用程序可以是操作系统自带的原生应用程序,比如联系人程序、短信程序、时钟程序、相机应用等;也可以是第三方开发者所开发的第三方应用程序,比如游戏类应用程序、即时通信程序、相片美化程序、购物程序等。
以操作系统为IOS系统为例,存储器120中存储的程序和数据如图4所示,IOS系统包括:核心操作系统层420(Core OS layer)、核心服务层440(Core Services layer)、媒体层460(Media layer)、可触摸层480(Cocoa Touch Layer)。核心操作系统层420包括了操作系统内核、驱动程序以及底层程序框架,这些底层程序框架提供更接近硬件的功能,以供位于核心服务层440的程序框架所使用。核心服务层440提供给应用程序所需要的系统服务和/或程序框架,比如基础(Foundation)框架、账户框架、广告框架、数据存储框架、网络连接框架、地理位置框架、运动框架等等。媒体层460为应用程序提供有关视听方面的接口,如图形图像相关的接口、音频技术相关的接口、视频技术相关的接口、音视频传输技术的无线播放(AirPlay)接口等。可触摸层480为应用程序开发提供了各种常用的界面相关的框架,可触摸层480负责用户在终端上的触摸交互操作。比如本地通知服务、远程推送服务、广告框架、游戏工具框架、消息用户界面接口(User Interface,UI)框架、用户界面UIKit框架、地图框架等等。
在图4所示出的框架中,与大部分应用程序有关的框架包括但不限于:核心服务层440中的基础框架和可触摸层480中的UIKit框架。基础框架提供许多基本的对象类和数据类型,为所有应用程序提供最基本的系统服务,和UI无关。而UIKit框架提供的类是基础的UI类库,用于创建基于触摸的用户界面,iOS应用程序可以基于UIKit框架来提供UI,所以它提供了应用程序的基础架构,用于构建用户界面,绘图、处理和用户交互事件,响应手势等等。
其中,在IOS系统中实现第三方应用程序与操作系统数据通信的方式以及原理可参考Android系统,本申请在此不再赘述。
其中,输入装置130用于接收输入的指令或数据,输入装置130包括但不限于键盘、鼠标、摄像头、麦克风或触控设备。输出装置140用于输出指令或数据,输出装置140包括但不限于显示设备和扬声器等。在一个示例中,输入装置130和输出装置140可以合设,输入装置130和输出装置140为触摸显示屏,该触摸显示屏用于接收用户使用手指、触摸笔等任何适合的物体在其上或附近的触摸操作,以及显示各个应用程序的用户界面。触摸显示屏通常设置在终端的前面板。触摸显示屏可被设计成为全面屏、曲面屏或异型屏。触摸显示屏还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合,本申请实施例对此不加以限定。
除此之外,本领域技术人员可以理解,上述附图所示出的终端的结构并不构成对终端的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端中还包括射频电路、输入单元、传感器、音频电路、无线保真(wirelessfidelity,WiFi)模块、电源、蓝牙模块等部件,在此不再赘述。
在本申请实施例中,各步骤的执行主体可以是上文介绍的终端。可选地,各步骤的执行主体为终端的操作系统。操作系统可以是安卓系统,也可以是IOS系统,或者其它操作系统,本申请实施例对此不作限定。
本申请实施例的终端,其上还可以安装有显示设备,显示设备可以是各种能实现显示功能的设备,例如:阴极射线管显示器(cathode ray tubedisplay,简称CR)、发光二极管显示器(light-emitting diode display,简称LED)、电子墨水屏、液晶显示屏(liquidcrystal display,简称LCD)、等离子显示面板(plasma display panel,简称PDP)等。用户可以利用终端上的显示设备,来查看显示的文字、图像、视频等信息。所述终端可以是智能手机、平板电脑、游戏设备、AR(Augmented Reality,增强现实)设备、汽车、数据存储装置、音频播放装置、视频播放装置、笔记本、桌面计算设备、可穿戴设备诸如电子手表、电子眼镜、电子头盔、电子手链、电子项链、电子衣物等设备。
在图1所示的终端中,处理器110可以用于调用存储器120中存储的应用程序,并具体执行本申请实施例的内存释放方法。
本申请实施例提供的技术方案中,在检测到终端满足内存释放条件时,确定终端的使用场景,查询使用场景对应的目标内存释放策略,以及根据目标内存释放策略对内存进行内存释放操作,解决相关技术中使用预先配置的固定的内存释放策略带来的灵活性不高的问题,本申请实施例根据当前的使用场景自适应的选择相应的内存释放策略,能实现使用场景和内存释放策略的适配,为终端当前在前台运行的应用程序提高更优化的内存优化方案,提高该应用程序运行的流畅性。
在下述方法实施例中,为了便于说明,仅以各步骤的执行主体为终端进行介绍说明。
下面将结合附图5-附图6,对本申请实施例提供的内存释放方法进行详细介绍。其中,本申请实施例中的内存释放装置可以是图5-图6所示的终端。
请参见图5,为本申请实施例提供了一种内存释放方法的流程示意图。如图5所示,本申请实施例的所述方法可以包括以下步骤:
S501、检测到终端满足内存释放条件时,确定终端的使用场景。
其中,内存释放条件表示用于对内存执行内存释放操作的条件,终端可以根据内存的运行状态参数的参数值来判断是否满足内存释放条件,例如,内存的运行状态参数包括:剩余物理内存总量、内存空间占用率、内存空间剩余率、剩余虚拟内存总量、处理器每秒钟处理的错误页(page faults/sec)、每秒钟在磁盘上读取的页数(page input/sec),每秒钟向磁盘写入的页数(page output/sec)中的一种或多种。终端可以根据运行状态参数的参数值监测内存的负荷状态,例如:终端在检测到内存的剩余物理内存总量小于预设值时,确定内存的负荷过重;在检测到内存的剩余物理内存总量大于或等于预设值时,确定内存的负荷正常。
其中,使用场景包括游戏场景、上网场景和视频场景等,终端可以通过当前运行的应用程序的标识来确定对应的使用场景,终端预存储有应用程序的标识和使用场景的映射关系,终端根据该映射关系查询当前在前台运行的应用程序的标识对应的使用场景。
S502、查询与所述使用场景对应的目标内存释放策略。
其中,终端预存储或预配置有内存释放策略列表,内存释放策略列表包括一个或多个内存释放策略,内存释放策略表示如何内存中的内存空间的规则。例如:内存释放策略为释放当前运行的占用内存最大的应用;或释放在预设时长内使用次数最少的应用。终端预存储或预配置有使用场景和内存释放策略之间的映射关系,终端根据S501确定的使用场景,在该映射关系中进行查询,得到对应的目标内存释放策略。
S503、根据所述目标内存释放策略执行内存释放操作。
其中,终端根据S502中的目标内存释放策略执行内存释放操作,以增加内存的剩余物理内存总量,减轻内存的负荷程度,提高终端运行的流畅性。
本申请实施例的方案在执行时,在检测到终端满足内存释放条件时,确定终端的使用场景,查询使用场景对应的目标内存释放策略,以及根据目标内存释放策略对内存进行内存释放操作,解决相关技术中使用预先配置的固定的内存释放策略带来的灵活性不高的问题,本申请实施例根据当前的使用场景自适应的选择相应的内存释放策略,能实现使用场景和内存释放策略的适配,为终端当前在前台运行的应用程序提高更优化的内存优化方案,提高该应用程序运行的流畅性。
参见图6,为本申请实施例提供的一种内存释放方法的流程示意图。本实施例以内存释放方法应用于终端中来举例说明,该内存释放方法可以包括以下步骤:
S601、设置多个内存释放策略和多个使用场景。
其中,多个内存释放策略可以是用户自定义的或终端预先配置的,多个使用场景也可以是用户自定义的,也可以是终端预先配置的。内存释放策略表示终端释放内存空间的策略,内存释放策略可以是根据应用的时间局部性或空间局部性原理确定的。使用场景表示用户使用终端的场景,使用场景一般需要依赖互联网,例如:多个工作场景包括游戏场景、上网场景和在线视频场景等。
S602、将多个内存释放策略和多个使用场景进行一对一的绑定得到映射关系信息。
其中,终端多个内存释放策略和多个使用场景进行一对一的绑定,绑定关系本申请实施例不作限制,可以根据用户的配置来确定,一个使用场景关联一个内存释放策略,绑定后得到映射关系信息,映射关系信息可以使用映射表、数组、堆栈或其他数据结构。
举例来说:多个内存释放策略为:内存释放策略1、内存释放策略2和内存释放策略3,多个使用场景为:游戏场景、上网场景和直播场景,终端将游戏场景与内存释放策略1绑定,将上网场景与内存释放策略2进行绑定,以及将直播场景和内存释放策略2进行绑定,绑定后得到的映射关系信息如表1所示:
游戏场景 | 内存释放策略1 |
上网场景 | 内存释放策略2 |
直播场景 | 内存释放策略3 |
表1
S603、判断内存利用率是否大于预设阈值。
其中,内存利用率表示内存已使用的内存空间占整个内存空间的比例,例如:内存的内存空间为2G,当前已使用的内存空间为1G,则内存利用率为1G/2G*100%=50%。内存利用率越大表示内存的负荷越重,反之内存利用率越小表示内存的负荷越轻。终端预存储或预配置有预设阈值,终端比较内存利用率和预设阈值之间的大小,若内存利用率大于预设阈值,执行S604;若内存利用率小于预设阈值,执行S607。
举例来说,终端预存储的预设阈值为20%,终端确定当前的内存利用率为50%,则当前的内存利用率大于预设阈值,执行S604;终端确定当前的内存利用率为10%,则当前的内存利用率小于预设阈值,执行S607。
S604、确定终端的使用场景。
其中,终端可以根据当前处理前台运行状态的应用程序的类型来确定使用场景,终端或服务器上存储有应用程序和使用场景上的映射关系,终端可以根据该映射关系确定使用场景,一个使用场景可以对应多个应用程序。
举例来说:终端上存储的应用程序和使用场景之间的映射关系如表2所示:
游戏场景 | 王者荣耀、跑跑卡丁车 |
上网场景 | 腾讯浏览器、360浏览器 |
视频场景 | 抖音、快手 |
表2
终端监测到当前在前台运行的应用程序为抖音,终端根据表2的映射关系确定当前的使用场景有游戏场景。
S605、根据映射关系信息查询与使用场景对应的目标内存释放策略。
其中,终端根据预先配置的映射关系信息查询使用场景对应的目标内存释放策略。
在一种可能的实施方式中,目标内存释放策略为:杀掉占用内存空间最大的应用程序。
其中,终端获取当前在后台运行的各个应用程序占用的内存空间的大小,确定占用内存空间最大的应用程序,杀掉占用内存空间最大的应用程序的进程。
例如:终端监测到当前在后台运行的应用程序为:应用程序1、应用程序2和应用程序3,应用程序1占用的内存空间的大小为20M,应用程序2占用的内存空间的大小为30M,应用程序3占用的内存空间的大小为50M,终端杀掉应用程序3对应的进程。
在另一种可能的实施方式中,目标内存释放策略为:杀掉在预设时长内使用次数最少的应用程序。
其中,终端获取当前在后台运行的各个应用程序在预设时长内的使用次数,使用次数表示应用程序切换到前台运行状态的次数,杀掉使用次数最少的应用程序对应的进程。
例如:终端监测到当前在后台运行的应用程序为:应用程序1、应用程序2和应用程序3,预设时长为开机时刻到当前时刻之间的时间区间,终端获取该时间区间内应用程序1的使用次数为10次,应用程序2的使用次数为20次,应用程序3的使用次数为2次,终端杀掉应用程序3的进程。
在另一种可能的实施方式中,目标内存释放策略包括:在内存满足内存释放条件时,确定后台运行的各个应用程序,在后台运行的应用程序中杀掉占用内存空间最大的应用程序。
在另一种可能的实施方式中,目标内存释放策略包括:在终端未被使用的时长超过预设时长时,确定后台运行的各个应用程序,在后台运行的应用程序中杀掉预设时长内使用次数最少的应用程序。其中,终端确定未被使用的方法可以是:终端统计熄屏时长,将熄屏时长作为未被使用的时长。
S606、根据目标内存释放策略执行内存释放操作。
其中,终端根据S605中确定的目标内存释放策略执行内存释放操作。
S607、接收选择指令。
其中,终端的处理器接收选择指令,选择指令可以是用户通过触控事件、声控事件或其他类型的事件生成的。
在一个可能的实施方式中,终端的触摸显示屏上显示多个内存释放策略,用户在触摸显示屏上进行触摸选择多个内存释放策略中的一个,触摸显示屏检测到触摸事件,处理器根据触摸事件生成选择指令,处理器根据选择指令在多个内存释放策略中选择一个内存释放策略。
在另一个可能的实施方式中,终端通过音频采集装置接收来自用户的语音数据,终端继续语音数据生成选择指令,终端根据选择指令在预存储的多个内存释放策略中选择一个内存释放策略。
例如:终端预配置有内存释放策略1、内存释放策略2和内存释放策略3,终端接收用户发出的语音数据,对语音数据进行文本转换得到“根据内存释放策略1执行内存释放”,终端根据转换后的文本生成相应的选择指令,基于选择指令从上述的内存释放策略中选择内存释放策略1。
进一步的,终端预存储有参考噪声数据,参考噪声数据是预先根据环境噪音生成的,终端将参考噪声数据和接收到的语音数据进行差分处理得到滤除噪声的语音数据,以减少语音数据中的环境噪音,从而可以提高识别选择指令的准确性。
S608、根据选择指令在多个内存释放策略中选择内存释放策略。
其中,终端根据S607中用户触发的选择指令在多个内存释放策略中选择内存释放策略。
S609、根据内存释放策略执行内存释放操作。
本申请实施例的方案在执行时,在检测到终端满足内存释放条件时,确定终端的使用场景,查询使用场景对应的目标内存释放策略,以及根据目标内存释放策略对内存进行内存释放操作,解决相关技术中使用预先配置的固定的内存释放策略带来的灵活性不高的问题,本申请实施例根据当前的使用场景自适应的选择相应的内存释放策略,能实现使用场景和内存释放策略的适配,为终端当前在前台运行的应用程序提高更优化的内存优化方案,提高该应用程序运行的流畅性。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参见图7,其示出了本申请一个示例性实施例提供的内存释放装置的结构示意图。以下简称装置7,装置7可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。装置7包括检测单元701、查询单元702和释放单元703。
检测单元701,用于检测到终端满足内存释放条件时,确定所述终端的使用场景;
查询单元702,用于查询与所述使用场景对应的目标内存释放策略;
释放单元703,用于根据所述目标内存释放策略执行内存释放操作。
在一个或多个实施例中,检测单元701,还用于检测所述终端的内存利用率;
所述内存利用率大于利用率阈值的情况下,确定所述终端满足内存释放条件。
在一个或多个实施例中,释放单元703,还用于在所述内存利用率小于或等于利用率阈值时,通过音频采集装置接收语音数据;
解析语音数据得到选择指令;
在多个内存释放策略中确定选择指令对应的内存释放策略;
根据所述内存释放策略执行内存释放操作。
在一个或多个实施例中,所述通过音频采集装置接收语音数据,包括:
获取预存储的参考噪声数据;
将所述参考噪声数据和所述语音数据进行差分处理得到滤除噪声的语音数据。
在一个或多个实施例中,所述使用场景为游戏场景;
其中,所述根据所述内存释放策略执行内存释放操作,包括:
统计终端中在后台运行的各个应用程序的内存利用率;
释放内存利用率最大的应用程序对应的内存空间。
在一个或多个实施例中,所述使用场景为在线视频场景;
其中,所述根据所述内存释放策略执行内存释放操作,包括:
统计终端中在后台运行的各个应用程序在预设时长内的使用次数;
释放使用次数最少的应用程序占用的内存空间。
在一个或多个实施例中,装置7还包括:
设置单元,用于设置多个内存释放策略,以及多个内存释放策略各个内存释放策略关联的使用场景;
存储所述多个内存释放策略,以及各个内存释放策略关联的场景。
需要说明的是,上述实施例提供的装置7在执行内存释放方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的内存释放方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在检测到终端满足内存释放条件时,确定终端的使用场景,查询使用场景对应的目标内存释放策略,以及根据目标内存释放策略对内存进行内存释放操作,解决相关技术中使用预先配置的固定的内存释放策略带来的灵活性不高的问题,本申请实施例根据当前的使用场景自适应的选择相应的内存释放策略,能实现使用场景和内存释放策略的适配,为终端当前在前台运行的应用程序提高更优化的内存优化方案,提高该应用程序运行的流畅性。
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图5-图6所示实施例的方法步骤,具体执行过程可以参见图5-图6所示实施例的具体说明,在此不进行赘述。
本申请还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的内存释放方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
Claims (9)
1.一种内存释放方法,其特征在于,所述方法包括:
设置多个内存释放策略,以及所述多个内存释放策略中各个内存释放策略关联的使用场景;
存储所述多个内存释放策略,以及所述各个内存释放策略关联的使用场景,得到使用场景与内存释放策略之间的映射关系;
检测到终端满足内存释放条件时,根据当前运行的应用程序的标识,从应用程序的标识和使用场景之间的映射关系中确定所述终端的使用场景;
根据所述使用场景与内存释放策略之间的映射关系,查询与所述终端的使用场景对应的目标内存释放策略;
根据所述目标内存释放策略执行内存释放操作。
2.根据权利要求1所述的方法,其特征在于,所述检测到终端满足内存释放条件之前,还包括:
检测所述终端的内存利用率;
所述内存利用率大于利用率阈值的情况下,确定所述终端满足内存释放条件。
3.根据权利要求2所述的方法,其特征在于,还包括:
在所述内存利用率小于或等于利用率阈值时,通过音频采集装置接收语音数据;
解析语音数据得到选择指令;
在多个内存释放策略中确定选择指令对应的内存释放策略;
根据所述内存释放策略执行内存释放操作。
4.根据权利要求3所述的方法,其特征在于,所述通过音频采集装置接收语音数据,包括:
获取预存储的参考噪声数据;
将所述参考噪声数据和所述语音数据进行差分处理得到滤除噪声的语音数据。
5.根据权利要求1或2所述的方法,其特征在于,所述使用场景为游戏场景;
其中,所述根据所述内存释放策略执行内存释放操作,包括:
统计终端中在后台运行的各个应用程序的内存利用率;
释放内存利用率最大的应用程序对应的内存空间。
6.根据权利要求1或2所述的方法,其特征在于,所述使用场景为在线视频场景;
其中,所述根据所述内存释放策略执行内存释放操作,包括:
统计终端中在后台运行的各个应用程序在预设时长内的使用次数;
释放使用次数最少的应用程序占用的内存空间。
7.一种内存释放装置,其特征在于,所述装置包括:
检测单元,用于设置多个内存释放策略,以及所述多个内存释放策略中各个内存释放策略关联的使用场景;存储所述多个内存释放策略,以及所述各个内存释放策略关联的使用场景,得到使用场景与内存释放策略之间的映射关系;检测到终端满足内存释放条件时,根据当前运行的应用程序的标识,从应用程序的标识和使用场景之间的映射关系中确定所述终端的使用场景;
查询单元,用于根据所述使用场景与内存释放策略之间的映射关系,查询与所述终端的使用场景对应的目标内存释放策略;
释放单元,用于根据所述目标内存释放策略执行内存释放操作。
8.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~6任意一项的方法步骤。
9.一种终端,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1~6任意一项的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911190959.5A CN111124668B (zh) | 2019-11-28 | 2019-11-28 | 内存释放方法、装置、存储介质及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911190959.5A CN111124668B (zh) | 2019-11-28 | 2019-11-28 | 内存释放方法、装置、存储介质及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124668A CN111124668A (zh) | 2020-05-08 |
CN111124668B true CN111124668B (zh) | 2023-09-15 |
Family
ID=70496963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911190959.5A Active CN111124668B (zh) | 2019-11-28 | 2019-11-28 | 内存释放方法、装置、存储介质及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111124668B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111666153B (zh) * | 2020-05-25 | 2024-07-05 | 深圳Tcl新技术有限公司 | 缓存任务管理方法、终端设备及存储介质 |
CN112217940B (zh) * | 2020-08-28 | 2021-12-24 | 波克科技股份有限公司 | 一种内存释放方法及相关装置 |
CN112333529B (zh) * | 2020-11-02 | 2022-08-05 | 广州华多网络科技有限公司 | 直播流加载方法及其装置、设备、介质 |
CN114721812A (zh) * | 2021-01-04 | 2022-07-08 | 华为技术有限公司 | 内存释放方法及相关设备 |
CN116382896B (zh) * | 2023-02-27 | 2023-12-19 | 荣耀终端有限公司 | 图像处理算法的调用方法、终端设备、介质及产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778086A (zh) * | 2015-04-15 | 2015-07-15 | 天脉聚源(北京)教育科技有限公司 | 一种释放资源的方法及装置 |
CN106201717A (zh) * | 2016-07-01 | 2016-12-07 | 珠海市魅族科技有限公司 | 一种管理系统内存的方法及终端 |
CN107577533A (zh) * | 2017-08-31 | 2018-01-12 | 广东欧珀移动通信有限公司 | 资源配置方法及相关产品 |
CN107766211A (zh) * | 2017-10-31 | 2018-03-06 | 努比亚技术有限公司 | 冻屏预防方法、移动终端及计算机可读存储介质 |
CN110221921A (zh) * | 2019-06-13 | 2019-09-10 | 深圳Tcl新技术有限公司 | 内存管理方法、终端及计算机可读存储介质 |
-
2019
- 2019-11-28 CN CN201911190959.5A patent/CN111124668B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778086A (zh) * | 2015-04-15 | 2015-07-15 | 天脉聚源(北京)教育科技有限公司 | 一种释放资源的方法及装置 |
CN106201717A (zh) * | 2016-07-01 | 2016-12-07 | 珠海市魅族科技有限公司 | 一种管理系统内存的方法及终端 |
CN107577533A (zh) * | 2017-08-31 | 2018-01-12 | 广东欧珀移动通信有限公司 | 资源配置方法及相关产品 |
CN107766211A (zh) * | 2017-10-31 | 2018-03-06 | 努比亚技术有限公司 | 冻屏预防方法、移动终端及计算机可读存储介质 |
CN110221921A (zh) * | 2019-06-13 | 2019-09-10 | 深圳Tcl新技术有限公司 | 内存管理方法、终端及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111124668A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111124668B (zh) | 内存释放方法、装置、存储介质及终端 | |
EP3754490B1 (en) | User interface rendering method and apparatus, and terminal | |
US10499109B2 (en) | Method and apparatus for providing combined barrage information | |
US20230035047A1 (en) | Remote assistance method, device, storage medium, and terminal | |
CN110413347B (zh) | 应用程序中广告的处理方法、装置、存储介质及终端 | |
US11455075B2 (en) | Display method when application is exited and terminal | |
CN111708431B (zh) | 人机交互方法、装置、头戴显示设备及存储介质 | |
CN103870123A (zh) | 一种信息处理方法及电子设备 | |
CN113268212A (zh) | 投屏方法、装置、存储介质及电子设备 | |
CN114186527A (zh) | 一种不依赖于网格点实现集成电路自动布线的方法及装置 | |
CN111913614B (zh) | 多画面显示控制方法、装置、存储介质及显示器 | |
CN112604289B (zh) | 游戏地图生成方法、装置、设备和存储介质 | |
CN102449604A (zh) | 虚拟桌面中分布处理的方法和系统 | |
CN110489318B (zh) | systrace信息的抓取方法、装置、存储介质及终端 | |
CN112114965A (zh) | 应用程序的运行方法、装置、终端及存储介质 | |
CN117555459A (zh) | 一种应用组处理方法、装置、存储介质及电子设备 | |
CN110730300A (zh) | 相机控制方法、装置、存储介质和终端 | |
CN112995562A (zh) | 摄像头的调用方法、装置、存储介质及终端 | |
CN113098859B (zh) | 网页页面回退方法、装置、终端及存储介质 | |
CN112612633B (zh) | 进程间通信方法、装置、存储介质以及终端 | |
CN113825022B (zh) | 一种播放控制状态检测方法、装置、存储介质及电子设备 | |
CN113268414A (zh) | 实验版本的分配方法、装置、存储介质及计算机设备 | |
CN116449936A (zh) | 信息传输方法、装置、存储介质及终端设备 | |
CN115220983A (zh) | 电量显示方法、装置、存储介质及终端设备 | |
CN111859999A (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 |