CN117724807A - 应用运行方法、装置、电子设备及存储介质 - Google Patents

应用运行方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN117724807A
CN117724807A CN202211084693.8A CN202211084693A CN117724807A CN 117724807 A CN117724807 A CN 117724807A CN 202211084693 A CN202211084693 A CN 202211084693A CN 117724807 A CN117724807 A CN 117724807A
Authority
CN
China
Prior art keywords
target
application
action
calling
abnormal
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
Application number
CN202211084693.8A
Other languages
English (en)
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.)
Samsung Guangzhou Mobile R&D Center
Samsung Electronics Co Ltd
Original Assignee
Samsung Guangzhou Mobile R&D Center
Samsung Electronics 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 Samsung Guangzhou Mobile R&D Center, Samsung Electronics Co Ltd filed Critical Samsung Guangzhou Mobile R&D Center
Priority to CN202211084693.8A priority Critical patent/CN117724807A/zh
Priority to PCT/IB2023/057517 priority patent/WO2024052744A1/en
Publication of CN117724807A publication Critical patent/CN117724807A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/24323Tree-organised classifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/2433Single-class perspective, e.g. one-against-all classification; Novelty detection; Outlier detection
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开关于一种应用运行方法、装置、电子设备及存储介质,应用运行方法包括:获取所有正在运行的应用的特征数据,其中,所述特征数据包括当前系统状态数据和应用的运行状态数据;基于所述所有正在运行的应用的特征数据,确定目标异常应用;获取所述目标异常应用在预设时长内所有调用动作的交互数据;基于所述所有调用动作的交互数据,确定目标异常调用动作;响应于监测到所述目标异常调用动作,对所述目标异常调用动作进行调用限制。本公开能够改善电子终端的发热和卡顿的情况,提升了用户体验。

Description

