CN107193653B - 带宽资源分配方法、装置及存储介质 - Google Patents

带宽资源分配方法、装置及存储介质 Download PDF

Info

Publication number
CN107193653B
CN107193653B CN201710295306.8A CN201710295306A CN107193653B CN 107193653 B CN107193653 B CN 107193653B CN 201710295306 A CN201710295306 A CN 201710295306A CN 107193653 B CN107193653 B CN 107193653B
Authority
CN
China
Prior art keywords
bandwidth
abnormal
background
background processes
processes
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
CN201710295306.8A
Other languages
English (en)
Other versions
CN107193653A (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.)
Beijing Xiaomi Mobile Software Co Ltd
Original Assignee
Beijing Xiaomi Mobile Software 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 Beijing Xiaomi Mobile Software Co Ltd filed Critical Beijing Xiaomi Mobile Software Co Ltd
Priority to CN201710295306.8A priority Critical patent/CN107193653B/zh
Publication of CN107193653A publication Critical patent/CN107193653A/zh
Application granted granted Critical
Publication of CN107193653B publication Critical patent/CN107193653B/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/5022Mechanisms to release resources
    • 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/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Abstract

本公开是关于一种带宽资源分配方法、装置及存储介质,属于终端技术领域。所述方法包括:当终端的显示画面发生卡顿时,确定所述显示画面的卡顿原因;当所述卡顿原因是由后台进程所引起时,根据所述卡顿原因确定n个异常后台进程,其中,n≥1;减少所述n个异常后台进程所占用的带宽资源。本公开解决了相关技术中后台应用占用大量的带宽资源导致前台应用卡顿的问题。本公开用于分配带宽资源。

Description

带宽资源分配方法、装置及存储介质
技术领域
本公开涉及终端技术领域,特别涉及一种带宽资源分配方法、装置及存储介质。
背景技术
在安卓系统中,多个应用是可以同时运行的,该多个应用可以包括前台应用和后台应用,终端可以在显示界面上显示前台应用的画面,当用户对终端上的前台应用进行一些基础操作时,例如滑屏和点击等操作,可能由于分配给该前台应用的带宽资源(主要包括中央处理器(英文:Central Processing Unit;简称:CPU)资源和输入输出(英文:Input/Output;简称:I/O)资源)不足等问题,画面会出现卡顿,导致画面的流畅性差。
相关技术中,同一终端的前台应用和后台应用占用的带宽资源的总量是固定的,当后台应用占用大量的带宽资源(例如在后台下载一些文件或者做一些复杂计算等)时,相应地会限制前台应用的带宽,导致前台应用的卡顿。
发明内容
为了解决相关技术中后台应用占用大量的带宽资源导致前台应用卡顿的问题,本公开实施例提供了一种带宽资源分配方法、装置及存储介质。所述技术方案如下:
根据本公开实施例的第一方面,提供一种带宽资源分配方法,所述方法包括:
当终端的显示画面发生卡顿时,确定所述显示画面的卡顿原因;
当所述卡顿原因是由后台进程所引起时,根据所述卡顿原因确定n个异常后台进程,其中,n≥1;
减少所述n个异常后台进程所占用的带宽资源。
可选的,所述根据所述卡顿原因确定n个异常后台进程,包括:
根据所述卡顿原因,获取当前占用带宽资源的所有后台进程,所述带宽资源包括至少一类带宽资源;
对于每类带宽资源,在所述所有后台进程中获取占用所述每类带宽资源的带宽最大的m个后台进程,其中,m≥1;
在所述m个后台进程中确定异常后台进程。
可选的,所述在所述m个后台进程中确定异常后台进程,包括:
检测所述m个后台进程中每个后台进程所占用的带宽资源的带宽是否大于预设带宽阈值;
当任一后台进程所占用的带宽资源的带宽大于所述预设带宽阈值时,判断所述任一后台进程所占用的带宽资源的带宽大于所述预设带宽阈值的时长是否超过预设时长阈值;
当所述任一后台进程所占用的带宽资源的带宽大于预设带宽阈值的时长超过预设时长阈值时,确定所述任一后台进程为异常后台进程。
可选的,所述减少所述n个异常后台进程所占用的带宽资源,包括:
将所述n个异常后台进程转移至异常后台进程组中,所述异常后台进程组用于将所述异常后台进程组中的进程占用的带宽资源限制在预设范围内。
可选的,所述方法还包括:
当所述异常后台进程组中的任一异常后台进程切换为前台进程时,将所述任一异常后台进程转移出所述异常后台进程组。
可选的,所述异常后台进程组中的任一进程占用的带宽资源小于或等于带宽资源总量的10%。
可选的,所述卡顿原因包括CPU资源存在异常和/或I/O带宽资源存在异常。
可选的,所述对于每类带宽资源,在所述所有后台进程中获取占用所述每类带宽资源的带宽最大的m个后台进程,包括:
按照占用每类带宽资源的带宽的大小,对占用所述每类带宽资源的所有后台进程进行降序排序,依次获取排序后的前m个后台进程;
或者,按照占用每类带宽资源的带宽的大小,对占用所述每类带宽资源的所有后台进程进行升序排序,依次获取排序后的后m个后台进程。
根据本公开实施例的第二方面,提供一种带宽资源分配装置,所述装置包括:
第一确定模块,被配置为当终端的显示画面发生卡顿时,确定所述显示画面的卡顿原因;
第二确定模块,被配置为当所述卡顿原因是由后台进程所引起时,根据所述卡顿原因确定n个异常后台进程,其中,n≥1;
减少模块,被配置为减少所述n个异常后台进程所占用的带宽资源。
可选的,所述第二确定模块,包括:
第一获取子模块,被配置为根据所述卡顿原因,获取当前占用带宽资源的所有后台进程,所述带宽资源包括至少一类带宽资源;
第二获取子模块,被配置为对于每类带宽资源,在所述所有后台进程中获取占用所述每类带宽资源的带宽最大的m个后台进程,其中,m≥1;
确定子模块,被配置为在所述m个后台进程中确定异常后台进程。
可选的,所述确定子模块,包括:
检测单元,被配置为检测所述m个后台进程中每个后台进程所占用的带宽资源的带宽是否大于预设带宽阈值;
判断单元,被配置为当任一后台进程所占用的带宽资源的带宽大于所述预设带宽阈值时,判断所述任一后台进程所占用的带宽资源的带宽大于所述预设带宽阈值的时长是否超过预设时长阈值;
确定单元,被配置为当所述任一后台进程所占用的带宽资源的带宽大于预设带宽阈值的时长超过预设时长阈值时,确定所述任一后台进程为异常后台进程。
可选的,所述减少模块,被配置为:
将所述n个异常后台进程转移至异常后台进程组中,所述异常后台进程组用于将所述异常后台进程组中的进程占用的带宽资源限制在预设范围内。
可选的,所述装置还包括:
转移模块,被配置为当所述异常后台进程组中的任一异常后台进程切换为前台进程时,将所述任一异常后台进程转移出所述异常后台进程组。
可选的,所述异常后台进程组中的任一进程占用的带宽资源小于或等于带宽资源总量的10%。
可选的,所述卡顿原因包括CPU资源存在异常和/或I/O带宽资源存在异常。
可选的,所述第二获取子模块,被配置为:
按照占用每类带宽资源的带宽的大小,对占用所述每类带宽资源的所有后台进程进行降序排序,依次获取排序后的前m个后台进程;
或者,按照占用每类带宽资源的带宽的大小,对占用所述每类带宽资源的所有后台进程进行升序排序,依次获取排序后的后m个后台进程。
根据本公开实施例的第三方面,提供一种带宽资源分配装置,包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为:
当终端的显示画面发生卡顿时,确定所述显示画面的卡顿原因;
当所述卡顿原因是由后台进程所引起时,根据所述卡顿原因确定n个异常后台进程,其中,n≥1;
减少所述n个异常后台进程所占用的带宽资源。
根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由终端的处理器执行时,使得所述终端能够执行一种带宽资源分配方法,所述方法包括:
当终端的显示画面发生卡顿时,确定所述显示画面的卡顿原因;
当所述卡顿原因是由后台进程所引起时,根据所述卡顿原因确定n个异常后台进程,其中,n≥1;
减少所述n个异常后台进程所占用的带宽资源。
本公开的实施例提供的技术方案可以包括以下有益效果:
本公开实施例提供的带宽资源分配方法、装置及存储介质,可以在确定终端的显示画面的卡顿原因后,确定引起显示画面卡顿的n个异常后台进程,并减少该n个异常后台进程所占用的带宽资源,由于同一终端中,前台进程和后台进程所占用的带宽资源的总量是固定的,减少异常后台进程所占用的带宽资源,可以为前台进程提供更多的带宽资源,因此可以减少前台进程的卡顿,提高显示画面的流畅性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
为了更清楚地说明本公开的实施例,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本公开一示意性实施例提供的一种带宽资源分配方法的流程图。
图2-1是本公开一示意性实施例提供的另一种带宽资源分配方法的流程图。
图2-2是本公开一示意性实施例提供的一种确定显示画面的卡顿原因的方法流程图。
图2-3是本公开一示意性实施例提供的一种缓存器的数据结构示意图。
图2-4是本公开一示意性实施例提供的一种确定异常后台进程的方法流程图。
图3-1是根据一示例性实施例示出的一种带宽资源分配装置的框图。
图3-2是根据一示例性实施例示出的一种第二确定模块的框图。
图3-3是根据一示例性实施例示出的一种确定子模块的框图。
图3-4是根据一示例性实施例示出的另一种带宽资源分配装置的框图。
图4是根据一示例性实施例示出的一种用于带宽资源分配装置的框图。
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
具体实施方式
为了使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开作进一步地详细描述,显然,所描述的实施例仅仅是本公开一部份实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
图1是本公开一示意性实施例提供的一种带宽资源分配方法的流程图,该方法可以应用于终端,如图1所示,该方法包括:
步骤101、当终端的显示画面发生卡顿时,确定显示画面的卡顿原因。
步骤102、当卡顿原因是由后台进程所引起时,根据卡顿原因确定n个异常后台进程,其中,n≥1。
步骤103、减少该n个异常后台进程所占用的带宽资源。
综上所述,本公开实施例提供的带宽资源分配方法,可以在确定终端的显示画面的卡顿原因后,确定引起显示画面卡顿的n个异常后台进程,并减少该n个异常后台进程所占用的带宽资源,由于同一终端中,前台进程和后台进程所占用的带宽资源的总量是固定的,减少异常后台进程所占用的带宽资源,可以为前台进程提供更多的带宽资源,因此可以减少前台进程的卡顿,提高显示画面的流畅性。
本公开实施例提供的带宽资源分配方法可以应用于安装有安卓系统的终端,图2-1是本公开一示意性实施例提供的一种带宽资源分配方法的流程图,如图2-1所示,该方法包括:
步骤201、检测终端的显示画面是否发生卡顿。
可选的,可以在终端中预先设置在终端的显示界面上的一次滑屏操作对应的终端所需绘制的图像帧的帧数,假设在终端的显示界面上进行一次滑屏操作,终端需要绘制30个图像帧,则可以检测预设时间内用户对显示界面的滑屏操作的次数与终端绘制的图像帧的帧数是否满足公式:图像帧的帧数=滑屏操作的次数×30,当不满足该公式时,确定终端的显示画面发生卡顿。
步骤202、当终端的显示画面发生卡顿时,确定显示画面的卡顿原因。
可选的,显示画面的卡顿原因可以包括CPU资源存在异常和/或I/O带宽资源存在异常。
可选的,确定显示画面的卡顿原因的方法,如图2-2所示,可以包括:
步骤2021、在终端的系统中划分出a个缓存器,该a个缓存器用于存储b种带宽资源的使用记录,a≥1,b≥1。
实际应用中,可以在安卓系统的linux内核中划分出a个缓存器,该a个缓存器可以存储b种带宽资源的使用记录,其中,每个缓存器用于存储至少一种带宽资源的使用记录。
可选的,每个缓存器可以用于存储一种带宽资源的使用记录,一种带宽资源的使用记录存储在单独的缓存器中,便于带宽资源的使用记录的分类,为后期从缓存器中提取相应种类的带宽资源的使用记录提供了便利。
需要说明的是,每个缓存器占用的存储空间固定,可选的,每个缓存器占用的存储空间可以为8千字节(英文:Kilobyte;简称:KB)。
可选的,b种带宽资源可以包括CPU资源和/或I/O带宽资源。
步骤2022、根据b种带宽资源的最新使用记录,更新a个缓存器中的内容。
可选的,缓存器可以采用资源链表存储带宽资源的使用记录,假设缓存器buffer1(也即是资源链表buffer1)中存储的是CPU资源的使用记录,则buffer1的数据结构可以如图2-3所示,buffer1中记录了CPU开始调度的时间戳t,目标应用对应的进程标识pid以及CPU调度的持续时长d。
示例的,如图2-3所示,资源链表buffer1中CPU资源的使用记录从上至下按照时间先后顺序依次排列,假设资源链表buffer1中一共可以存储q条使用记录,表项data1存储CPU资源的使用记录中最早的使用记录,表项dataq存储CPU资源的使用记录中最新的使用记录。假设第一资源链表buffer2中一共可以存储3条使用记录,3条使用记录的时间戳分别为9:00、9:05和9:10,则表项data1存储9:00对应的使用记录,表项dataq存储9:10对应的使用记录。当获取CPU资源的最新使用记录时,删除资源链表的首个表项也即是删除表项data1,则原先表项data2成为新的表项data1,原先的表项dataq成为表项dataq-1,再在表项dataq-1的后面增加表项dataq,在表项dataq中记录CPU资源的最新使用记录,以更新资源链表buffer1中的内容。
需要说明的是,根据I/O带宽资源的最新使用记录,更新存储I/O带宽资源的使用记录的缓存器中的内容的方法,可以参考上述根据CPU资源的最新使用记录,更新存储CPU资源的使用记录的缓存器中的内容的方法,本公开实施例在此不做赘述。
步骤2023、当终端的显示画面发生卡顿时,提取b种带宽资源的使用记录。
可选的,当终端的显示画面发生卡顿时,可以锁定该a个缓存器,可以防止该a个缓存器中的带宽资源使用记录继续更新,导致显示画面发生卡顿时的带宽资源使用记录被删除,根据目标应用对应的进程标识pid从该a个缓存器中提取相应的带宽资源的使用记录。
需要说明的是,在提取b种带宽资源的使用记录之后,对a个缓存器进行解锁,使得该a个缓存器中的带宽资源使用记录得以更新。
步骤2024、根据该b种带宽资源的使用记录,确定显示画面的卡顿原因。
可选的,该使用记录可以包括带宽资源的使用时间段,实际应用中,如图2-3所示,该使用记录可以包括开始时间戳和使用持续时长,根据开始时间戳和使用持续时长可以获取带宽资源的使用时间段。
可选的,根据b种带宽资源使用记录,确定显示画面的卡顿原因的方法的步骤,可以包括:
S1、获取卡顿信息,该卡顿信息包括显示画面产生卡顿的卡顿时间段。
需要说明的是,可以在检测终端的显示画面是否发生卡顿的过程中,当确定终端的显示画面发生卡顿时,获取卡顿信息。
可选的,当终端的显示画面发生卡顿时,也即是终端所绘制的图像帧中存在“掉帧”时,可以获取掉帧的时间段,也即是显示画面产生卡顿的卡顿时间段。
S2、在b种带宽资源使用记录中确定至少一个目标使用记录,该目标使用记录的使用时间段与卡顿时间段存在交集。
示例的,假设卡顿时间段为10秒至11秒,卡顿持续时长为1秒,以CPU资源为例进行说明,由于一次CPU调度的持续时长一般在10毫秒以内,因此在卡顿时间段内,缓存器buffer1中可以记录有多个时间段的目标使用记录。
S3、检测至少一个目标使用记录是否存在异常使用记录。
示例的,以卡顿时长为1秒为例进行说明,以卡顿时长的四分之一的时长也即是0.25秒为阈值。当目标使用记录为内存资源的使用记录时,当目标使用记录为CPU资源的使用记录时,检测1秒内CPU调度的持续时长的时长的总和total1是否少于0.75秒,当total1少于0.75秒时,确定CPU资源的使用记录存在异常使用记录;当目标使用记录为I/O带宽资源的使用记录时,1秒内I/O的持续时长的总和total2是否超过0.25秒,当total2超过0.25秒时,确定I/O带宽资源的使用记录存在异常使用记录。或者,当total1、total2都不满足上述条件时,确定(total1-0.75)和(0.25-total2)中数值较小的对应的带宽资源存在异常。
S4、当至少一个目标使用记录存在异常使用记录时,确定显示画面的卡顿原因为该异常使用记录所对应的带宽资源存在异常。
可选的,当CPU资源的使用记录存在异常使用记录,确定CPU资源存在异常;当I/O带宽资源的使用记录存在异常使用记录时,确定I/O带宽资源存在异常。
步骤203、当卡顿原因是由后台进程所引起时,根据卡顿原因确定n个异常后台进程,其中,n≥1。
可选的,根据卡顿原因确定n个异常后台进程的方法,如图2-4所示,可以包括:
步骤2031、根据卡顿原因,获取当前占用带宽资源的所有后台进程,其中,带宽资源包括至少一类带宽资源。
实际应用中,根据卡顿原因,可以获取当前占用带宽资源的所有进程,包括前台进程和后台进程,由于安卓系统可以自动区分前台进程和后台进程,因此可以在该所有进程中筛选出所有后台进程。
可选的,在确定显示画面的卡顿原因后,根据卡顿原因获取当前占用带宽资源的所有后台进程的操作执行时长可以为1秒,也即是,从终端确定卡顿原因到获取当前占用带宽资源的所有后台进程的持续时长可以为1秒。
步骤2032、对于每类带宽资源,在所有后台进程中获取占用每类带宽资源的带宽最大的m个后台进程,其中,m≥1。
可选的,对于每类带宽资源,以CPU资源为例,在所有后台进程中获取占用CPU资源的带宽最大的m个后台进程,包括:
按照占用CPU资源的带宽的大小,对占用CPU资源的所有后台进程进行降序排序,依次获取排序后的前m个后台进程;或者,按照占用CPU资源的带宽的大小,对占用CPU资源的所有后台进程进行升序排序,依次获取排序后的后m个后台进程。
需要说明的是,对于I/O带宽资源的,在所有后台进程中获取占用I/O带宽资源的带宽最大的m个后台进程的方法可以参考上述对于CPU资源的方法,本公开实施例在此不做赘述。
实际应用中,当卡顿原因包括w种带宽资源存在异常时,其中w≥2,则获取的后台进程总数为w×m个,且n≤(w×m)。假设显示画面的卡顿原因包括CPU资源存在异常和I/O带宽资源存在异常,则分别获取在所有后台进程中获取占用CPU资源的带宽最大的m个后台进程和在所有后台进程中获取占用I/O带宽资源的带宽最大的m个后台进程,一共获取2m个后台进程。
步骤2033、在该m个后台进程中确定异常后台进程。
可选的,在该m个后台进程中确定异常后台进程的方法,可以包括:
检测待筛选后台进程中每个后台进程所占用的带宽资源的带宽是否大于预设带宽阈值。当任一后台进程所占用的带宽资源的带宽大于预设带宽阈值时,判断该任一后台进程所占用的带宽资源的带宽大于预设带宽阈值的时长是否超过预设时长阈值。当该任一后台进程所占用的带宽资源的带宽大于预设带宽阈值的时长超过预设时长阈值时,确定该任一后台进程为异常后台进程。
示例的,假设终端的显示画面的卡顿原因为CPU资源存在异常,预设带宽阈值可以为单核CPU的总带宽,则对占用CPU资源的所有后台进程进行监测,检测该m个后台进程中每个后台进程所占用的CPU资源的带宽是否大于单核CPU的总带宽,当任一后台进程M所占用的CPU资源的带宽大于单核CPU的总带宽时,获取该任一后台进程M所占用的CPU资源的带宽大于单核CPU的总带宽的时长(例如,在1秒内,该任一后台进程M的带宽持续超过单核CPU的总带宽的时长为0.8秒,则上述时长为0.8秒),并判断该任一后台进程M所占用的CPU资源的带宽大于单核CPU的总带宽的时长是否超过预设时长阈值。假设根据卡顿原因获取当前占用带宽资源的所有后台进程的操作执行时长为1秒,在该1秒内,该任一后台进程M的带宽持续超过单核CPU的总带宽的时长为0.8秒,预设的时长阈值可以为0.5秒,由于0.8大于0.5,可以确定该任一后台进程M为异常后台进程。
步骤204、减少该n个异常后台进程所占用的带宽资源。
需要说明的是,安卓系统的linux具有原生的带宽限制功能,可以将linux中具有带宽限制功能的特定组作为异常后台进程组,在该异常后台进程组中的进程所占用的带宽资源的上限是固定的,将n个异常后台进程转移至该异常后台进程组中,可以将异常后台进程占用的带宽资源限制在预设范围z内,该预设范围z满足:0≤z≤N,其中,N为异常后台进程组中的进程可占用的带宽资源的固定上限,从而保证了前台进程的带宽资源。
可选的,异常后台进程组可以包括一个或多个子进程组,当异常后台进程组包括一个子进程组时,假设卡顿原因包括CPU资源存在异常和/或I/O带宽资源存在异常,可以将异常后台进程均转移至该子进程组中,转移至该子进程组中的进程可占用的CPU资源和I/O带宽资源均被限制在预设范围内;当异常后台进程组包括多个子进程组时,该多个子进程组限制的带宽资源不同,例如可以包括CPU资源限制子进程组和I/O带宽资源限制子进程组,根据异常后台进程所对应的带宽资源,将异常后台进程转移至对应的子进程组中,例如可以将对应CPU资源的异常后台进程转移至CPU资源限制子进程组中,将对应I/O带宽资源的异常后台进程转移至I/O带宽资源限制子进程组中。
可选的,异常后台进程组中的任一进程占用的带宽资源小于或等于带宽资源总量的10%。例如当异常后台进程组包括一个子进程组时,异常后台进程组中的任一进程占用的CPU资源与I/O带宽资源之和小于或等于带宽资源总量的10%;当异常后台进程组包括多个子进程组时,CPU资源限制子进程组中的任一进程占用的CPU资源小于或等于CPU资源总量的10%,I/O带宽资源限制子进程组中的任一进程占用的I/O带宽资源小于或等于I/O带宽资源总量的10%。
需要说明的是,当异常后台进程组中的任一异常后台进程切换为前台进程时,将该任一异常后台进程转移出异常后台进程组,可以保证切换后的前台进程占有正常的带宽资源,避免前台进程由于带宽资源不足导致的显示画面卡顿,提高了显示画面的流畅性。
实际应用中,当后台进程发生异常(比如代码死循环)时,可以采用本公开实施例提供的带宽资源分配方法,限制该异常后台进程所占用的带宽资源,不仅保证了显示画面的流畅性,也可以减少终端中带宽资源的不足导致的发热现象。
需要说明的是,本公开实施例提供的带宽资源分配方法步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本公开的保护范围之内,因此不再赘述。
综上所述,本公开实施例提供的带宽资源分配方法,可以在确定终端的显示画面的卡顿原因后,确定引起显示画面卡顿的n个异常后台进程,并减少该n个异常后台进程所占用的带宽资源,由于同一终端中,前台进程和后台进程所占用的带宽资源的总量是固定的,减少异常后台进程所占用的带宽资源,可以为前台进程提供更多的带宽资源,因此可以减少前台进程的卡顿,提高显示画面的流畅性。
图3-1是根据一示例性实施例示出的一种带宽资源分配装置30的框图,如图3-1所示,该装置30可以包括:
第一确定模块301,被配置为当终端的显示画面发生卡顿时,确定显示画面的卡顿原因。
第二确定模块302,被配置为当卡顿原因是由后台进程所引起时,根据该卡顿原因确定n个异常后台进程,其中,n≥1。
减少模块303,被配置为减少该n个异常后台进程所占用的带宽资源。
综上所述,本公开实施例提供的带宽资源分配装置,可以在通过第一确定模块确定终端的显示画面的卡顿原因后,通过第二确定模块确定引起显示画面卡顿的n个异常后台进程,并通过减少模块减少该n个异常后台进程所占用的带宽资源,由于同一终端中,前台进程和后台进程所占用的带宽资源的总量是固定的,减少异常后台进程所占用的带宽资源,可以为前台进程提供更多的带宽资源,因此可以减少前台进程的卡顿,提高显示画面的流畅性。
可选的,如图3-2所示,该第二确定模块302,可以包括:
第一获取子模块3021,被配置为根据卡顿原因,获取当前占用带宽资源的所有后台进程,其中,带宽资源包括至少一类带宽资源。
第二获取子模块3022,被配置为对于每类带宽资源,在所有后台进程中获取占用每类带宽资源的带宽最大的m个后台进程,其中,m≥1。
确定子模块3023,被配置为在m个后台进程中确定异常后台进程。
进一步的,如图3-3所示,该确定子模块3023,可以包括:
检测单元3023a,被配置为检测m个后台进程中每个后台进程所占用的带宽资源的带宽是否大于预设带宽阈值。
判断单元3023b,被配置为当任一后台进程所占用的带宽资源的带宽大于预设带宽阈值时,判断任一后台进程所占用的带宽资源的带宽大于预设带宽阈值的时长是否超过预设时长阈值。
确定单元3023c,被配置为当任一后台进程所占用的带宽资源的带宽大于预设带宽阈值的时长超过预设时长阈值时,确定该任一后台进程为异常后台进程。
可选的,减少模块303可以被配置为:
将n个异常后台进程转移至异常后台进程组中,该异常后台进程组用于将异常后台进程组中的进程占用的带宽资源限制在预设范围内。
可选的,如图3-4所示,装置30还可以包括:
转移模块304,被配置为当异常后台进程组中的任一异常后台进程切换为前台进程时,将该任一异常后台进程转移出异常后台进程组。
可选的,异常后台进程组中的任一进程占用的带宽资源小于或等于带宽资源总量的10%。
需要说明的是,卡顿原因包括CPU资源存在异常和/或I/O带宽资源存在异常。
可选的,第二获取子模块可以被配置为:
按照占用每类带宽资源的带宽的大小,对占用每类带宽资源的所有后台进程进行降序排序,依次获取排序后的前m个后台进程;或者,按照占用每类带宽资源的带宽的大小,对占用每类带宽资源的所有后台进程进行升序排序,依次获取排序后的后m个后台进程。
综上所述,本公开实施例提供的带宽资源分配装置,可以在通过第一确定模块确定终端的显示画面的卡顿原因后,通过第二确定模块确定引起显示画面卡顿的n个异常后台进程,并通过减少模块减少该n个异常后台进程所占用的带宽资源,由于同一终端中,前台进程和后台进程所占用的带宽资源的总量是固定的,减少异常后台进程所占用的带宽资源,可以为前台进程提供更多的带宽资源,因此可以减少前台进程的卡顿,提高显示画面的流畅性。
关于上述实施例中的装置,其中各个模块和单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开实施例提供一种带宽资源分配装置,包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为:
当终端的显示画面发生卡顿时,确定所述显示画面的卡顿原因;
当所述卡顿原因是由后台进程所引起时,根据所述卡顿原因确定n个异常后台进程,其中,n≥1;
减少所述n个异常后台进程所占用的带宽资源。
图4是根据一示例性实施例示出的一种用于带宽资源分配装置400的框图。例如,装置400可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图4,装置400可以包括以下一个或多个组件:处理组件402,存储器404,电源组件406,多媒体组件408,音频组件410,输入/输出(I/O)的接口412,传感器组件414,以及通信组件416。
处理组件402通常控制装置400的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件402可以包括一个或多个处理器420来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件402可以包括一个或多个模块,便于处理组件402和其他组件之间的交互。例如,处理组件402可以包括多媒体模块,以方便多媒体组件408和处理组件402之间的交互。
存储器404被配置为存储各种类型的数据以支持在装置400的操作。这些数据的示例包括用于在装置400上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器404可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件406为装置400的各种组件提供电力。电源组件406可以包括电源管理系统,一个或多个电源,及其他与为装置400生成、管理和分配电力相关联的组件。
多媒体组件408包括在所述装置400和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件408包括一个前置摄像头和/或后置摄像头。当装置400处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件410被配置为输出和/或输入音频信号。例如,音频组件410包括一个麦克风(MIC),当装置400处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器404或经由通信组件416发送。在一些实施例中,音频组件410还包括一个扬声器,用于输出音频信号。
I/O接口412为处理组件402和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件414包括一个或多个传感器,用于为装置400提供各个方面的状态评估。例如,传感器组件414可以检测到装置400的打开/关闭状态,组件的相对定位,例如所述组件为装置400的显示器和小键盘,传感器组件414还可以检测装置400或装置400一个组件的位置改变,用户与装置400接触的存在或不存在,装置400方位或加速/减速和装置400的温度变化。传感器组件414可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件414还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件414还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件416被配置为便于装置400和其他设备之间有线或无线方式的通信。装置400可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件416经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件416还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置400可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器404,上述指令可由装置400的处理器420执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置400的处理器执行时,使得装置400能够执行一种带宽资源分配方法,所述方法包括:
当终端的显示画面发生卡顿时,确定所述显示画面的卡顿原因;
当所述卡顿原因是由后台进程所引起时,根据所述卡顿原因确定n个异常后台进程,其中,n≥1;
减少所述n个异常后台进程所占用的带宽资源。
其中,该装置400可以为终端。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (13)