应用运行方法、装置、电子设备及存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种应用运行方法、装置、电子设备及存储介质。
背景技术
随着移动电子终端(如手机、平板电脑等)的发展,越来越多的用户选择在电子终端上安装各种丰富的应用。电子终端中的应用可通过调用系统服务以实现各种功能,但是,异常地高频调用系统服务可能会导致电子终端出现发热、卡顿、掉电快、甚至重启的问题。
发明内容
本公开提供一种应用运行方法、装置、电子设备及存储介质,以至少解决上述相关技术中的问题,也可不解决任何上述问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种应用运行方法,包括:获取所有正在运行的应用的特征数据,其中,所述特征数据包括当前系统状态数据和应用的运行状态数据;基于所述所有正在运行的应用的特征数据,确定目标异常应用;获取所述目标异常应用在预设时长内所有调用动作的交互数据;基于所述所有调用动作的交互数据,确定目标异常调用动作;响应于监测到所述目标异常调用动作,对所述目标异常调用动作进行调用限制。
可选地,所述基于所述所有正在运行的应用的特征数据,确定目标异常应用的步骤可包括:基于所述所有正在运行的应用的运行状态数据,从所述所有正在运行的应用中确定目标应用;基于所述目标应用的特征数据,从所述目标应用中确定目标异常应用。
可选地,所述应用的运行状态数据可包括应用运行时的CPU占用率;所述基于所述所有正在运行的应用的运行状态数据,从所述所有正在运行的应用中确定目标应用的步骤可包括:从所述所有正在运行的应用中选出CPU占用率最高的前N个应用,其中,N为预设的正整数。将所述CPU占用率最高的前N个应用确定为所述目标应用。
可选地,所述基于所述目标应用的特征数据,从所述目标应用中确定目标异常应用的步骤可包括:基于每个所述目标应用的特征数据,通过决策树模型得到每个所述目标应用对应的决策结果;基于所述决策结果,从所述目标应用中确定目标异常应用。
可选地,在所述基于所述所有正在运行的应用的特征数据,确定目标异常应用之后,还可包括:显示第一通知信息,其中,所述第一通知信息指示存在所述目标异常应用,并提示用户可开启对所述目标异常应用的优化功能;响应于接收到对所述优化功能的开启指令,执行第一操作;其中,所述第一操作包括:获取所述目标异常应用在预设时长内所有调用动作的交互数据、基于所述所有调用动作的交互数据,确定目标异常调用动作、响应于监测到所述目标异常调用动作,对所述目标异常调用动作进行调用限制。
可选地,所述应用运行方法还可包括:在第一操作的执行过程中,显示第二通知信息,其中,所述第二通知信息提示用户可关闭对所述目标异常应用的优化功能;响应于接收到对所述优化功能的关闭指令,停止执行所述第一操作。
可选地,在所述基于所述所有调用动作的交互数据,确定目标异常调用动作之后,还可包括:获取指示所述决策结果是否正确的标签;基于所述标签以及所述目标异常应用的特征数据,对所述决策树模型进行更新。
可选地,所述调用动作可包括第一类调用动作和第二类调用动作,其中,所述第一类调用动作是所述目标异常应用中的任一线程调用系统服务中的任一函数,所述第二类调用动作是所述目标异常应用中的任一线程调用其他应用中的任一函数;所述交互数据可包括调用动作在所述预设时长内的调用次数;所述基于所述所有调用动作的交互数据,确定目标异常调用动作的步骤可包括:从所述所有调用动作中筛选出第一类调用动作;将调用次数最多的第一类调用动作确定为目标调用动作;基于所述目标调用动作在所述预设时长内的调用次数,确定目标异常调用动作。
可选地,所述基于所述目标调用动作在所述预设时长内的调用次数,确定目标异常调用动作的步骤可包括:基于所述目标调用动作在所述预设时长内的调用次数,通过高斯混合聚类模型得到所述目标调用动作的异常概率;响应于所述异常概率高于预设阈值,将所述目标调用动作确定为目标异常调用动作;
可选地,所述响应于监测到所述目标异常调用动作,对所述目标异常调用动作进行调用限制的步骤可包括:响应于监测到所述目标异常调用动作,暂停执行所述目标异常调用动作;在经过预设暂停时间后,解除暂停所述目标异常调用动作。
可选地,所述应用运行方法还可包括:在对所述目标异常调用动作进行调用限制的过程中,基于所述目标异常应用的功耗数据和性能数据,通过强化学习模型对所述预设暂停时间进行多次调整,以达到最佳暂停时间。
根据本公开实施例的第二方面,提供一种应用运行装置,包括:运行数据获取单元,被配置为:运行数据获取单元,被配置为:获取所有正在运行的应用的特征数据,其中,所述特征数据包括当前系统状态数据和应用的运行状态数据;目标应用确定单元,被配置为:基于所述所有正在运行的应用的特征数据,确定目标异常应用;交互数据获取单元,被配置为:获取所述目标异常应用在预设时长内所有调用动作的交互数据;动作异常确定单元,被配置为:基于所述所有调用动作的交互数据,确定目标异常调用动作;异常动作限制单元,被配置为:响应于监测到所述目标异常调用动作,对所述目标异常调用动作进行调用限制。
可选地,所述目标应用确定单元可被配置为:基于所述所有正在运行的应用的运行状态数据,从所述所有正在运行的应用中确定目标应用;基于所述目标应用的特征数据,从所述目标应用中确定目标异常应用。
可选地,所述应用的运行状态数据可包括应用运行时的CPU占用率;所述目标应用确定单元可被配置为:从所述所有正在运行的应用中选出CPU占用率最高的前N个应用,其中,N为预设的正整数;将所述CPU占用率最高的前N个应用确定为所述目标应用。
可选地,所述目标应用确定单元可被配置为:基于每个所述目标应用的特征数据,通过决策树模型得到每个所述目标应用对应的决策结果;基于所述决策结果,从所述目标应用中确定目标异常应用。
可选地,所述应用运行装置还可包括显示单元和接收单元;其中,在所述目标应用确定单元基于所述所有正在运行的应用的特征数据,确定目标异常应用之后,所述显示单元显示第一通知信息,其中,所述第一通知信息指示存在所述目标异常应用,并提示用户可开启对所述目标异常应用的优化功能;响应于所述接收单元到对所述优化功能的开启指令,所述交互数据获取单元、动作异常确定单元和异常动作限制单元执行操作。
可选地,在所述交互数据获取单元、动作异常确定单元和异常动作限制单元执行操作的过程中,所述显示单元可显示第二通知信息,其中,所述第二通知信息提示用户可关闭对所述目标异常应用的优化功能;响应于所述接收单元接收到对所述优化功能的关闭指令所述交互数据获取单元、动作异常确定单元和异常动作限制单元可停止操作。
可选地,所述应用运行装置还可包括更新样本获取单元和决策树模型更新单元;其中,所述更新样本获取单元可被配置为:获取指示所述决策结果是否正确的标签;其中,所述决策树模型更新单元可被配置为:基于所述标签以及所述目标异常应用的特征数据,对所述决策树模型进行更新。
可选地,所述调用动作可包括第一类调用动作和第二类调用动作,其中,所述第一类调用动作是所述目标异常应用中的任一线程调用系统服务中的任一函数,所述第二类调用动作是所述目标异常应用中的任一线程调用其他应用中的任一函数;所述交互数据可包括调用动作在所述预设时长内的调用次数;所述动作异常确定单元可被配置为:从所述所有调用动作中筛选出第一类调用动作;将调用次数最多的第一类调用动作确定为目标调用动作;基于所述目标调用动作在所述预设时长内的调用次数,确定目标异常调用动作。
可选地,所述动作异常确定单元可被配置为:基于所述目标调用动作在所述预设时长内的调用次数,通过高斯混合聚类模型得到所述目标调用动作的异常概率;响应于所述异常概率高于预设阈值,将所述目标调用动作确定为目标异常调用动作。
可选地,所述异常动作限制单元可被配置为:响应于监测到所述目标异常调用动作,暂停执行所述目标异常调用动作;在经过预设暂停时间后,解除暂停所述目标异常调用动作。
可选地,所述应用运行装置还可包括暂停时间调整单元,被配置为:在对所述目标异常调用动作进行调用限制的过程中,基于所述目标异常应用的功耗数据和性能数据,通过强化学习模型对所述预设暂停时间进行多次调整,以达到最佳暂停时间。
根据本公开实施例的第三方面,提供一种电子设备,包括:至少一个处理器;至少一个存储计算机可执行指令的存储器,其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行根据本公开的应用运行方法。
根据本公开实施例的第四方面,提供一种存储指令的计算机可读存储介质,当所述指令被至少一个处理器运行时,促使所述至少一个处理器执行根据本公开的应用运行方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
根据本公开的应用运行方法、装置、电子设备及存储介质,通过基于电子终端的当前运行数据确定存在异常的目标应用,在目标应用的调用动作中确定目标调用动作,并在预测出目标调用动作存在异常的情况下对目标调用动作进行限制,能够捕获存在异常高频调用系统服务的应用,并精准定位异常的调用动作,从而能够解决高负载高电流消耗的问题,同时能够改善发热和卡顿的情况,提升了用户体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是应用通过Binder机制调用系统服务的示意图。
图2是根据一示例性实施例示出的一种应用运行方法的整体框架图。
图3是根据一示例性实施例示出的一种应用运行方法的流程图。
图4是根据一示例性实施例示出的一种决策树模型的第一层的节点的示意图。
图5是根据一示例性实施例示出的一种决策树模型的第二层的节点的示意图。
图6是根据一示例性实施例示出的一种决策树模型部分节点的示意图。
图7是根据一示例性实施例示出的一种第一类调用动作的调用次数的示意图。
图8是根据一示例性实施例示出的一种第二训练样本集中的调用次数散点图。
图9是根据一示例性实施例示出的一种高斯概率密度函数示意图。
图10是根据一示例性实施例示出的一种使用强化学习模型调整暂停时间的流程图。
图11是根据一示例性实施例示出的一种空Q值表的示意图。
图12是根据一示例性实施例示出的一种状态参数-动作变化示意图。
图13是根据一示例性实施例示出的在检测到目标异常应用时显示的第一用户界面的示意图。
图14是根据一示例性实施例示出的在目标异常应用优化过程中显示的第二用户界面的示意图。
图15是根据一示例性实施例示出的一种应用运行装置的框图。
图16是根据一示例性实施例的电子设备1600的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在此需要说明的是,在本公开中出现的“若干项之中的至少一项”均表示包含“该若干项中的任意一项”、“该若干项中的任意多项的组合”、“该若干项的全体”这三类并列的情况。例如“包括A和B之中的至少一个”即包括如下三种并列的情况:(1)包括A;(2)包括B;(3)包括A和B。又例如“执行步骤一和步骤二之中的至少一个”,即表示如下三种并列的情况:(1)执行步骤一;(2)执行步骤二;(3)执行步骤一和步骤二。
随着移动电子终端(如手机、平板电脑等)的发展,越来越多的用户选择在电子终端上安装各种丰富的应用(APP,也可称作软件或应用)。电子终端中的应用可通过调用系统服务以实现各种功能,例如,电子终端中的应用可通过进程间的通信机制(Binder机制)来调用系统服务以实现各种功能。
图1是应用通过Binder机制调用系统服务的示意图,参考图1,应用(也可被理解为,应用中的进程Process)包含有线程(Thread)1、线程2和线程3,而系统服务(SystemSever)包含有服务(Service)1和服务2,服务1和服务2分别包含有对应的函数(Code)1、函数2和函数3,其中,线程1通过一个Binder来调用服务1中的函数3,线程2通过一个Binder来调用服务2中的函数1,以实现应用中对应的功能。
然而,当应用异常地高频调用系统服务,可能导致CPU高负载,进而产生高功耗,从而会使得电子终端出现发热、卡顿、掉电快、甚至重启的问题。
例如,某一具有播放视频功能的应用以每秒1000次以上的频率调用系统服务接口“ConnectivityManager.getActiveNetworkInfo”,导致电流消耗非常高,带来了很大的系统负载(system load),再例如,另一具有播放视频功能的应用以每秒200次以上的频率调用系统服务接口“AudioManager.adjustStreamVolume”,导致电流消耗很高,带来了很大的系统负载,同时产生了重启的问题。
在相关技术中为避免上述问题,采取限制CPU频率,甚至在一定情况下强制关闭应用的方式,但是,这样可能会导致电子终端进一步卡顿,影响用户体验。
为了解决上述相关技术中存在的问题,本公开提出一种应用运行方法、装置、电子设备及存储介质,通过基于电子终端的当前运行数据确定存在异常的目标应用,在目标应用的调用动作(Binder)中确定目标调用动作,并在预测出目标调用动作存在异常的情况下对目标调用动作进行限制,能够捕获存在异常高频调用系统服务的应用,并精准定位异常的Binder,从而能够解决高负载高电流消耗的问题,同时能够改善发热和卡顿的情况,提升了用户体验。
下面,将参照图2至图14来详细描述根据本公开的应用运行方法、装置、电子设备及存储介质。
图2是根据一示例性实施例示出的一种应用运行方法的整体框架图。
参照图2,在步骤201,可执行浅检测,即为:使用决策树模型从正在运行的应用中确定存在异常高频调用的目标异常应用。
在步骤202,可执行深检测,即为:在目标异常应用的所有Binder中确定调用系统服务次数最多的目标Binder,并通过高斯混合聚类模型预测目标Binder是否存在异常,即,预测目标Binder是否是目标异常Binder。
在步骤203,可在确定目标Binder是目标异常Binder的情况下,对目标异常Binder进行限制,并基于强化学习模型的不断训练以执行更好的限制策略。
基于上述步骤201至203,可使得目标异常应用的Binder调用频率恢复正常,从而解决高负载高功耗的问题,达到正常的功耗和正常的CPU负载。
下面将以图2所示的整体框架为基础,对本公开的应用运行方法进行具体描述。
图3是根据一示例性实施例示出的一种应用运行方法的流程图。图3所示的流程可被电子终端执行,例如,可将图3所示的流程创建成一个电子终端的系统服务进程,在电子终端开机时实现自动执行。
参考图3,在步骤301,可获取所有正在运行的应用的特征数据。这里,特征数据可包括当前系统状态数据和应用的运行状态数据。
根据本公开的示例性实施例,电子终端可以是,但不限于,手机、平板电脑等可安装各种应用的设备;电子终端上的运行系统可以是,但不限于,安卓系统(Android);正在运行的应用可以是,但不限于,第三方应用软件(3rd APP)。
根据本公开的示例性实施例,系统状态数据可包括,但不限于以下项中的至少一项:系统服务进程的CPU占用率(System CPU Usage)、设备最低电流消耗值(BottomCurrent)、设备平均电流消耗值(Average Current)、设备平均CPU占用率(Average TotalCPU Usage)、最近5秒内是否存在点击事件(During Touch)、设备平均CPU频率(AverageCPU Frequency)、设备最低CPU频率(Bottom CPU Frequency)。应用的运行状态数据可包括,但不限于,应用的CPU占用率(APP CPU Usage)。需要说明的是,上述多个参数均为一段时间内的参数统计值,例如,设备平均电流消耗值是设备在一段时间内的平均电流消耗值。
在步骤302,可基于所有正在运行的应用的特征数据,确定目标异常应用。这里,异常应用可指高频调用系统服务的应用。
根据本公开的示例性实施例,首先,可基于所有正在运行的应用的运行状态数据,从所有正在运行的应用中确定目标应用。例如,运行状态数据可包括,但不限于,正在运行的应用的CPU占用率。基于此,可从所有正在运行的应用中确定CPU占用率最高的前N个应用,其中,N为预设的正整数,例如,但不限于,将所有正在运行的应用按照对应的CPU占用率从高至低升序排列,并依次序选择N个应用,此处的N可以取值为3。
然后,可基于目标应用的特征数据,从目标应用中确定目标异常应用。这里,可判断目标应用的运行状态数据以及当前系统状态数据是否存在异常,若存在异常则确定该目标应用是目标异常应用。例如,可基于每个目标应用的特征数据,通过决策树模型得到每个目标应用对应的决策结果,并基于决策结果,从所述目标应用中确定目标异常应用。具体来说,对于目标应用中的每一目标应用,可将每一目标应用的运行状态数据,以及当前系统状态数据输入决策树模型,得到关于每一目标应用是否存在异常的决策结果,并基于决策结果,确定每一目标应用是否是目标异常应用。根据实施例,基于决策树模型执行浅检测可对于目标应用是否存在异常做出筛选,决策树模型的输入是可直接读取到的目标应用的运行状态数据以及当前系统状态数据,不会造成额外的负载,也不会干扰目标应用的运行,能够避免直接执行深检测所带来的系统资源消耗和负载。
作为示例,通过决策树模型进行判断可以进行多次,并基于多次的决策结果确定每一目标应用是否是目标异常应用,例如,可以一定的时间间隔(例如10s)获取每一目标应用的运行状态数据以及系统状态数据,并输入决策树模型,在连续三次的决策结果是存在异常的情况下,则确定对应的目标应用是目标异常应用。
根据本公开的示例性实施例,用于从目标应用中确定目标异常应用的决策树模型可以是预先训练好的。下面,对决策树模型的训练过程作出阐述:
首先,可获取第一训练样本集,其中,第一训练样本集中的每个训练样本包括一个应用的多个特征数据以及指示是否存在异常的标签,其中,多个特征数据包括该应用正在运行时的系统状态数据和运行状态数据。
这里,多个特征数据可以是上述实施例中说明的:系统服务进程的CPU占用率、应用的CPU占用率、设备最低电流消耗值、设备平均电流消耗值、设备平均CPU占用率、最近5秒内是否存在点击事件、设备平均CPU频率、设备最低CPU频率。例如,在一个实施例里,第一训练样本集可被表示为下表(1):
表(1)第一训练样本集示意表
然后,可基于第一训练样本集,以多个特征数据为节点,构建决策树模型。这里,决策树模型可以是C4.5决策树模型。本公开的示例性实施例可根据第一训练样本集,基于熵增益率来逐层构建决策树模型。
下面通过一个具体的实施例(包含1-A至1-N步)来阐述构建决策树模型的过程(下述实施例中的训练样本个数、正例个数、反例个数、等级划分的阈值仅仅是示意性的,本公开不限于此):
在本实施例中,第一训练样本集包含500个训练样本,其中,标签为存在异常(即,反例)的训练样本有100个,标签为不存在异常或正常(即,正例)的训练样本有400个。
(1-A),可将每个特征数据按照数值大小划分等级。具体来说,可将系统服务进程的CPU占用率划分成<56%、56~72%和>72%这三个等级,应用的CPU占用率划分成<56%、56~72%和>72%这三个等级,设备最低电流消耗值划分成<400mA、400-500mA和>500mA这三个等级,设备平均电流消耗值划分成<500mA、500~600mA和>600mA这三个等级,设备平均CPU占用率划分成<100%、100~150%和>150%这三个等级,最近5秒内是否存在点击事件划分成是和否这两个等级,设备平均CPU频率(百分比)划分成<70%、70~80%和>80%这三个等级,设备最低CPU频率(百分比)划分成<60%、60~70%和>70%这三个等级。
(1-B),可通过下式(1)计算根节点的熵值Enr(S):
(1-C),可分别计算各特征数据的熵增益,其中,各特征数据的熵增益可通过计算对应特征数据的各个等级的熵值来确定。
例如,系统服务进程的CPU占用率的熵增益可通过计算<56%、56~72%和>72%这三个等级的熵值来确定,那么先需确定三个等级包含的正反例个数,即确定系统服务进程的CPU占用率<56%的训练样本有250个(10个正例,240个是反例),在56~72%之间有130个(30个正例,100个是反例),>72%的样本有120个(60个是正例,另外60个是反例);再通过下式(2)至(4)分别确定系统服务进程的CPU占用率<56%的熵值Ent(D11),系统服务进程的CPU占用率在56~72%之间的熵值Ent(D12)、系统服务进程的CPU占用率>72%的熵值Ent(D13),最后通过下式(5)计算系统服务进程的CPU占用率的熵增益Gain(D1)。
采用和系统服务进程的CPU占用率的熵增益同样的计算过程,可确定应用的CPU占用率的熵增益g2、设备最低电流消耗值的熵增益g3、设备平均电流消耗值的熵增益g4、设备平均CPU占用率的熵增益g5、最近5秒内是否存在点击事件的熵增益g6、设备平均CPU频率的熵增益g7、设备最低CPU频率的熵增益g8。
(1-D),可通过下式(6)计算各个特征数据的平均熵增益:
(1-E),可在上述各特征数据的熵增益中,确定大于平均熵增益的特征数据的熵增益,在本实施例中,大于平均熵增益的特征数据的熵增益是系统服务进程的CPU占用率的熵增益g1和设备最低电流消耗值的熵增益g3。
(1-F),可通过下式(7)和(8)计算系统服务进程的CPU占用率的熵增益率GainR(D1):
其中,
采用和系统服务进程的CPU占用率的熵增益率同样的计算过程,可确定设备最低电流消耗值的熵增益率r2。
(1-G),可确定r1和r2之间的大小关系,取较大者对应的特征数据作为决策树模型的第一层的节点(需要说明的是,在r1=r2的情况下,可取二者任一作为第一层的节点),在本实施例中,r1>r2,因此可将系统服务进程的CPU占用率作为决策树模型的第一层的节点。图4是根据一示例性实施例示出的一种决策树模型的第一层的节点的示意图,本实施例中的第一层的节点可参考图4。
(1-H),可确定决策树模型的第二层的节点,具体来说,参考图4,系统服务进程的CPU占用率<56%的训练样本有250个,其中,10个正例,240个是反例,下面以该分支为例,来描述确定第二层的节点的过程。
(1-I),可通过下式(9)确定系统服务进程的CPU占用率<56%这个分支的根节点的熵值Ent(S):
(1-J),可采用和上述确定熵增益的方式相同的方式,分别计算该分支的除系统服务进程的CPU占用率之外的各特征数据的熵增益:确定应用的CPU占用率的熵增益g21、设备最低电流消耗值的熵增益g22、设备平均电流消耗值的熵增益g23、设备平均CPU占用率的熵增益g24、最近5秒内是否存在点击事件的熵增益g25、设备平均CPU频率的熵增益g26、设备最低CPU频率的熵增益g27。
(1-K),可通过下式(10)计算该分支的各个特征数据的平均熵增益:
(1-L),可在该分支的各特征数据的熵增益中,确定大于平均熵增益的特征数据的熵增益,在本实施例中,大于平均熵增益的特征数据的熵增益是应用的CPU占用率的熵增益g21、设备最低电流消耗值的熵增益g22和设备最低CPU频率的熵增益g27。
(1-M),可采用和上述确定熵增益率的方式相同的方式,分别计算应用的CPU占用率、设备最低电流消耗值和设备最低CPU频率的熵增益率,并取较大者对应的特征数据作为该分支的根节点,即,决策树模型的第二层的节点,在本实施例中,确定设备最低电流消耗值是该分支的根节点,图5是根据一示例性实施例示出的一种决策树模型的第二层的节点的示意图,本实施例中的第二层的节点可参考图5。
(1-N),可参考上述构建决策树模型第一二层节点的过程,可完成对于决策树模型的构建,图6是根据一示例性实施例示出的一种决策树模型部分节点的示意图,本实施例中的决策树模型可参考图6。
根据本公开的示例性实施例,可在电子终端的使用过程中,对上述训练好的决策树模型进行不断自学习更新。获取指示通过决策树模型得到的目标应用对应的决策结果是否正确的标签,并基于该标签以及目标异常应用的特征数据,对决策树模型进行更新。具体地说,可获取多个更新样本,然后,基于多个更新样本对决策树模型进行更新,其中,每个更新样本可包括一个应用的多个特征数据以及指示决策树模型对该应用的决策结果是否正确的标签。
作为示例,可获取与目标应用相关的更新样本,其中,与目标应用相关的更新样本包括目标应用的多个特征数据以及指示决策树模型的决策结果是否正确的标签,其中,确定决策树模型的决策结果是否正确,可通过执行如图3所示的流程中的步骤305后得到的预测结果来确定,例如,可在预测出目标调用动作存在异常的情况下,标签指示决策树模型的决策结果正确,在预测出目标调用动作不存在异常的情况下,标签指示决策树模型的决策结果错误。在此基础上,可通过执行多次如图3所示的应用运行方法得到多个更新样本之后,基于得到的多个更新样本对决策树模型进行更新。这里,对决策树模型进行更新的方式可包括,但不限于,对决策树模型进行后剪枝处理。根据实施例,基于更新样本对决策树模型进行更新可提高决策树模型的决策准确率。
作为示例,对决策树模型进行更新可以随着电子设备的使用进行多次,例如,但不限于,以预设的时间间隔进行更新、在每获取到预设数量个更新样本后进行更新。
下面通过一个具体的实施例(包含2-A至2-E步)来阐述基于多个更新样本对图6所示的决策树模型进行更新的过程:
(2-A),可获取100个更新样本(其中,标签指示决策结果正确的有80个,标签指示决策结果错误的有20个,100个更新样本的决策准确度为80%),其中,部分更新样本可被表示为下表(2):
表(2)部分更新样本示意表
在决策结果和真实结果都是异常(或都是正常)的情况下,更新样本的标签指示决策树模型的决策结果正确,在决策结果是异常而真实结果是正常(或决策结果是正常而真实结果是异常)的情况下,更新样本的标签指示决策树模型的决策结果错误。
(2-B),参考图6,可确定设备平均CPU频率的节点分支下的更新样本。在本实施例中,该分支下的更新样本有20个,决策结果为不存在异常的更新样本有6个(其中,1个更新样本的标签指示决策树模型的决策结果正确,5个更新样本的标签指示决策树模型的决策结果错误),决策结果为存在异常的更新样本有14个(其中,13个更新样本的标签指示决策树模型的决策结果正确,1个更新样本的标签指示决策树模型的决策结果错误)。
(2-C),可通过下式(11)确定该分支下的决策准确度before precise:
若将设备平均CPU频率的节点替换为:存在异常,则可通过下式(12)确定替换后的决策准确度after precise:
基于上式(11)和(12),可知决策准确度提高,则可对设备平均CPU频率的节点进行剪枝,将其替换为存在异常,并删去其各分支。
(2-D),参考图6,可确定将设备最低CPU频率的节点替换为存在异常以及不存在异常后的决策准确度,并将该决策准确度和84%作比较,若决策准确度不变或降低,则不进行剪枝,若决策准确度提高则进行剪枝。
(2-E),基于上述的剪枝策略进行不断剪枝,直至所有的最后一层的节点均完成剪枝(即,无法进行剪枝),以对决策树模型进行更新。
回到图3,在步骤303,可获取目标异常应用在预设时长内所有调用动作的交互数据。其中,调用动作为目标异常应用中的任一线程调用系统服务或其他应用中的任一函数。例如,调用动作可包括第一类调用动作和第二类调用动作,其中,第一类调用动作是目标异常应用中的任一线程调用系统服务中的任一函数,第二类调用动作是目标异常应用中的任一线程调用其他应用中的任一函数。
根据本公开的示例性实施例,调用动作可以是,但不限于,Binder,那么,可对目标异常应用进行监测并开启一定时间范围内(如10s)的Systrace动作,抓取其Binder数据。
作为示例,可使用binder_driver和binder_lock这两个关键字进行Binder数据的抓取,例如,在一个实施例里,部分抓取的Binder数据可被表示为下述代码:
VolumeDialogCon-3039(2384)[002]....275825.902019:binder_transaction:transaction=157059329
dest_node=13415dest_proc=1136dest_thread=0reply=0flags=0x12 code=0x83
Binder:1136_8-2407(1136)[002]....275825.903039:binder_transaction:transaction=157059340dest_node=0dest_proc=2384dest_thread=3039reply=1flags=0x0 code=0x0
其中,VolumeDialogCon-3039表示目标异常应用的进程ID,2384表示该Binder对应的目标异常应用中的线程ID,reply=0表示发送方,code=0x83表示该Binder对应的系统服务中的函数,dest_proc=1136表示系统服务。
其中,Binder:1136_8-2407表示该Binder对应的系统服务的进程ID,reply=1表示接收方。
在步骤304,可基于所述所有调用动作的交互数据,确定目标异常调用动作。
根据本公开的示例性实施例,交互数据可包括调用动作在预设时长内的调用次数。可先从所有调用动作中筛选出第一类调用动作;然后将调用次数最多的第一类调用动作确定为目标调用动作;最后基于目标调用动作在预设时长内的调用次数,确定目标异常调用动作。
作为示例,在目标异常应用的进程ID是VolumeDialogCon-3039的情况下,可先从所有调用动作中确定进程ID为VolumeDialogCon-3039、reply=0、dest_proc=1136的Binder,作为第一类调用动作,同时统计每一第一类调用动作在预设时长内(如2s)的调用次数;然后在所有第一类调用动作中将调用次数最多的第一类调用动作确定为目标调用动作。图7是根据一示例性实施例示出的一种第一类调用动作的调用次数的示意图,参考图7,纵坐标为在预设时长内的调用次数,a、b、c、d、e、f、g均为第一类调用动作,调用次数最多的第一类调用动作为a(550次)。根据调用动作a在预设时长内的调用次数,确定调用动作a是否为目标异常调用动作。
根据本公开的示例性实施例,可通过高斯混合聚类模型来预测目标调用动作是否存在异常。可基于目标调用动作在预设时长内的调用次数,通过高斯混合聚类模型得到目标调用动作的异常概率,响应于异常概率高于预设阈值,将目标调用动作确定为目标异常调用动作。具体地说,首先,可获取目标调用动作在预设时长内的调用次数;然后,可将目标调用动作在预设时长内的调用次数输入高斯混合聚类模型,得到高斯混合聚类模型预测的目标调用动作存在异常的概率;最后,可将异常概率高于预设阈值的目标调用动作确定为目标异常调用动作。例如,但不限于,预设阈值为70%,则将异常概率高于70%的目标调用动作确定为目标异常调用动作,将异常概率不高于70%的目标调用动作确定为不存在异常,即为正常调用动作。。如果确定目标调用动作不存在异常,则后续无需对该目标调用动作进行调用限制。
根据本公开的示例性实施例,用于预测目标调用动作的异常概率的高斯混合聚类模型可以是预先训练好的。下面,对高斯混合聚类模型的训练过程作出阐述:
首先,可获取第二训练样本集,其中,第二训练样本集中的每个训练样本包括一个应用在预设时长内调用次数最多的第一类调用动作的调用次数,其中,第一类调用动作是应用中的任一线程调用对应的系统服务中的任一函数。
然后,可基于第二训练样本集,以第一类调用动作在预设时长内的调用次数在预设多个簇(高斯聚类簇)中的每个簇的概率作为输出,训练高斯混合聚类模型,其中,预设多个簇至少包括:存在异常和不存在异常。
本公开的示例性实施例可使用最大期望算法(EM)将第二训练样本集划分为预设多个簇,进而计算每个簇的均值和方差,从而得到每个簇的概率密度函数,完成高斯混合聚类模型的训练。
下面通过一个具体的实施例(包含3-A至3-E步)来阐述训练高斯混合聚类模型的过程:
(3-A),可获取第二训练样本集,其中,第二训练样本集中的每个训练样本包括一个应用在预设时长内调用次数最多的第一类调用动作的调用次数,其中,第一类调用动作是应用中的任一线程调用对应的系统服务中的任一函数。
(3-B),图8是根据一示例性实施例示出的一种第二训练样本集中的调用次数散点图,参考图8,散点聚集成两团,在上侧的散点可被划分为存在异常,在下侧的散点可被划分为不存在异常,并且,在下侧的散点可进一步划分为三个部分,分别是三角形散点、矩形散点和菱形散点,在上述实施例中已知异常可以是高频调用系统服务,那么可将上侧的散点,也就是存在异常的部分划分为滥用(簇)、将三角形散点划分为高使用(簇)、将矩形散点划分为中使用(簇)、将菱形散点划分为低使用(簇),在此需要说明的是,划分如本步骤所示的4个簇,且分别命名成滥用、高使用、中使用和低使用仅仅是示意性的,本公开不限于此,还保护其他的划分方式,例如,划分成如上述实施例中的存在异常和不存在异常2个簇。
(3-C),可确定4个簇中每个簇的初始先验概率、初始均值、初始标准差,以及确定初始方差矩阵。在本实施例中,低使用(簇)、中使用(簇)、高使用(簇)和滥用(簇)的初始先验概率分别是p1=0.4、p2=0.3、p3=0.2、p4=0.1,初始均值分别是u1=40、u2=80、u3=120、u4=500,初始标准差分别是e1=15、e2=20、e3=25、e4=200,初始方差矩阵是mat0=[p1,p2,p3,p4,u1,u2,u3,u4,e1,e2,e3,e4]。
(3-D),可基于上述初始先验概率、初始均值、初始标准差,通过下述公式(13)至(16)对于第二训练样本集中的所有训练样本进行至少一轮的迭代:
其中,公式(13)计算的是高斯概率密度,公式(14)计算的是比例,公式(15)计算的是均值,公式(16)计算的是标准差。
其中,x为第二训练样本集中的训练样本对应的调用次数,μ为均值,ε2为方差,ε为标准差,ρk为(当前轮迭代)第k个簇的比例,N为第二训练样本集中的训练样本个数,μk为(当前轮迭代)第k个簇的均值,xi代表第i个训练样本对应的调用次数,εk为(当前轮迭代)第k个簇的标准差,γ(i,k)=ρk′*p(x|μ,ε2),ρk′代表上一轮迭代对应的第k个簇的比例。
需要说明的是,在每轮迭代中,首先使用先验概率、均值和标准差计算每个训练样本在4个簇中每个簇的概率(4个概率的和为1),进而得到后验概率、均值和标准差;然后比较先验方差矩阵和后验方差矩阵的偏差,在偏差小于0.001的情况下,则可停止迭代,否则更新先验概率、均值和标准差并进行下一轮的迭代,直至预设的迭代次数执行完成。
(3-E),可在迭代结束之后,得到4个簇中每个簇的最终均值和最终标准差,在本实施例中,低使用(簇)、中使用(簇)、高使用(簇)和滥用(簇)的最终均值分别是u1=50、u2=100、u3=150和u4=700,最终标准差分别是e1=20、e2=25、e3=30和e4=300。图9是根据一示例性实施例示出的一种高斯概率密度函数示意图,每个簇的高斯概率密度函数可参考图9。
基于此,可通过下式(17)计算调用次数在每个簇的概率:
其中,x表示调用次数,μ和ε2表示同一簇对应的均值和方差。
例如,在上述实施例中确定了调用次数最多的第一类调用动作a(550次),则可通过下式(18)确定a(550次)在滥用(簇)的概率:
并且,在上述实施例中确定了预设阈值为0.7,由于0.88大于0.7,则确定目标调用动作存在异常。
回到图3,在步骤305,可响应于监测到目标异常调用动作,对目标异常调用动作进行调用限制。
根据本公开的示例性实施例,响应于监测到目标异常调用动作,可暂停执行目标异常调用动作,并在经过预设暂停时间后,可解除暂停所述目标异常调用动作。例如,可在监测到目标异常调用动作发生的情况下,在系统服务响应目标调用动作之前,暂停执行目标调用动作;并在经过预设暂停时间后,可解除暂停所述目标异常调用动作。根据实施例,基于暂停时间执行对目标调用动作的限制可大幅度减少系统负载和功耗。
根据本公开的示例性实施例,可将目标调用动作以及预设暂停时间添加入调用动作驱动器中,以通过调用动作驱动器执行以下项中的至少一项:对目标异常调用动作的发生进行监测、暂停异常执行目标调用动作、对目标异常调用动作解除暂停。
根据本公开的示例性实施例,调用动作可以是,但不限于,Binder,那么,可将目标异常Binder(包含目标异常应用的进程ID、目标异常应用中对应于目标异常Binder的线程ID、目标异常Binder对应的系统服务中的函数)以及预设暂停时间如5ms(binder sleeptime=5ms)添加入操作系统内核kernel中的Binder驱动器(Binder Driver)中,例如,但不限于,添加入Binder驱动器(Binder Driver)中的binder enable=true节点。基于此,在Binder Driver监测到目标异常Binder发生时(即进程ID、线程ID、函数与添加进节点的数据相同),会触发对目标异常Binder的限制操作,即暂停执行目标异常Binder,并在经过5ms后对目标异常Binder解除暂停。
根据本公开的示例性实施例,当预设暂停时间过大时,可能会导致目标异常应用的运行过程中出现丢帧(frame drop),并且,应用的类型是多种多样的,也就是说确定的目标异常应用的类型可能有很多种情况,执行一个固定的暂停时间对于不同的应用带来的功耗变化和帧数变化可能是不同的,如果帧数下降过多,会直接影响用户体验,基于此,在一个实施例中,在对目标异常调用动作进行限制的过程中,基于目标异常应用的功耗数据和性能数据,通过强化学习模型对预设暂停时间进行多次调整,以达到最佳暂停时间。例如,可获取目标异常应用的功耗数据和性能数据,其中,功耗数据和性能数据是在对目标异常调用动作进行调用限制之前预先采样以及在目标异常调用动作进行调用限制的过程中采样得到,基于目标异常应用的功耗数据和性能数据,确定目标异常应用的状态参数,将目标异常应用的状态参数输入强化学习模型,得到强化学习模型输出的暂停时间调整策略,并基于暂停时间调整策略调整暂停时间。在上述过程中,可使用强化学习模型多次调整暂停时间,并在每次调整了暂停时间之后,基于本次调整的暂停时间对目标异常调用动作进行限制,直至下一次调整暂停时间,以使得功耗和性能(帧数)达到平衡。这里,强化学习模型可以是Sarsa Learning模型。
根据本公开的示例性实施例,图10是根据一示例性实施例示出的一种使用强化学习模型调整暂停时间的流程图。
参考图10,在步骤1001,可在对目标异常调用动作进行限制的过程中,以预设的时间间隔对目标异常应用进行功耗数据和性能数据采样。在这里,采样得到的功耗数据可以是,但不限于,设备平均电流消耗值(以下也称cps),采样得到的性能数据可以是,但不限于,目标异常应用的平均帧率(以下也称fps),预设的时间间隔可以是,但不限于,5s。
在步骤1002,可基于每次采样得到的功耗数据和性能数据,以及在对目标异常调用动作进行限制之前预先采样的目标异常应用的功耗数据和性能数据,确定每次采样对应的目标异常应用的状态参数。
下面通过一个具体的实施例(包含4-A至4-E步)来阐述确定状态参数的过程:
(4-A),可获取在对目标异常调用动作进行限制之前预先采样的设备平均电流消耗值rc和目标异常应用的平均帧率rf。
(4-B),可基于rc,确定平均电流目标值tc=p*rc,并且,基于rf,确定平均帧率的目标值tf=q*rf,其中,p和q为预设比例系数。
(4-C),可基于rc、tc和cps,参考下表(3),确定功耗因子水平Lcps=LC(cps,tc)。
表(3)功耗因子水平示意表
Lc cps≤tc tc<cps≤rc-bc rc-bc<cps≤rc rc<cps≤rc+bc cps>rc+bc
Lcps 0 1 2 3 4
说明 理想情况 接近理想情况 调整中 远离理想情况 情况恶化
表中,bc=(rc-tc)/2。
(4-D),可基于tf和fps,参考下表(4),确定性能因子水平Lfps=LF(fps,tf)。
表(4)性能因子水平示意表
Lf fps≥tf fps=tf-1 fps=tf-2 fps<tf-3
Lfps 0 1 2 3
说明 目标状态 掉1帧 掉2帧 严重掉帧
(4-E),可基于Lcps和Lfps,确定状态参数S=S(Lcps,Lfps)。
作为示例,在目标是保持性能不变且将功耗降低一半的情况下,则可预设p=0.5、q=1。
例如,在p=0.5、q=1、rc=500mA、rf=24Hz的情况下,可确定tc=250mA,tf=24Hz。
那么,在cps≤250mA的情况下,Lcps=0,在250mA<cps≤375mA的情况下,Lcps=1,在375mA<cps≤500mA的情况下,Lcps=2,在500mA<cps≤625mA的情况下,Lcps=3,在cps>625mA的情况下,Lcps=4。
那么,在fps≥24Hz的情况下,Lfps=0,在fps=23Hz的情况下,Lfps=1,在fps=22Hz的情况下,Lfps=2,在fps<21Hz的情况下,Lfps=3。
例如,在cps=400mA且fps=23Hz的情况下,可确定状态参数S=S(2,1)。
在步骤1003,可将每次采样对应的目标异常应用的状态参数输入强化学习模型,得到强化学习模型输出的暂停时间调整策略,并基于暂停时间调整策略调整暂停时间。
根据本公开的示例性实施例,强化学习模型输出的暂停时间调整策略可以是预设的调整策略,这里,预设的调整策略(以下也称,动作或A)可包括,但不限于,将暂停时间t延长单位时间(如1ms)、将暂停时间减少单位时间(如1ms)、保持不变,参考表(5):
表(5)A值示意表
- +
动作Lt 0 1 2
说明 t保持不变 t减少1ms t延长1ms
根据本公开的示例性实施例,基于上表(3)和(4),可以确定状态参数的各种取值,那么可基于最小化惩罚价值函数,为每一种状态参数设置一个单步惩罚(以下也称,R),需要说明的是,在状态参数表征严重掉帧的情况下,赋予更大的单步惩罚,参考表(6):表(6)R值示意表
例如,在状态参数S=S(1,1)的情况下,R(S(1,1))=R(1,1)=2。
根据本公开的示例性实施例,基于上述状态参数S、动作A和单步惩罚R,可确定基于S执行A的折现动作价值Q,折现动作价值Q可通过下式(19)表示:
Q(S,A)=Q(S,A)+α(R+γ·Q(S,′A′)-Q(S,A)) (19)
其中,Q(S,A)表示基于S执行A的折现动作价值,Q(S,′A′)表示基于S′执行A′的折现动作价值,S表示上次采样确定的状态参数,S′,表示当前采样确定的状态参数,A表示上次采样后所执行的动作,A′表示当前采样后将执行的动作,R表示当前采样确定的状态参数所获得的单步惩罚,α和γ为预设值。
上式(19)也可被表示为下式(20):
Q[Lcps,Lfps,A]=Q[Lcps,Lfps,A]+α(R[L′cps,L′fps]+γ·Q[L′cps,L′fps,A′]-Q[Lcps,Lfps,A]) (20)
根据本公开的示例性实施例,在对目标异常调用动作进行限制之前,可预先设置一个空Q值表,图11是根据一示例性实施例示出的一种空Q值表的示意图。在对目标异常调用动作进行限制的过程中,将每次采样对应的目标异常应用的状态参数输入强化学习模型,可得到基于上次采样对应的状态参数执行动作的折现动作价值Q,并将其添加到空Q值表,已完成对Q值表的更新,需要说明的是,Q值表中的Q值是可覆盖的,换言之,在出现相同的状态参数执行相同动作的折现动作价值Q,可用在后确定的Q值覆盖住在前确定的Q值。
图12是根据一示例性实施例示出的一种状态参数-动作变化示意图,下面结合图11和12,以一个具体的例子来描述更新Q值表的过程。
具体来说,在对目标异常调用动作进行限制之前,可获取如图11所示的空Q值表,进而可执行目标异常调用动作的限制,在对目标异常调用动作进行限制的过程中,连续执行采样操作,其状态参数随动作的变化如图12所示。
对于状态参数从S(1,1)变化到S(2,1),可通过上表(6)确定R[2,1]=3,进而可通过上式(20)确定Q[1,1,1]=0.6,那么可将Q值表中Lcps=1,Lfps=1,A=1的项更新为0.6。
对于状态参数从S(2,1)变化到S(1,1),可通过上表(6)确定R[1,1]=2,进而可通过上式(20)确定Q[2,1,1]=0.508,那么可将Q值表中Lcps=2,Lfps=1,A=1的项更新为0.508。
对于状态参数从S(1,1)变化到S(0,0),可通过上表(6)确定R[0,0]=0,进而可通过上式(20)确定Q[1,1,0]=0,那么可将Q值表中Lcps=1,Lfps=1,A=0的项更新为0。
基于上述三次变化,此时Q值表中更新了三项,分别为Lcps=1,Lfps=1,A=1的项为0.6,Lcps=2,Lfps=1,A=1的项为0.508,Lcps=1,Lfps=1,A=0的项为0。
需要说明的是,在本实施例中,学习率α=0.2,γ=0.9。
根据本公开的示例性实施例,将每次采样对应的目标异常应用的状态参数输入强化学习模型,在Q值表中未记录同一状态参数的Q值时,可基于上表(5)输出任意的动作;在Q值表中记录了同一状态参数的Q值时(即,Q值表中至少记录了同一状态参数执行如表(5)中的3个动作中的一个得到的Q值),可采用ε-greedy策略函数确定强化学习模型的输出,具体为:
首先,可利用随机函数生成(0,1)区间的随机数x。
然后,可判断x和预设阈值ε的大小关系。
最后,在x>ε的情况下,可选择同一状态参数的Q值中的最小者所对应的动作作为本次的暂停时间调整策略,在x≤ε的情况下,可基于上表(5)选择任意的动作作为本次的暂停时间调整策略。
参考上述实施例,在本次暂停时间调整策略执行之后,基于下一次采样确定的状态参数和R值,可对Q值表进行更新。
基于此,随着对目标异常调用动作的限制的不断进行,可通过上述流程确定最佳动作,从而可获得最合适的功耗和性能的收益比。
作为示例,当前采样确定的状态参数为S(2,1),此时的Q值表中记录了同一状态参数的Q值:Q[2,1,0]=0.7,Q[2,1,1]=0.5,Q[2,1,2]=0.9,预设阈值ε=0.1,那么可利用随机函数生成(0,1)区间的随机数x,在x>0.1的情况下,输出的暂停时间调整策略为A=1,在x≤0.1的情况下,输出的暂停时间调整策略为A=0,1,2中的任一。
作为示例,可将x>ε的情况作为优选情况,即可在Q值表中记录了同一状态参数的Q值时,直接选择同一状态参数的Q值中的最小者所对应的动作作为本次的暂停时间调整策略。
在上述实施例中已经描述到,某一具有播放视频功能的应用M以每秒1000次以上的频率调用系统服务接口“ConnectivityManager.getActiveNetworkInfo”,导致电流消耗非常高,带来了很大的系统负载,另一具有播放视频功能的应用N以每秒200次以上的频率调用系统服务接口“AudioManager.adjustStreamVolume”,导致电流消耗很高,带来了很大的系统负载,同时产生了重启的问题。对M和N的执行如本公开的示例性实施例中的应用运行方法,对相应Binder进行限制,可得到如下表(7)所示的执行前后对比结果:
表(7)执行前后的对比结果示意表
通过上表可以看出,在执行后,M和N的高电流消耗和高系统负载得到了大幅度的改善,而性能没有降低,并且可避免系统重启的情况,M和N从存在异常恢复成正常状态。
回到图3,根据本公开的示例性实施例,在步骤302基于所有正在运行的应用的特征数据,确定目标异常应用之后,可显示第一通知信息,其中,第一通知信息指示存在目标异常应用,并提示用户可开启对目标异常应用的优化功能;响应于接收到对优化功能的开启指令,执行第一操作;其中,第一操作包括:步骤303获取目标异常应用在预设时长内所有调用动作的交互数据的操作、步骤304基于所有调用动作的交互数据,确定目标异常调用动作的操作和步骤305响应于监测到目标异常调用动作,对目标异常调用动作进行调用限制的操作。
图13是根据一示例性实施例示出的在检测到目标异常应用时显示的第一用户界面的示意图。参考图13,在通过浅检测找到存在异常的目标异常应用(例如,高频调用系统服务的应用)的情况下,可不直接执行深检测,而是可先向用户显示第一通知信息,例如,但不限于,“某些应用程序或进程正在降低您手机的速度。若要帮助解决此问题,请点击此处开启自动优化应用程序。”当用户响应于该第一通知信息,选择开启自动优化应用程序后,可继续执行深检测,以查找目标异常调用动作,从而通过对目标异常调用动作进行调用限作,以达到自动优化应用程序的目的。
返回图3,根据本公开的示例性实施例,在第一操作(即,步骤303、304和305)的执行过程中,可显示第二通知信息,其中,第二通知信息提示用户可关闭对目标异常应用的优化功能;响应于接收到对优化功能的关闭指令,停止执行第一操作。也就是说,在第一操作执行期间,一旦接收到对优化功能的关闭指令,不管执行到什么程度或哪个步骤,都可停止执行。
图14是根据一示例性实施例示出的在目标异常应用优化过程中显示的第二用户界面的示意图。参考图14,在用户选择开启自动优化应用程序后,例如,在图13所示的第一用户界面上用户选择开启自动优化应用程序后,可继续执行深检测,以查找目标异常调用动作,从而通过对目标异常调用动作进行调用限作。在此期间,可向用户显示第二通知信息,提示用户正在优化哪个应用,并提示用户可关闭优化功能,例如,但不限于,“正在优化XX应用,若要停止此过程,请点击此处关闭自动优化应用程序。”如果有多个应用需要优化,则可在优化哪个应用时,实时显示关于正在优化哪个应用的提示信息。例如,当在优化第一应用时,第二通知信息可提示用户正在优化第一应用,当第一应用优化完成,正在优化第二应用时,第二通知信息可更新为提示用户正在优化第二应用,以此类推。当用户响应于该第二通知信息,选择关闭优化功能后,停止执行自动优化应用程序。
图15是根据一示例性实施例示出的一种应用运行装置的框图。参考图15,应用运行装置1500包括运行数据获取单元1501、目标应用确定单元1502、交互数据获取单元1503、动作异常确定单元1504和异常动作限制单元1505。
运行数据获取单元1501可获取所有正在运行的应用的特征数据。这里,特征数据可包括当前系统状态数据和应用的运行状态数据。
根据本公开的示例性实施例,电子终端可以是,但不限于,手机、平板电脑等可安装各种应用的设备;电子终端上的运行系统可以是,但不限于,安卓系统(Android);正在运行的应用可以是,但不限于,第三方应用软件(3rd APP)。
根据本公开的示例性实施例,系统状态数据可包括,但不限于以下项中的至少一项:系统服务进程的CPU占用率(System CPU Usage)、设备最低电流消耗值(BottomCurrent)、设备平均电流消耗值(Average Current)、设备平均CPU占用率(Average TotalCPU Usage)、最近5秒内是否存在点击事件(During Touch)、设备平均CPU频率(AverageCPU Frequency)、设备最低CPU频率(Bottom CPU Frequency)。应用的运行状态数据可包括,但不限于,应用的CPU占用率(APP CPU Usage)。需要说明的是,上述多个参数均为一段时间内的参数统计值,例如,设备平均电流消耗值是设备在一段时间内的平均电流消耗值。
目标应用确定单元1502可基于所有正在运行的应用的特征数据,确定目标异常应用。这里,异常应用可指高频调用系统服务的应用。
根据本公开的示例性实施例,首先,目标应用确定单元1502可基基于所有正在运行的应用的运行状态数据,从所有正在运行的应用中确定目标应用。例如,运行状态数据可包括,但不限于,正在运行的应用的CPU占用率。基于此,目标应用确定单元1502可从所有正在运行的应用中确定CPU占用率最高的前N个应用,其中,N为预设的正整数,例如,但不限于,目标应用确定单元1302将所有正在运行的应用按照对应的CPU占用率从高至低升序排列,并依次序选择N个应用,此处的N可以取值为3。
然后,目标应用确定单元1502可基于目标应用的特征数据,从目标应用中确定目标异常应用。这里,目标应用确定单元1502可判断目标应用的运行状态数据以及当前系统状态数据是否存在异常,若存在异常则确定该目标应用是异常应用.例如,目标应用确定单元1502可基于每个目标应用的特征数据,通过决策树模型得到每个目标应用对应的决策结果,并基于决策结果,从所述目标应用中确定目标异常应用。具体来说,对于至少一个目标应用中的每一目标应用,目标应用确定单元1502可将每一目标应用的运行状态数据,以及当前系统状态数据输入决策树模型,得到关于每一目标应用是否存在异常的决策结果,并基于决策结果,确定每一目标应用是否是目标异常应用。根据实施例,基于决策树模型执行浅检测可对于目标应用是否存在异常做出筛选,决策树模型的输入是可直接读取到的目标应用的运行状态数据以及当前系统状态数据,不会造成额外的负载,也不会干扰目标应用的运行,能够避免直接执行深检测所带来的系统资源消耗和负载。
作为示例,目标应用确定单元1502通过决策树模型进行判断可以进行多次,并基于多次的决策结果确定每一目标应用是否是目标异常应用,例如,可以一定的时间间隔(例如10s)获取目标应用的运行状态数据以及系统状态数据,并输入决策树模型,在连续三次的决策结果是存在异常的情况下,则确定对应的目标应用是目标异常应用。
根据本公开的示例性实施例,用于从目标应用中确定存在异常的目标异常应用的决策树模型可以是预先训练好的,基于此,应用运行装置1500还可包括决策树模型训练单元(未示出),决策树模型训练单元可执行以下操作:
首先,决策树模型训练单元可获取第一训练样本集,其中,第一训练样本集中的每个训练样本包括一个应用的多个特征数据以及指示是否存在异常的标签,其中,多个特征数据包括该应用正在运行时的系统状态数据和运行状态数据。
这里,多个特征数据可以是上述实施例中说明的:系统服务进程的CPU占用率、应用的CPU占用率、设备最低电流消耗值、设备平均电流消耗值、设备平均CPU占用率、最近5秒内是否存在点击事件、设备平均CPU频率、设备最低CPU频率。例如,在一个实施例里,第一训练样本集可被表示为上表(1)。
然后,决策树模型训练单元可基于第一训练样本集,以多个特征数据为节点,构建决策树模型。这里,决策树模型可以是C4.5决策树模型。决策树模型训练单元可根据第一训练样本集,基于熵增益率来逐层构建决策树模型。
下面通过一个具体的实施例来阐述决策树模型训练单元的执行操作,其中,决策树模型训练单元被配置为执行:
需要说明的是,在本实施例中,第一训练样本集包含500个训练样本,其中,标签为存在异常(即,反例)的训练样本有100个,标签为不存在异常或正常(即,正例)的训练样本有400个。
第一,决策树模型训练单元可将每个特征数据按照数值大小划分等级。具体来说,可将系统服务进程的CPU占用率划分成<56%、56~72%和>72%这三个等级,应用的CPU占用率划分成<56%、56~72%和>72%这三个等级,设备最低电流消耗值划分成<400mA、400-500mA和>500mA这三个等级,设备平均电流消耗值划分成<500mA、500~600mA和>600mA这三个等级,设备平均CPU占用率划分成<100%、100~150%和>150%这三个等级,最近5秒内是否存在点击事件划分成是和否这两个等级,设备平均CPU频率(百分比)划分成<70%、70~80%和>80%这三个等级,设备最低CPU频率(百分比)划分成<60%、60~70%和>70%这三个等级。
第二,决策树模型训练单元可通过上式(1)计算根节点的熵值Ent(S)。
第三,决策树模型训练单元可分别计算各特征数据的熵增益,其中,各特征数据的熵增益可通过计算对应特征数据的各个等级的熵值来确定。
例如,系统服务进程的CPU占用率的熵增益可通过计算<56%、56~72%和>72%这三个等级的熵值来确定,那么先需确定三个等级包含的正反例个数,即确定系统服务进程的CPU占用率<56%的训练样本有250个(10个正例,240个是反例),在56~72%之间有130个(30个正例,100个是反例),>72%的样本有120个(60个是正例,另外60个是反例);再通过上式(2)至(4)分别确定系统服务进程的CPU占用率<56%的熵值Ent(D11),系统服务进程的CPU占用率在56~72%之间的熵值Ent(D12)、系统服务进程的CPU占用率>72%的熵值Ent(D13),最后通过上式(5)计算系统服务进程的CPU占用率的熵增益g1。
决策树模型训练单元可采用和系统服务进程的CPU占用率的熵增益同样的计算过程,确定应用的CPU占用率的熵增益g2、设备最低电流消耗值的熵增益g3、设备平均电流消耗值的熵增益g4、设备平均CPU占用率的熵增益g5、最近5秒内是否存在点击事件的熵增益g6、设备平均CPU频率的熵增益g7、设备最低CPU频率的熵增益g8。
第四,决策树模型训练单元可通过上式(6)计算各个特征数据的平均熵增益。
第五,决策树模型训练单元可在上述各特征数据的熵增益中,确定大于平均熵增益的特征数据的熵增益,在本实施例中,大于平均熵增益的特征数据的熵增益是系统服务进程的CPU占用率的熵增益g1和设备最低电流消耗值的熵增益g3。
第六,决策树模型训练单元可通过上式(7)和(8)计算系统服务进程的CPU占用率的熵增益率r1。
决策树模型训练单元可采用和系统服务进程的CPU占用率的熵增益率同样的计算过程,确定设备最低电流消耗值的熵增益率r2。
第七,决策树模型训练单元可确定r1和r2之间的大小关系,取较大者对应的特征数据作为决策树模型的第一层的节点(需要说明的是,在r1=r2的情况下,可取二者任一作为第一层的节点),在本实施例中,r1>r2,因此可将系统服务进程的CPU占用率作为决策树模型的第一层的节点。本实施例中的第一层的节点可参考图4。
第八,决策树模型训练单元可确定决策树模型的第二层的节点,具体来说,参考图4,系统服务进程的CPU占用率<56%的训练样本有250个,其中,10个正例,240个是反例,下面以该分支为例,来描述确定第二层的节点的过程。
第九,决策树模型训练单元可通过上式(9)确定系统服务进程的CPU占用率<56%这个分支的根节点的熵值Ent(S)。
第十,决策树模型训练单元可采用和上述确定熵增益的方式相同的方式,分别计算该分支的除系统服务进程的CPU占用率之外的各特征数据的熵增益:确定应用的CPU占用率的熵增益g21、设备最低电流消耗值的熵增益g22、设备平均电流消耗值的熵增益g23、设备平均CPU占用率的熵增益g24、最近5秒内是否存在点击事件的熵增益g25、设备平均CPU频率的熵增益g26、设备最低CPU频率的熵增益g27。
十一,决策树模型训练单元可通过上式(10)计算该分支的各个特征数据的平均熵增益。
十二,决策树模型训练单元可在该分支的各特征数据的熵增益中,确定大于平均熵增益的特征数据的熵增益,在本实施例中,大于平均熵增益的特征数据的熵增益是应用的CPU占用率的熵增益g21、设备最低电流消耗值的熵增益g22和设备最低CPU频率的熵增益g27。
十三,决策树模型训练单元可采用和上述确定熵增益率的方式相同的方式,分别计算应用的CPU占用率、设备最低电流消耗值和设备最低CPU频率的熵增益率,并取较大者对应的特征数据作为该分支的根节点,即,决策树模型的第二层的节点,在本实施例中,确定设备最低电流消耗值是该分支的根节点,本实施例中的第二层的节点可参考图5。
十四,决策树模型训练单元可参考上述构建决策树模型第一二层节点的过程,完成对于决策树模型的构建,本实施例中的决策树模型可参考图6。
根据本公开的示例性实施例,可在电子终端的使用过程中,对上述训练好的决策树模型进行不断自学习更新。基于此,应用运行装置1500还可包括决策树模型更新单元(未示出),决策树模型更新单元可获取指示通过决策树模型得到的目标应用对应的决策结果是否正确的标签,并基于该标签以及目标异常应用的特征数据,对决策树模型进行更新。具体地说,决策树模型更新单元可获取多个更新样本,然后,基于多个更新样本对决策树模型进行更新,其中,每个更新样本可包括一个应用的多个特征数据以及指示决策树模型对该应用的决策结果是否正确的标签。
作为示例,应用运行装置1500还可包括更新样本获取单元(未示出),更新样本获取单元可获取与目标应用相关的更新样本,其中,与目标应用相关的更新样本包括目标应用的多个特征数据以及指示决策树模型的决策结果是否正确的标签,其中,确定决策树模型的决策结果是否正确,可通过执行如图15所示的动作异常预测单元1505后得到的预测结果来确定,例如,可在动作异常预测单元1505预测出目标调用动作存在异常的情况下,标签指示决策树模型的决策结果正确,在动作异常预测单元1505预测出目标调用动作不存在异常的情况下,标签指示决策树模型的决策结果错误。
在此基础上,决策树模型更新单元可通过执行多次应用运行装置1500的各单元得到多个更新样本之后,基于得到的多个更新样本对决策树模型进行更新。这里,对决策树模型进行更新的方式可包括,但不限于,对决策树模型进行后剪枝处理。根据实施例,基于更新样本对决策树模型进行更新可提高决策树模型的决策准确率。
作为示例,决策树模型更新单元对决策树模型进行更新可以随着电子设备的使用进行多次,例如,但不限于,以预设的时间间隔进行更新、在每获取到预设数量个更新样本后进行更新。
下面通过一个具体的实施例来阐述决策树模型更新单元的执行操作,其中,决策树模型更新单元被配置为执行:
第一,决策树模型更新单元可获取100个更新样本(其中,标签指示决策结果正确的有80个,标签指示决策结果错误的有20个,100个更新样本的决策准确度为80%),其中,部分更新样本可被表示为上表(2)。
第二,参考图6,决策树模型更新单元可确定设备平均CPU频率的节点分支下的更新样本。在本实施例中,该分支下的更新样本有20个,决策结果为不存在异常的更新样本有6个(其中,1个更新样本的标签指示决策树模型的决策结果正确,5个更新样本的标签指示决策树模型的决策结果错误),决策结果为存在异常的更新样本有14个(其中,13个更新样本的标签指示决策树模型的决策结果正确,1个更新样本的标签指示决策树模型的决策结果错误)。
第三,决策树模型更新单元可通过上式(11)确定该分支下的决策准确度。若将设备平均CPU频率的节点替换为:存在异常,则可通过上式(12)确定替换后的决策准确度,基于上式(11)和(12),可知决策准确度提高,则可对设备平均CPU频率的节点进行剪枝,将其替换为存在异常,并删去其各分支。
第四,参考图6,决策树模型更新单元可确定将设备最低CPU频率的节点替换为存在异常以及不存在异常后的决策准确度,并将该决策准确度和84%作比较,若决策准确度不变或降低,则不进行剪枝,若决策准确度提高则进行剪枝。
第五,决策树模型更新单元可基于上述的剪枝策略进行不断剪枝,直至所有的最后一层的节点均完成剪枝(即,无法进行剪枝),以对决策树模型进行更新。
回到图15,交互数据获取单元1503可获取目标异常应用在预设时长内所有调用动作的交互数据。,其中,调用动作为目标异常应用中的任一线程调用系统服务或其他应用中的任一函数。例如,调用动作可包括第一类调用动作和第二类调用动作,其中,第一类调用动作是目标异常应用中的任一线程调用系统服务中的任一函数,第二类调用动作是目标异常应用中的任一线程调用其他应用中的任一函数。
根据本公开的示例性实施例,调用动作可以是,但不限于,Binder,那么,交互数据获取单元1503可对目标异常应用进行监测并开启一定时间范围内(如10s)的Systrace动作,抓取其Binder数据。
作为示例,交互数据获取单元1503可使用binder_driver和binder_lock这两个关键字进行Binder数据的抓取,例如,在一个实施例里,部分抓取的Binder数据可被表示为下述代码:
VolumeDialogCon-3039(2384)[002]....275825.902019:binder_transaction:transaction=157059329
dest_node=13415dest_proc=1136dest_thread=0reply=0flags=0x12 code=0x83
Binder:1136_8-2407(1136)[002]....275825.903039:binder_transaction:transaction=157059340dest_node=0dest_proc=2384dest_thread=3039reply=1flags=0x0 code=0x0
其中,VolumeDialogCon-3039表示目标异常应用的进程ID,2384表示该Binder对应的目标异常应用中的线程ID,reply=0表示发送方,code=0x83表示该Binder对应的系统服务中的函数,dest_proc=1136表示系统服务。
其中,Binder:1136_8-2407表示该Binder对应的系统服务的进程ID,reply=1表示接收方。
动作异常确定单元1504可基于所述所有调用动作的交互数据,确定目标异常调用动。
根据本公开的示例性实施例,交互数据可包括调用动作在预设时长内的调用次数,则目标动作确定单元1304可先从所有调用动作中筛选出第一类调用动作;然后将调用次数最多的第一类调用动作确定为目标调用动作;最后基于目标调用动作在预设时长内的调用次数,确定目标异常调用动作。
作为示例,在目标异常应用的进程ID是VolumeDialogCon-3039的情况下,目标动作确定单元1304可先从所有调用动作中确定进程ID为VolumeDialogCon-3039、reply=0、dest_proc=1136的Binder,作为第一类调用动作,同时统计每一第一类调用动作在预设时长内(如2s)的调用次数;然后在所有第一类调用动作中将调用次数最多的第一类调用动作确定为目标调用动作。参考图7,调用次数最多的第一类调用动作为a(550次)。根据调用动作a在预设时长内的调用次数,确定调用动作a是否为目标异常调用动作。
根据本公开的示例性实施例,动作异常确定单元1504可通过高斯混合聚类模型来预测目标调用动作是否存在异常。动作异常确定单元1504可基于目标调用动作在预设时长内的调用次数,通过高斯混合聚类模型得到目标调用动作的异常概率,响应于异常概率高于预设阈值,将目标调用动作确定为目标异常调用动作。具体来说,首先,动作异常确定单元1504可获取目标调用动作在预设时长内的调用次数;然后,动作异常确定单元1504可将目标调用动作在预设时长内的调用次数输入高斯混合聚类模型,得到高斯混合聚类模型预测的目标调用动作存在异常的概率;最后,动作异常确定单元1504可将异常概率高于预设阈值的目标调用动作确定为目标异常调用动作。例如,但不限于,预设阈值为70%,则将异常概率高于70%的目标调用动作确定为目标异常调用动作,将异常概率不高于70%的目标调用动作确定为不存在异常,即为正常调用动作。。如果确定目标调用动作不存在异常,则后续无需对该目标调用动作进行调用限制。
根据本公开的示例性实施例,用于预测目标调用动作的异常概率的高斯混合聚类模型可以是预先训练好的,基于此,应用运行装置1500还可包括高斯混合聚类模型训练单元(未示出),高斯混合聚类模型训练单元可执行以下操作:
首先,高斯混合聚类模型训练单元可获取第二训练样本集,其中,第二训练样本集中的每个训练样本包括一个应用在预设时长内调用次数最多的第一类调用动作的调用次数,其中,第一类调用动作是应用中的任一线程调用对应的系统服务中的任一函数。
然后,高斯混合聚类模型训练单元可基于第二训练样本集,以第一类调用动作在预设时长内的调用次数在预设多个簇(高斯聚类簇)中的每个簇的概率作为输出,训练高斯混合聚类模型,其中,预设多个簇至少包括:存在异常和不存在异常。
高斯混合聚类模型训练单元可使用最大期望算法(EM)将第二训练样本集划分为预设多个簇,进而计算每个簇的均值和方差,从而得到每个簇的概率密度函数,完成高斯混合聚类模型的训练。
下面通过一个具体的实施例来阐述高斯混合聚类模型训练单元的执行操作,其中,高斯混合聚类模型训练单元被配置为执行:
第一,高斯混合聚类模型训练单元可获取第二训练样本集,其中,第二训练样本集中的每个训练样本包括一个应用在预设时长内调用次数最多的第一类调用动作的调用次数,其中,第一类调用动作是应用中的任一线程调用对应的系统服务中的任一函数。
第二,参考图8,散点聚集成两团,在上侧的散点可被划分为存在异常,在下侧的散点可被划分为不存在异常,并且,在下侧的散点可进一步划分为三个部分,分别是三角形散点、矩形散点和菱形散点,在上述实施例中已知异常可以是高频调用系统服务,那么高斯混合聚类模型训练单元可将上侧的散点,也就是存在异常的部分划分为滥用(簇)、将三角形散点划分为高使用(簇)、将矩形散点划分为中使用(簇)、将菱形散点划分为低使用(簇),在此需要说明的是,划分如本步骤所示的4个簇,且分别命名成滥用、高使用、中使用和低使用仅仅是示意性的,本公开不限于此,还保护其他的划分方式,例如,划分成如上述实施例中的存在异常和不存在异常2个簇。
第三,高斯混合聚类模型训练单元可确定4个簇中每个簇的初始先验概率、初始均值、初始标准差,以及确定初始方差矩阵。在本实施例中,低使用(簇)、中使用(簇)、高使用(簇)和滥用(簇)的初始先验概率分别是p1=0.4、p2=0.3、p3=0.2、p4=0.1,初始均值分别是u1=40、u2=80、u3=120、u4=500,初始标准差分别是e1=15、e2=20、e3=25、e4=200,初始方差矩阵是mat0=[p1,p2,p3,p4,u1,u2,u3,u4,e1,e2,e3,e4]。
第四,高斯混合聚类模型训练单元可基于上述初始先验概率、初始均值、初始标准差,通过上述公式(13)至(16)对于第二训练样本集中的所有训练样本进行至少一轮的迭代。
需要说明的是,在每轮迭代中,首先使用先验概率、均值和标准差计算每个训练样本在4个簇中每个簇的概率(4个概率的和为1),进而得到后验概率、均值和标准差;然后比较先验方差矩阵和后验方差矩阵的偏差,在偏差小于0.001的情况下,则可停止迭代,否则更新先验概率、均值和标准差并进行下一轮的迭代,直至预设的迭代次数执行完成。
第五,高斯混合聚类模型训练单元可在迭代结束之后,得到4个簇中每个簇的最终均值和最终标准差,在本实施例中,低使用(簇)、中使用(簇)、高使用(簇)和滥用(簇)的最终均值分别是u1=50、u2=100、u3=150和u4=700,最终标准差分别是e1=20、e2=25、e3=30和e4=300。例如,每个簇的高斯概率密度函数可参考图9。
基于此,可通过上式(17)计算调用次数在每个簇的概率。
例如,在上述实施例中确定了调用次数最多的第一类调用动作a(550次),则可通过上式(18)确定a(550次)在滥用(簇)的概率是0.88,并且,在上述实施例中确定了预设阈值为0.7,由于0.88大于0.7,则确定目标调用动作存在异常。
回到图15,异常动作限制单元1505可响应于监测到目标异常调用动作,对目标异常调用动作进行调用限制。
根据本公开的示例性实施例,异常动作限制单元1505响应于监测到目标异常调用动作,可暂停执行目标异常调用动作,并在经过预设暂停时间后,可解除暂停所述目标异常调用动作。例如,异常动作限制单元1505可在监测到目标异常调用动作发生的情况下,在系统服务响应目标调用动作之前,暂停执行目标调用动作;并在经过预设暂停时间后,可解除暂停所述目标异常调用动作。根据实施例,基于暂停时间执行对目标调用动作的限制可大幅度减少系统负载和功耗。
根据本公开的示例性实施例,应用运行装置1500还可包括动作添加驱动单元(未示出),动作添加驱动单元可将目标调用动作以及预设的暂停时间添加入调用动作驱动器中,以通过调用动作驱动器执行以下项中的至少一项:对目标异常调用动作的发生进行监测、暂停执行目标异常调用动作、对目标异常调用动作解除暂停。
根据本公开的示例性实施例,调用动作可以是,但不限于,Binder,那么,动作添加驱动单元可将目标异常Binder(包含目标异常应用的进程ID、目标异常应用中对应于目标异常Binder的线程ID、目标异常Binder对应的系统服务中的函数)以及预设的暂停时间如5ms(binder sleep time=5ms)添加入操作系统内核kernel中的Binder驱动器(BinderDriver)中,例如,但不限于,添加入Binder驱动器(Binder Driver)中的binder enable=true节点。基于此,在Binder Driver监测到目标异常Binder发生时(即进程ID、线程ID、函数与添加进节点的数据相同),会触发对目标异常Binder的限制操作,即暂停执行目标异常Binder,并在经过5ms后对目标异常Binder解除暂停。
根据本公开的示例性实施例,当预设的暂停时间过大时,可能会导致目标异常应用的运行过程中出现frame drop,并且,应用的类型是多种多样的,也就是说确定的目标异常应用的类型可能有很多种情况,执行一个固定的暂停时间对于不同的应用带来的功耗变化和帧数变化可能是不同的,如果帧数下降过多,会直接影响用户体验,基于此,应用运行装置1500还可包括暂停时间调整单元(未示出),暂停时间调整单元可在对目标异常调用动作进行限制的过程中,基于目标异常应用的功耗数据和性能数据,通过强化学习模型对预设暂停时间进行多次调整,以达到最佳暂停时间。例如,暂停时间调整单元可获取目标异常应用的功耗数据和性能数据,其中,功耗数据和性能数据是在对目标异常调用动作进行调用限制之前预先采样以及在目标异常调用动作进行调用限制的过程中采样得到,基于目标异常应用的功耗数据和性能数据,确定目标异常应用的状态参数,将目标异常应用的状态参数输入强化学习模型,得到强化学习模型输出的暂停时间调整策略,并基于暂停时间调整策略调整暂停时间。在上述过程中,暂停时间调整单元使用强化学习模型多次调整暂停时间,并在每次调整了暂停时间之后,使得异常动作限制单元1505基于本次调整的暂停时间对目标异常调用动作进行限制,直至下一次调整暂停时间,以使得功耗和性能(帧数)达到平衡。这里,强化学习模型可以是Sarsa Learning模型。
根据本公开的示例性实施例,首先,暂停时间调整单元可在对目标异常调用动作进行限制的过程中,以预设的时间间隔对目标异常应用进行功耗数据和性能数据采样。在这里,采样得到的功耗数据可以是,但不限于,设备平均电流消耗值(以下也称cps),采样得到的性能数据可以是,但不限于,目标异常应用的平均帧率(以下也称fps),预设的时间间隔可以是,但不限于,5s。
然后,暂停时间调整单元可基于每次采样得到的功耗数据和性能数据,以及在对目标调用动作进行限制之前预先采样的目标异常应用的功耗数据和性能数据,确定每次采样对应的目标异常应用的状态参数。
下面通过一个具体的实施例来阐述暂停时间调整单元确定状态参数的过程:
第一,暂停时间调整单元可获取在对目标异常调用动作进行限制之前预先采样的设备平均电流消耗值rc和目标异常应用的平均帧率rf。
第二,暂停时间调整单元可基于rc,确定平均电流目标值tc=p*rc,并且,基于rf,确定平均帧率的目标值tf=q*rf,其中,p和q为预设比例系数。
第三,暂停时间调整单元可基于rc、tc和cps,参考上表(3),确定功耗因子水平Lcps=LC(cps,tc)。
第四,暂停时间调整单元可基于tf和fps,参考上表(4),确定性能因子水平Lfps=LF(fps,tf)。
第五,暂停时间调整单元可基于Lcps和Lfps,确定状态参数S=S(Lcps,Lfps)。
作为示例,在目标是保持性能不变且将功耗降低一半的情况下,则可预设p=0.5、q=1。
例如,在p=0.5、q=1、rc=500mA、rf=24Hz的情况下,暂停时间调整单元可确定tc=250mA,tf=24Hz。
那么,在cps≤250mA的情况下,Lcps=0,在250mA<cps≤375mA的情况下,Lcps=1,在375mA<cps≤500mA的情况下,Lcps=2,在500mA<cps≤625mA的情况下,Lcps=3,在cps>625mA的情况下,Lcps=4。
那么,在fps≥24Hz的情况下,Lfps=0,在fps=23Hz的情况下,Lfps=1,在fps=22Hz的情况下,Lfps=2,在fps<21Hz的情况下,Lfps=3。
例如,在cps=400mA且fps=23Hz的情况下,暂停时间调整单元可确定状态参数S=S(2,1)。
最后,暂停时间调整单元可将每次采样对应的目标异常应用的状态参数输入强化学习模型,得到强化学习模型输出的暂停时间调整策略,并基于暂停时间调整策略调整暂停时间。
根据本公开的示例性实施例,强化学习模型输出的暂停时间调整策略可以是预设的调整策略,这里,预设的调整策略(以下也称,动作或A)可包括,但不限于,将暂停时间t延长单位时间(如1ms)、将暂停时间减少单位时间(如1ms)、保持不变,参考上表(5)。
根据本公开的示例性实施例,基于上表(3)和(4),可以确定状态参数的各种取值,那么可基于最小化惩罚价值函数,为每一种状态参数设置一个单步惩罚(以下也称,R),需要说明的是,在状态参数表征严重掉帧的情况下,赋予更大的单步惩罚,参考上表(6)。
例如,在状态参数S=S(1,1)的情况下,R(S(1,1))=R(1,1)=2。
根据本公开的示例性实施例,基于上述状态参数S、动作A和单步惩罚R,暂停时间调整单元可确定基于S执行A的折现动作价值Q,折现动作价值Q可通过上式(19)表示,其中,上式(19)也可被表示为上式(20)。
根据本公开的示例性实施例,在对目标异常调用动作进行限制之前,暂停时间调整单元可预先设置一个空Q值表,参考图11。在对目标异常调用动作进行限制的过程中,暂停时间调整单元可将每次采样对应的目标异常应用的状态参数输入强化学习模型,得到基于上次采样对应的状态参数执行动作的折现动作价值Q,并将其添加到空Q值表,已完成对Q值表的更新,需要说明的是,Q值表中的Q值是可覆盖的,换言之,在出现相同的状态参数执行相同动作的折现动作价值Q,可用在后确定的Q值覆盖住在前确定的Q值。
下面结合图11和12,以一个具体的例子来描述暂停时间调整单元更新Q值表的过程。
具体来说,在对目标异常调用动作进行限制之前,可获取如图11所示的空Q值表,进而可执行目标异常调用动作的限制,在对目标异常调用动作进行限制的过程中,暂停时间调整单元连续执行采样操作,其状态参数随动作的变化如图12所示。
对于状态参数从S(1,1)变化到S(2,1),可通过上表(6)确定R[2,1]=3,进而可通过上式(20)确定Q[1,1,1]=0.6,那么暂停时间调整单元可将Q值表中Lcps=1,Lfps=1,A=1的项更新为0.6。
对于状态参数从S(2,1)变化到S(1,1),可通过上表(6)确定R[1,1]=2,进而可通过上式(20)确定Q[2,1,1]=0.508,那么暂停时间调整单元可将Q值表中Lcps=2,Lfps=1,A=1的项更新为0.508。
对于状态参数从S(1,1)变化到S(0,0),可通过上表(6)确定R[0,0]=0,进而可通过上式(20)确定Q[1,1,0]=0,那么暂停时间调整单元可将Q值表中Lcps=1,Lfps=1,A=0的项更新为0。
基于上述三次变化,此时Q值表中更新了三项,分别为Lcps=1,Lfps=1,A=1的项为0.6,Lcps=2,Lfps=1,A=1的项为0.508,Lcps=1,Lfps=1,A=0的项为0。
需要说明的是,在本实施例中,学习率α=0.2,γ=0.9。
根据本公开的示例性实施例,暂停时间调整单元将每次采样对应的目标异常应用的状态参数输入强化学习模型,在Q值表中未记录同一状态参数的Q值时,可基于上表(5)输出任意的动作;在Q值表中记录了同一状态参数的Q值时(即,Q值表中至少记录了同一状态参数执行如表(5)中的3个动作中的一个得到的Q值),暂停时间调整单元可采用ε-greedy策略函数确定强化学习模型的输出,具体为:
首先,暂停时间调整单元可利用随机函数生成(0,1)区间的随机数x。
然后,暂停时间调整单元可判断x和预设阈值ε的大小关系。
最后,在x>ε的情况下,暂停时间调整单元可选择同一状态参数的Q值中的最小者所对应的动作作为本次的暂停时间调整策略,在x≤ε的情况下,暂停时间调整单元可基于上表(5)选择任意的动作作为本次的暂停时间调整策略。
参考上述实施例,在本次暂停时间调整策略执行之后,暂停时间调整单元可基于下一次采样确定的状态参数和R值,可对Q值表进行更新。
基于此,随着对目标异常调用动作的限制的不断进行,可通过上述流程确定最佳动作,从而可获得最合适的功耗和性能的收益比。
作为示例,当前采样确定的状态参数为S(2,1),此时的Q值表中记录了同一状态参数的Q值:Q[2,1,0]=0.7,Q[2,1,1]=0.5,Q[2,1,2]=0.9,预设阈值ε=0.1,那么可利用随机函数生成(0,1)区间的随机数x,在x>0.1的情况下,输出的暂停时间调整策略为A=1,在x≤0.1的情况下,输出的暂停时间调整策略为A=0,1,2中的任一。
作为示例,暂停时间调整单元可将x>ε的情况作为优选情况,即可在Q值表中记录了同一状态参数的Q值时,直接选择同一状态参数的Q值中的最小者所对应的动作作为本次的暂停时间调整策略。
图16是根据一示例性实施例的电子设备1600的框图。
参照图16,电子设备1600包括至少一个存储器1601和至少一个处理器1602,所述至少一个存储器1601中存储有计算机可执行指令集合,当计算机可执行指令集合被至少一个处理器1602执行时,执行根据本公开的应用运行方法。
作为示例,电子设备1600可以是PC计算机、平板装置、个人数字助理、智能手机、或其他能够执行上述指令集合的装置。这里,电子设备1600并非必须是单个的电子设备,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。电子设备1600还可以是集成控制系统或系统管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子设备。
在电子设备1600中,处理器1602可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理器还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
处理器1602可运行存储在存储器1601中的指令或代码,其中,存储器1601还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,网络接口装置可采用任何已知的传输协议。
存储器1601可与处理器1602集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储器1601可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储器1601和处理器1602可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器1602能够读取存储在存储器中的文件。
此外,电子设备1600还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。电子设备1600的所有组件可经由总线和/或网络而彼此连接。
根据本公开的示例性实施例,还可提供一种存储指令的计算机可读存储介质,其中,当指令被至少一个处理器运行时,促使至少一个处理器执行根据本公开的应用运行方法。这里的计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态硬盘(SSD)、卡式存储器(诸如,多媒体卡、安全数字(SD)卡或极速数字(XD)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机应用以及任何相关联的数据、数据文件和数据结构并将所述计算机应用以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机应用。上述计算机可读存储介质中的计算机应用可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计算机应用以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得计算机应用以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。
根据本公开的应用运行方法、装置、电子设备及存储介质,通过基于电子终端的当前运行数据确定存在异常的目标应用,在目标应用的调用动作中确定目标调用动作,并在预测出目标调用动作存在异常的情况下对目标调用动作进行限制,能够捕获存在异常高频调用系统服务的应用,并精准定位异常的调用动作,从而能够解决高负载高电流消耗的问题,同时能够改善发热和卡顿的情况,提升了用户体验。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (24)

1.一种应用运行方法,其特征在于,包括:
获取所有正在运行的应用的特征数据,其中,所述特征数据包括当前系统状态数据和应用的运行状态数据;
基于所述所有正在运行的应用的特征数据,确定目标异常应用;
获取所述目标异常应用在预设时长内所有调用动作的交互数据;
基于所述所有调用动作的交互数据,确定目标异常调用动作;
响应于监测到所述目标异常调用动作,对所述目标异常调用动作进行调用限制。
2.如权利要求1所述的应用运行方法,其特征在于,所述基于所述所有正在运行的应用的特征数据,确定目标异常应用的步骤包括:
基于所述所有正在运行的应用的运行状态数据,从所述所有正在运行的应用中确定目标应用;
基于所述目标应用的特征数据,从所述目标应用中确定目标异常应用。
3.如权利要求2所述的应用运行方法,其特征在于,所述应用的运行状态数据包括应用运行时的CPU占用率;
所述基于所述所有正在运行的应用的运行状态数据,从所述所有正在运行的应用中确定目标应用的步骤包括:
从所述所有正在运行的应用中选出CPU占用率最高的前N个应用,其中,N为预设的正整数;
将所述CPU占用率最高的前N个应用确定为所述目标应用。
4.如权利要求2所述的应用运行方法,其特征在于,所述基于所述目标应用的特征数据,从所述目标应用中确定目标异常应用的步骤包括:
基于每个所述目标应用的特征数据,通过决策树模型得到每个所述目标应用对应的决策结果;
基于所述决策结果,从所述目标应用中确定目标异常应用。
5.如权利要求1所述的应用运行方法,其特征在于,在所述基于所述所有正在运行的应用的特征数据,确定目标异常应用之后,还包括:
显示第一通知信息,其中,所述第一通知信息指示存在所述目标异常应用,并提示用户可开启对所述目标异常应用的优化功能;
响应于接收到对所述优化功能的开启指令,执行第一操作;
其中,所述第一操作包括:获取所述目标异常应用在预设时长内所有调用动作的交互数据、基于所述所有调用动作的交互数据,确定目标异常调用动作、响应于监测到所述目标异常调用动作,对所述目标异常调用动作进行调用限制。
6.如权利要求5所述的应用运行方法,其特征在于,还包括:
在第一操作的执行过程中,显示第二通知信息,其中,所述第二通知信息提示用户可关闭对所述目标异常应用的优化功能;
响应于接收到对所述优化功能的关闭指令,停止执行所述第一操作。
7.如权利要求4所述的应用运行方法,其特征在于,在所述基于所述所有调用动作的交互数据,确定目标异常调用动作之后,还包括:
获取指示所述决策结果是否正确的标签;
基于所述标签以及所述目标异常应用的特征数据,对所述决策树模型进行更新。
8.如权利要求1所述的应用运行方法,其特征在于,所述调用动作包括第一类调用动作和第二类调用动作,其中,所述第一类调用动作是所述目标异常应用中的任一线程调用系统服务中的任一函数,所述第二类调用动作是所述目标异常应用中的任一线程调用其他应用中的任一函数;
所述交互数据包括调用动作在所述预设时长内的调用次数;
所述基于所述所有调用动作的交互数据,确定目标异常调用动作的步骤包括:
从所述所有调用动作中筛选出第一类调用动作;
将调用次数最多的第一类调用动作确定为目标调用动作;
基于所述目标调用动作在所述预设时长内的调用次数,确定目标异常调用动作。
9.如权利要求8所述的应用运行方法,其特征在于,所述基于所述目标调用动作在所述预设时长内的调用次数,确定目标异常调用动作的步骤包括:
基于所述目标调用动作在所述预设时长内的调用次数,通过高斯混合聚类模型得到所述目标调用动作的异常概率;
响应于所述异常概率高于预设阈值,将所述目标调用动作确定为目标异常调用动作。
10.如权利要求1所述的应用运行方法,其特征在于,所述响应于监测到所述目标异常调用动作,对所述目标异常调用动作进行调用限制的步骤包括:
响应于监测到所述目标异常调用动作,暂停执行所述目标异常调用动作;
在经过预设暂停时间后,解除暂停所述目标异常调用动作。
11.如权利要求10所述的应用运行方法,其特征在于,还包括:
在对所述目标异常调用动作进行调用限制的过程中,基于所述目标异常应用的功耗数据和性能数据,通过强化学习模型对所述预设暂停时间进行多次调整,以达到最佳暂停时间。
12.一种应用运行装置,其特征在于,包括:
运行数据获取单元,被配置为:获取所有正在运行的应用的特征数据,其中,所述特征数据包括当前系统状态数据和应用的运行状态数据;
目标应用确定单元,被配置为:基于所述所有正在运行的应用的特征数据,确定目标异常应用;
交互数据获取单元,被配置为:获取所述目标异常应用在预设时长内所有调用动作的交互数据;
动作异常确定单元,被配置为:基于所述所有调用动作的交互数据,确定目标异常调用动作;
异常动作限制单元,被配置为:响应于监测到所述目标异常调用动作,对所述目标异常调用动作进行调用限制。
13.如权利要求12所述的应用运行装置,其特征在于,所述目标应用确定单元被配置为:
基于所述所有正在运行的应用的运行状态数据,从所述所有正在运行的应用中确定目标应用;
基于所述目标应用的特征数据,从所述目标应用中确定目标异常应用。
14.如权利要求13所述的应用运行装置,其特征在于,所述应用的运行状态数据包括应用运行时的CPU占用率;
所述目标应用确定单元被配置为:
从所述所有正在运行的应用中选出CPU占用率最高的前N个应用,其中,N为预设的正整数;
将所述CPU占用率最高的前N个应用确定为所述目标应用。
15.如权利要求13所述的应用运行装置,其特征在于,所述目标应用确定单元被配置为:
基于每个所述目标应用的特征数据,通过决策树模型得到每个所述目标应用对应的决策结果;
基于所述决策结果,从所述目标应用中确定目标异常应用。
16.如权利要求12所述的应用运行装置,其特征在于,还包括显示单元和接收单元;
其中,在所述目标应用确定单元基于所述所有正在运行的应用的特征数据,确定目标异常应用之后,
所述显示单元显示第一通知信息,其中,所述第一通知信息指示存在所述目标异常应用,并提示用户可开启对所述目标异常应用的优化功能;
响应于所述接收单元到对所述优化功能的开启指令,所述交互数据获取单元、动作异常确定单元和异常动作限制单元执行操作。
17.如权利要求16所述的应用运行装置,其特征在于,
在所述交互数据获取单元、动作异常确定单元和异常动作限制单元执行操作的过程中,所述显示单元显示第二通知信息,其中,所述第二通知信息提示用户可关闭对所述目标异常应用的优化功能;
响应于所述接收单元接收到对所述优化功能的关闭指令所述交互数据获取单元、动作异常确定单元和异常动作限制单元停止操作。
18.如权利要求14所述的应用运行装置,其特征在于,还包括更新样本获取单元和决策树模型更新单元;
其中,所述更新样本获取单元被配置为:获取指示所述决策结果是否正确的标签;
其中,所述决策树模型更新单元被配置为:基于所述标签以及所述目标异常应用的特征数据,对所述决策树模型进行更新。
19.如权利要求12所述的应用运行装置,其特征在于,所述调用动作包括第一类调用动作和第二类调用动作,其中,所述第一类调用动作是所述目标异常应用中的任一线程调用系统服务中的任一函数,所述第二类调用动作是所述目标异常应用中的任一线程调用其他应用中的任一函数;
所述交互数据包括调用动作在所述预设时长内的调用次数;
所述动作异常确定单元被配置为:
从所述所有调用动作中筛选出第一类调用动作;
将调用次数最多的第一类调用动作确定为目标调用动作;
基于所述目标调用动作在所述预设时长内的调用次数,确定目标异常调用动作。
20.如权利要求19所述的应用运行装置,其特征在于,所述动作异常确定单元被配置为:
基于所述目标调用动作在所述预设时长内的调用次数,通过高斯混合聚类模型得到所述目标调用动作的异常概率;
响应于所述异常概率高于预设阈值,将所述目标调用动作确定为目标异常调用动作。
21.如权利要求12所述的应用运行装置,其特征在于,所述异常动作限制单元被配置为:
响应于监测到所述目标异常调用动作,暂停执行所述目标异常调用动作;
在经过预设暂停时间后,解除暂停所述目标异常调用动作。
22.如权利要求21所述的应用运行装置,其特征在于,还包括暂停时间调整单元,被配置为:
在对所述目标异常调用动作进行调用限制的过程中,基于所述目标异常应用的功耗数据和性能数据,通过强化学习模型对所述预设暂停时间进行多次调整,以达到最佳暂停时间。
23.一种电子设备,其特征在于,包括:
至少一个处理器;
至少一个存储计算机可执行指令的存储器,
其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行如权利要求1到11中的任一权利要求所述的应用运行方法。
24.一种存储指令的计算机可读存储介质,其特征在于,当所述指令被至少一个处理器运行时,促使所述至少一个处理器执行如权利要求1到11中的任一权利要求所述的应用运行方法。
CN202211084693.8A 2022-09-06 2022-09-06 应用运行方法、装置、电子设备及存储介质 Pending CN117724807A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211084693.8A CN117724807A (zh) 2022-09-06 2022-09-06 应用运行方法、装置、电子设备及存储介质
PCT/IB2023/057517 WO2024052744A1 (en) 2022-09-06 2023-07-25 Application running method, apparatus, electronic device and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211084693.8A CN117724807A (zh) 2022-09-06 2022-09-06 应用运行方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN117724807A true CN117724807A (zh) 2024-03-19

Family

ID=90192132

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211084693.8A Pending CN117724807A (zh) 2022-09-06 2022-09-06 应用运行方法、装置、电子设备及存储介质

Country Status (2)

Country Link
CN (1) CN117724807A (zh)
WO (1) WO2024052744A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004287945A (ja) * 2003-03-24 2004-10-14 Nippon Telegr & Teleph Corp <Ntt> オブジェクト内部状態の一貫性確認方法、情報処理システム、プログラム、および記録媒体
US9189308B2 (en) * 2010-12-27 2015-11-17 Microsoft Technology Licensing, Llc Predicting, diagnosing, and recovering from application failures based on resource access patterns
KR20140046120A (ko) * 2012-10-10 2014-04-18 에스케이플래닛 주식회사 애플리케이션 검증을 위한 시스템 및 방법
JP6614418B2 (ja) * 2017-02-21 2019-12-04 京セラドキュメントソリューションズ株式会社 電子機器、プラットフォームおよびログアプリケーション
CN114201363A (zh) * 2021-12-13 2022-03-18 中国平安财产保险股份有限公司 系统保护方法、装置、设备及存储介质

Also Published As

Publication number Publication date
WO2024052744A1 (en) 2024-03-14

Similar Documents

Publication Publication Date Title
KR102339239B1 (ko) 클라우드-디바이스 협업적 실시간 사용자 사용 및 성능 비정상 검출을 위한 시스템 및 방법
US11190425B2 (en) Anomaly detection in a network based on a key performance indicator prediction model
US11595282B2 (en) Network anomaly detection
US20220046083A1 (en) Performing load balancing self adjustment within an application environment
US10353764B1 (en) Automated identification of device status and resulting dynamic modification of device operations
US20170220407A1 (en) Automatic model generation for performance monitoring
US9372898B2 (en) Enabling event prediction as an on-device service for mobile interaction
US20190073016A1 (en) Enhanced security and resource utilization in a multi-operating system environment
EP2706703A2 (en) System and method for predictive network congestion control
CN104272787A (zh) 用于自主还原到行为检查点的技术
AU2016200021A1 (en) End-to-end project management
US11711714B2 (en) Systems and methods for client device roaming in a wireless network to provide lossless video transmission services
US11480623B2 (en) Apparatus and method for predicting a remaining battery life in a device
CN110262264A (zh) 简化用户操作的家居设备控制方法、装置及家居设备
CN104750538A (zh) 用于为目标应用提供虚拟存储池的方法和系统
US10474954B2 (en) Feedback and customization in expert systems for anomaly prediction
CN116680146A (zh) 一种保障应用软件安全可靠运行的方法和装置
CN117724807A (zh) 应用运行方法、装置、电子设备及存储介质
JP2007519993A (ja) 周期的事象のためのクラスタリング技術
US20220261683A1 (en) Constraint sampling reinforcement learning for recommendation systems
EP3958605A1 (en) Improved method and system to select a communication mode
CN112800089A (zh) 一种中间数据存储级别调整方法、存储介质及计算机设备
CN113596146B (zh) 一种基于大数据的资源调度的方法及装置
CN109831356A (zh) 数据处理方法、装置、系统、计算机可读存储介质
US20240004737A1 (en) Evaluation and adaptive sampling of agent configurations

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