1.一种带宽资源分配方法,其特征在于,所述方法包括:
当终端的显示画面发生卡顿时,获取卡顿信息,所述卡顿信息包括所述显示画面产生卡顿的卡顿时间段;
在所述终端的系统所存储的带宽资源使用记录中确定至少一个目标使用记录,所述目标使用记录的使用时间段与所述卡顿时间段存在交集;
检测至少一个所述目标使用记录是否存在异常使用记录;
当至少一个所述目标使用记录存在所述异常使用记录时,确定所述显示画面的卡顿原因为所述异常使用记录所对应的带宽资源存在异常;
获取当前占用存在异常的带宽资源的所有后台进程,所述存在异常的带宽资源包括至少一类带宽资源;
在所述当前占用存在异常的带宽资源的所有后台进程中确定n个异常后台进程,其中,n≥1;
减少所述n个异常后台进程所占用的带宽资源。
2.根据权利要求1所述的方法,其特征在于,所述在所述当前占用存在异常的带宽资源的所有后台进程中确定n个异常后台进程,包括:
对于每类带宽资源,在所述所有后台进程中获取占用所述每类带宽资源的带宽最大的m个后台进程,其中,m≥1;
在所述m个后台进程中确定异常后台进程。
3.根据权利要求2所述的方法,其特征在于,所述在所述m个后台进程中确定异常后台进程,包括:
检测所述m个后台进程中每个后台进程所占用的带宽资源的带宽是否大于预设带宽阈值;
当任一后台进程所占用的带宽资源的带宽大于所述预设带宽阈值时,判断所述任一后台进程所占用的带宽资源的带宽大于所述预设带宽阈值的时长是否超过预设时长阈值;
当所述任一后台进程所占用的带宽资源的带宽大于预设带宽阈值的时长超过预设时长阈值时,确定所述任一后台进程为异常后台进程。
4.根据权利要求1至3任一所述的方法,其特征在于,所述减少所述n个异常后台进程所占用的带宽资源,包括:
将所述n个异常后台进程转移至异常后台进程组中,所述异常后台进程组用于将所述异常后台进程组中的进程占用的带宽资源限制在预设范围内。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当所述异常后台进程组中的任一异常后台进程切换为前台进程时,将所述任一异常后台进程转移出所述异常后台进程组。
6.根据权利要求2所述的方法,其特征在于,所述对于每类带宽资源,在所述所有后台进程中获取占用所述每类带宽资源的带宽最大的m个后台进程,包括:
按照占用每类带宽资源的带宽的大小,对占用所述每类带宽资源的所有后台进程进行降序排序,依次获取排序后的前m个后台进程;
或者,按照占用每类带宽资源的带宽的大小,对占用所述每类带宽资源的所有后台进程进行升序排序,依次获取排序后的后m个后台进程。
7.一种带宽资源分配装置,其特征在于,所述装置包括:
第一确定模块,被配置为当终端的显示画面发生卡顿时,获取卡顿信息,所述卡顿信息包括所述显示画面产生卡顿的卡顿时间段;
在所述终端的系统所存储的带宽资源使用记录中确定至少一个目标使用记录,所述目标使用记录的使用时间段与所述卡顿时间段存在交集;
检测至少一个所述目标使用记录是否存在异常使用记录;
当至少一个所述目标使用记录存在所述异常使用记录时,确定所述显示画面的卡顿原因为所述异常使用记录所对应的带宽资源存在异常;
第一获取子模块,被配置为获取当前占用存在异常的带宽资源的所有后台进程,所述存在异常的带宽资源包括至少一类带宽资源;
第二确定模块,被配置为在所述当前占用存在异常的带宽资源的所有后台进程中确定n个异常后台进程,其中,n≥1;
减少模块,被配置为减少所述n个异常后台进程所占用的带宽资源。
8.根据权利要求7所述的装置,其特征在于,所述第二确定模块,包括:
第二获取子模块,被配置为对于每类带宽资源,在所述所有后台进程中获取占用所述每类带宽资源的带宽最大的m个后台进程,其中,m≥1;
确定子模块,被配置为在所述m个后台进程中确定异常后台进程。
9.根据权利要求8所述的装置,其特征在于,所述确定子模块,包括:
检测单元,被配置为检测所述m个后台进程中每个后台进程所占用的带宽资源的带宽是否大于预设带宽阈值;
判断单元,被配置为当任一后台进程所占用的带宽资源的带宽大于所述预设带宽阈值时,判断所述任一后台进程所占用的带宽资源的带宽大于所述预设带宽阈值的时长是否超过预设时长阈值;
确定单元,被配置为当所述任一后台进程所占用的带宽资源的带宽大于预设带宽阈值的时长超过预设时长阈值时,确定所述任一后台进程为异常后台进程。
10.根据权利要求7至9任一所述的装置,其特征在于,所述减少模块,被配置为:
将所述n个异常后台进程转移至异常后台进程组中,所述异常后台进程组用于将所述异常后台进程组中的进程占用的带宽资源限制在预设范围内。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
转移模块,被配置为当所述异常后台进程组中的任一异常后台进程切换为前台进程时,将所述任一异常后台进程转移出所述异常后台进程组。
12.根据权利要求8所述的装置,其特征在于,所述第二获取子模块,被配置为:
按照占用每类带宽资源的带宽的大小,对占用所述每类带宽资源的所有后台进程进行降序排序,依次获取排序后的前m个后台进程;
或者,按照占用每类带宽资源的带宽的大小,对占用所述每类带宽资源的所有后台进程进行升序排序,依次获取排序后的后m个后台进程。
13.一种存储介质,其特征在于,当所述存储介质中的指令由终端的处理器执行时,使得所述终端能够执行一种带宽资源分配方法,所述方法包括:
当终端的显示画面发生卡顿时,获取卡顿信息,所述卡顿信息包括所述显示画面产生卡顿的卡顿时间段;
在所述终端的系统所存储的带宽资源使用记录中确定至少一个目标使用记录,所述目标使用记录的使用时间段与所述卡顿时间段存在交集;
检测至少一个所述目标使用记录是否存在异常使用记录;
当至少一个所述目标使用记录存在所述异常使用记录时,确定所述显示画面的卡顿原因为所述异常使用记录所对应的带宽资源存在异常;
获取当前占用存在异常的带宽资源的所有后台进程,所述存在异常的带宽资源包括至少一类带宽资源;
在所述当前占用存在异常的带宽资源的所有后台进程中确定n个异常后台进程,其中,n≥1;
减少所述n个异常后台进程所占用的带宽资源。
CN201710295306.8A 2017-04-28 2017-04-28 带宽资源分配方法、装置及存储介质 Active CN107193653B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710295306.8A CN107193653B (zh) 2017-04-28 2017-04-28 带宽资源分配方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710295306.8A CN107193653B (zh) 2017-04-28 2017-04-28 带宽资源分配方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN107193653A CN107193653A (zh) 2017-09-22
CN107193653B true CN107193653B (zh) 2020-12-29

Family

ID=59873271

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710295306.8A Active CN107193653B (zh) 2017-04-28 2017-04-28 带宽资源分配方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN107193653B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109992380B (zh) * 2017-12-29 2021-06-08 Oppo广东移动通信有限公司 应用程序处理方法和装置、电子设备、计算机可读存储介质
CN110018888A (zh) * 2018-01-10 2019-07-16 广东欧珀移动通信有限公司 资源管理方法、装置、移动终端及计算机可读存储介质
CN110032439A (zh) * 2018-01-10 2019-07-19 广东欧珀移动通信有限公司 资源管理方法、装置、移动终端及计算机可读存储介质
CN108391288B (zh) * 2018-02-09 2021-09-07 维沃移动通信有限公司 一种优化通信业务质量的方法及移动终端
CN108762665B (zh) * 2018-04-08 2023-06-09 中兴通讯股份有限公司 一种控制存储设备读写的方法及装置
CN108834157A (zh) * 2018-04-27 2018-11-16 努比亚技术有限公司 网络带宽分配方法、移动终端及计算机可读存储介质
CN108710539B (zh) * 2018-05-18 2021-03-16 珠海格力电器股份有限公司 一种信息处理方法、终端及可读存储介质
CN112306371A (zh) * 2019-07-30 2021-02-02 伊姆西Ip控股有限责任公司 存储管理的方法、设备和计算机程序产品
CN114500287B (zh) * 2021-12-30 2023-09-22 广州趣丸网络科技有限公司 一种带宽资源的智能分配方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239196A (zh) * 2014-09-17 2014-12-24 北京金山安全软件有限公司 应用程序运行异常的检测方法、装置和移动终端
CN104503740A (zh) * 2014-12-01 2015-04-08 小米科技有限责任公司 内存管理方法和装置
CN106095363A (zh) * 2016-06-03 2016-11-09 广东欧珀移动通信有限公司 一种终端卡顿的改善方法、装置以及终端
CN106445783A (zh) * 2016-09-27 2017-02-22 北京金山安全软件有限公司 一种检测电子设备卡顿的方法、装置及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105243007B (zh) * 2015-10-13 2018-09-11 广东欧珀移动通信有限公司 移动终端中内存的老化测试方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239196A (zh) * 2014-09-17 2014-12-24 北京金山安全软件有限公司 应用程序运行异常的检测方法、装置和移动终端
CN104503740A (zh) * 2014-12-01 2015-04-08 小米科技有限责任公司 内存管理方法和装置
CN106095363A (zh) * 2016-06-03 2016-11-09 广东欧珀移动通信有限公司 一种终端卡顿的改善方法、装置以及终端
CN106445783A (zh) * 2016-09-27 2017-02-22 北京金山安全软件有限公司 一种检测电子设备卡顿的方法、装置及电子设备

Also Published As

Publication number Publication date
CN107193653A (zh) 2017-09-22

Similar Documents

Publication Publication Date Title
CN107193653B (zh) 带宽资源分配方法、装置及存储介质
US9588805B2 (en) Method and terminal device for controlling background application
EP3188066B1 (en) A method and an apparatus for managing an application
CN107193678B (zh) 卡顿原因确定方法、装置及存储介质
US10409684B2 (en) Method, device and storage medium for cleaning memory
EP3171554B1 (en) Method and device for displaying a message
CN108268322B (zh) 内存优化的方法、装置及计算机可读存储介质
EP3264257A1 (en) Image outputting method and apparatus, computer program and recording medium
US20170055221A1 (en) Method and apparatus for starting energy saving mode
CN109254849B (zh) 应用程序的运行方法及装置
EP3015983A1 (en) Method and device for optimizing memory
CN109634762B (zh) 一种数据回收方法、装置、电子设备及存储介质
US10229165B2 (en) Method and device for presenting tasks
US9678868B2 (en) Method and device for optimizing memory
CN113703937A (zh) 动画切换方法及装置、存储介质
CN105095296B (zh) 文件管理方法及装置
CN105786561B (zh) 进程调用的方法及装置
CN111580980B (zh) 内存管理方法和装置
CN106919302B (zh) 移动终端的操作控制方法及装置
CN108427582B (zh) 卡顿状态确定方法、装置及计算机可读存储介质
CN113761275A (zh) 视频预览动图生成方法、装置、设备及可读存储介质
CN114077461A (zh) 应用程序的运行方法、装置、设备及存储介质
CN110968523A (zh) 内存碎片整理的方法和装置
CN110784721A (zh) 一种图片数据压缩方法、装置、电子设备及存储介质
CN117369982A (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