CN115017002B - 频率预测方法和频率预测装置 - Google Patents
频率预测方法和频率预测装置 Download PDFInfo
- Publication number
- CN115017002B CN115017002B CN202111585233.9A CN202111585233A CN115017002B CN 115017002 B CN115017002 B CN 115017002B CN 202111585233 A CN202111585233 A CN 202111585233A CN 115017002 B CN115017002 B CN 115017002B
- Authority
- CN
- China
- Prior art keywords
- processor cluster
- processor
- cluster
- target
- target threads
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3013—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Power Sources (AREA)
Abstract
本申请提供了一种频率预测方法和频率预测装置,该方法包括:获取历史绘帧任务的绘帧周期中多个目标线程在至少一个处理器集群中的总运行时长,总运行时长为多个目标线程在每个处理器集群的运行时长之和,多个目标线程在每个处理器集群的运行时长为多个目标线程在每个处理器集群中的至少一个处理器的运行时长之和;判断总运行时长与预设时长是否相等;在总运行时长与预设时长不相等的情况下,确定多个目标线程在下一个绘帧任务中运行时每个处理器集群的频率的预测值。该方法可以预测线程在处理器集群上运行时处理器集群的频率,以便于终端设备为处理器集群提供合适的频率,从而有利于平衡终端设备的功耗和性能。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种频率预测方法和频率预测装置。
背景技术
目前,终端设备在运行时,特别是在运行视频、导航、电子书以及游戏等多应用程序、多场景的情况下,常遇到性能不足而引起终端设备运行卡顿等问题,影响用户体验,或者,性能过供导致终端设备因高能耗而引起发热、续航能力下降等问题,即终端设备无法平衡功耗和性能。
因此,亟需一种频率预测方法,以便终端设备可以根据预测的频率运行以平衡功耗和性能。
发明内容
本申请提供一种频率预测方法和频率预测装置,可以预测线程在处理器集群上运行时处理器集群的频率,以便于终端设备为处理器集群提供合适的频率,从而有利于平衡终端设备的功耗和性能。
第一方面,提供了一种频率预测方法,应用于包括至少一个处理器集群的终端设备,至少一个处理器集群中的每个处理器集群包括至少一个处理器,该方法包括:获取历史绘帧任务的绘帧周期中多个目标线程在至少一个处理器集群中的总运行时长,总运行时长为多个目标线程在每个处理器集群的运行时长之和,多个目标线程在每个处理器集群的运行时长为多个目标线程在每个处理器集群中的至少一个处理器的运行时长之和;判断总运行时长与预设时长是否相等;在总运行时长与预设时长不相等的情况下,确定多个目标线程在下一个绘帧任务中运行时每个处理器集群的频率的预测值。
上述历史绘帧任务可以理解为终端设备已经执行过的绘帧任务。历史绘帧任务的数量可以为一个,也可以为多个,本申请实施例对此不做限定。
多个目标线程可以被终端设备调度到每个处理器集群中的一个或多个处理器上运行,故多个目标线程在每个处理器集群的运行时长为多个目标线程在每个处理器集群中的至少一个处理器的运行时长之和,本申请实施例对该至少一个处理器的具体个数不做限定。
应理解,本申请所描述的“多个目标线程在每个处理器集群中的至少一个处理器的运行时长”并不代表上述多个目标线程中的每个目标线程均要在每个处理器集群中的处理器上运行,若存在目标线程不在某个处理器集群中的处理器上运行,那么该目标线程在该处理器上的运行时长可以记为零。
预设时长可以理解为多个目标线程在下一个绘帧任务中在至少一个处理器集群上运行时的总运行时长,该预设时长是一个希望值,若在历史绘帧任务的绘帧周期中多个目标线程在至少一个处理器集群中的总运行时长与预设时长相等,则可以说明终端设备在正常运行,若总运行时长与预设时长不相等,则可以说明终端设备可以存在性能不足或者性能过供的情况。
应理解,总运行时长与预设时长不相等的情况可以包括总运行时长比预设时长短和总运行时长比预设时长长两种情况。若总运行时长比预设时长短,则可以说明终端设备在历史绘帧任务的绘帧周期中运行时长过短,可能存在终端设备性能过供的情况,从而导致终端设备功耗过大,发热等现象。若总运行时长比预设时长长,则可以说明终端设备在历史绘帧任务的绘帧周期中运行时长过长,可能存在终端设备性能不足的情况,从而导致终端设备运行卡顿等现象。
在总运行时长与预设时长不相等的情况下,终端设备可以确定多个目标线程在下一个绘帧任务中运行时每个处理器集群的频率的预测值,即终端设备可以预测多个目标线程在下一个绘帧任务中运行时每个处理器集群的频率。
本申请实施例提供的频率预测方法,通过判断多个目标线程在绘帧任务的绘帧周期中在至少一个处理器集群上的总运行时长与预设时长是否相等,推断终端设备的运行状态,并可以预测目标线程在处理器集群上运行时处理器集群的频率,可以基于预测的频率为处理器集群提供合适的频率,从而有利于平衡终端设备的功耗和性能。
结合第一方面,在第一方面的某些实现方式中,至少一个处理器集群中存在第一处理器集群,第一处理器集群中包括多个处理器;若多个目标线程在多个处理器的运行时间段存在全部或部分重叠,则多个目标线程在第一处理器集群的运行时长为多个目标线程在多个处理器中每个处理器的运行时长之和减去重叠运行时长。
多个目标线程在多个处理器的运行时间段存在全部或部分重叠时,重叠运行时长为全部或者部分重叠的时长,多个目标线程在第一处理器集群的运行时长对于全部或者部分重叠的时长只计算一次。
终端设备在计算多个目标线程在至少一个处理器集群中每个处理器集群的运行时长时,每个处理器集群可以存在多个处理器,若一个处理器集群中存在一个处理器,多个目标线程在该处理器集群的运行时长为该处理器运行目标线程的时长。若一个处理器集群中存在多个处理器,多个目标线程在该处理器集群的运行时长可以为该多个处理器运行目标线程的最大时长,即对于重叠运行时长只计算一次,这样得到的多个目标线程在该处理器集群的运行时长更加准确,更有利于增加预测的频率的准确性。
结合第一方面,在第一方面的某些实现方式中,上述在总运行时长与预设时长不相等的情况下,确定多个目标线程在下一个绘帧任务中运行时每个处理器集群的频率的预测值,包括:在总运行时长与预设时长不相等的情况下,根据多个目标线程在每个处理器集群中运行时的负载,确定多个目标线程在每个处理器集群中运行时每个处理器集群的负载,多个目标线程在每个处理器集群中运行时每个处理器集群的负载为多个目标线程在每个处理器集群的运行时长对应的最大负载;根据总运行时长和预设时长,确定多个目标线程在每个处理器集群的延时时长;根据多个目标线程在每个处理器集群的运行时长、多个目标线程在每个处理器集群的延时时长以及多个目标线程在每个处理器集群中运行时每个处理器集群的负载,确定每个处理器集群的频率的预测值。
多个目标线程可以被终端设备调度到处理器集群中的任一处理器运行,终端设备可以计算多个目标线程中每个目标线程在处理器运行时的负载。
终端设备可以根据多个目标线程在每个处理器集群中运行时的负载,确定多个目标线程在每个处理器集群中运行时每个处理器集群的负载,即终端设备可以对被调度到每个处理器集群中的目标线程的负载进行求和,得到多个目标线程在每个处理器集群中运行时每个处理器集群的负载。
在任一处理器集群包括多个处理器的情况下,多个目标线程在处理器集群中的多个处理器运行时,可能会存在同一时间段运行至少一个目标线程的情况,终端设备只统计该时间段负载最大的目标线程的负载,其他目标线程的负载不进行计算,也可以理解为多个目标线程在每个处理器集群中运行时每个处理器集群的负载为多个目标线程在每个处理器集群的运行时长对应的最大负载。
多个目标线程在每个处理器集群的延时时长可以理解为多个目标线程在每个处理器集群的运行时长的基础上延长的时间。多个目标线程在每个处理器集群的延时时长可以为正实数,也可以为负实数,本申请对此不作限定。多个目标线程在每个处理器集群的延时时长为正实数,可以理解为增加多个目标线程在每个处理器集群的运行时长,多个目标线程在每个处理器集群的延时时长为负实数,可以理解为缩短多个目标线程在每个处理器集群的运行时长。
本申请实施例提供的频率预测方法,可以为每一个处理器集群设置延时时长,并根据每一个处理器集群的负载和每一个处理器集群的运行时长确定每个处理器集群的频率的预测值,可以基于预测的频率为处理器集群提供合适的频率,从而有利于平衡终端设备的功耗和性能。
结合第一方面,在第一方面的某些实现方式中,上述根据总运行时长和预设时长,确定多个目标线程在每个处理器集群的延时时长,包括:根据总运行时长、预设时长、每个处理器集群的功耗以及每个处理器集群支持的运行时长,确定多个目标线程在每个处理器集群的延时时长。
结合第一方面,在第一方面的某些实现方式中,至少一个处理器集群中的每个处理器集群的延时时长满足下列条件:每个处理器集群的延时时长之和等于总运行时长与预设时长的差值;至少一个处理器集群的功耗之和最小,至少一个处理器集群中每个处理器集群的功耗是根据多个目标线程在每个处理器集群中运行时每个处理器集群的负载、多个目标线程在每个处理器集群的延时时长以及多个目标线程在每个处理器集群的运行时长确定的;以及,多个目标线程在每个处理器集群的延时时长与多个目标线程在每个处理器集群的运行时长之和在每个处理器集群支持的运行时长范围内。
本申请实施例提供的频率预测方法,每一个处理器集群的延时时长为满足每一个处理器集群的功耗最小,且不超出每一个处理器集群的能力的最优值,根据该每一个处理器集群的延时时长得到的每一个处理器集群的频率的预测值更加精准,从而更有利于平衡终端设备的功耗和性能。
结合第一方面,在第一方面的某些实现方式中,上述至少一个处理器集群中的第i个处理器集群的功耗通过下列公式确定:其中,至少一个处理器集群的数量为n,i∈{1,2,…,n},di为第i个处理器集群的负载,Ti为第i个处理器集群的运行时长,Δti为第i个处理器集群的延时时长,为第i个处理器集群的负载对应的功率。
结合第一方面,在第一方面的某些实现方式中,上述至少一个处理器集群中的第i个处理器集群支持的运行时长范围为其中,至少一个处理器集群的数量为n,i∈{1,2,…,n},di为第i个处理器集群的负载,clusteri_max_util为第i个处理器集群支持的最大频率,clusteri_min_util为第i个处理器集群支持的最小频率。
结合第一方面,在第一方面的某些实现方式中,上述根据多个目标线程在每个处理器集群的运行时长、多个目标线程在每个处理器集群的延时时长以及多个目标线程在每个处理器集群中运行时每个处理器集群的负载,确定每个处理器集群的频率的预测值,包括:根据多个目标线程在每个处理器集群的运行时长、多个目标线程在每个处理器集群的延时时长、多个目标线程在每个处理器集群中运行时每个处理器集群的负载、每个处理器集群的计算能力以及每个处理器集群在下一个绘帧任务中的频率,确定每个处理器集群的频率的预测值。
结合第一方面,在第一方面的某些实现方式中,上述至少一个处理器集群中的第i个处理器集群的频率通过下列公式表示:其中,至少一个处理器集群的数量为n,i∈{1,2,…,n},a和b为预设系数,且大于或等于0,di为第i个处理器集群的负载,Ti为第i个处理器集群的运行时长,Δti为第i个处理器集群的延时时长,max_freqi为第i个处理器集群在下一个绘帧任务中的频率,maxi为第i个处理器集群的计算能力。
结合第一方面,在第一方面的某些实现方式中,上述方法还包括:当多个目标线程中存在目标线程在下一个绘帧任务中被调度到至少一个处理器集群运行时,基于至少一个处理器集群的频率的预测值,调整至少一个处理器集群的频率。
本申请实施例提供的频率预测方法,可以根据预测的频率调整至少一个处理器集群的频率,可以使终端设备以一个更加合适的频率运行,有利于平衡终端设备的功耗和性能。
结合第一方面,在第一方面的某些实现方式中,多个目标线程之间存在唤醒关系,唤醒关系用于表示线程之间唤醒与被唤醒的关系。
结合第一方面,在第一方面的某些实现方式中,多个目标线程包括目标渲染线程;上述在获取历史绘帧任务的绘帧周期中多个目标线程在至少一个处理器集群中的总运行时长之前,方法还包括:从历史绘帧任务的绘帧周期中确定目标渲染线程;基于绘帧周期中已发生的重要事件信息,追溯绘帧周期中运行的线程与目标渲染线程之间的唤醒关系,重要事件信息包括线程与线程之间的唤醒事件;基于绘帧周期中运行的线程与目标渲染线程之间的唤醒关系,确定绘帧周期中的多个目标线程。
渲染线程为实现绘帧任务的关键线程,终端设备可以从历史绘帧任务的绘帧周期中确定渲染线程,并将渲染线程作为目标线程,故可以称为目标渲染线程。
在绘帧周期中终端设备可以执行多个线程,在该多个线程执行过程中,终端设备可以记录发生的重要事件信息,该重要事件信息包括线程与线程之间的唤醒事件。线程与线程之间的唤醒事件可以包括正在运行的线程唤醒的休眠中的线程,正在运行的线程创建并唤醒的线程。
终端设备可以通过关键线程树表示线程与线程之间的唤醒事件。
本申请实施例提供的频率预测方法,以渲染线程为目标线程,根据线程之间的唤醒关系,采用回溯的方式,依次确定多个目标线程,可以将实现绘帧任务的关键线程确定为目标线程,相比其他确定目标线程的方法,有利于提高频率预测的准确性。
第二方面,提供了一种频率预测装置,该装置包括获取模块和处理模块。获取模块用于:获取历史绘帧任务的绘帧周期中多个目标线程在至少一个处理器集群中的总运行时长,总运行时长为多个目标线程在每个处理器集群的运行时长之和,多个目标线程在每个处理器集群的运行时长为多个目标线程在每个处理器集群中的至少一个处理器的运行时长之和;处理模块用于:判断总运行时长与预设时长是否相等;以及,在总运行时长与预设时长不相等的情况下,确定多个目标线程在下一个绘帧任务中运行时每个处理器集群的频率的预测值。
结合第二方面,在第二方面的某些实现方式中,至少一个处理器集群中存在第一处理器集群,第一处理器集群中包括多个处理器;若多个目标线程在多个处理器的运行时间段存在全部或部分重叠,则多个目标线程在第一处理器集群的运行时长为多个目标线程在多个处理器中每个处理器的运行时长之和减去重叠运行时长。
结合第二方面,在第二方面的某些实现方式中,上述处理模块还用于:在总运行时长与预设时长不相等的情况下,根据多个目标线程在每个处理器集群中运行时的负载,确定多个目标线程在每个处理器集群中运行时每个处理器集群的负载,多个目标线程在每个处理器集群中运行时每个处理器集群的负载为多个目标线程在每个处理器集群的运行时长对应的最大负载;根据总运行时长和预设时长,确定多个目标线程在每个处理器集群的延时时长;根据多个目标线程在每个处理器集群的运行时长、多个目标线程在每个处理器集群的延时时长以及多个目标线程在每个处理器集群中运行时每个处理器集群的负载,确定每个处理器集群的频率的预测值。
结合第二方面,在第二方面的某些实现方式中,上述处理模块还用于:根据总运行时长、预设时长、每个处理器集群的功耗以及每个处理器集群支持的运行时长,确定多个目标线程在每个处理器集群的延时时长。
结合第二方面,在第二方面的某些实现方式中,上述至少一个处理器集群中的每个处理器集群的延时时长满足下列条件:每个处理器集群的延时时长之和等于总运行时长与预设时长的差值;至少一个处理器集群的功耗之和最小,至少一个处理器集群中每个处理器集群的功耗是根据多个目标线程在每个处理器集群中运行时每个处理器集群的负载、多个目标线程在每个处理器集群的延时时长以及多个目标线程在每个处理器集群的运行时长确定的;以及,多个目标线程在每个处理器集群的延时时长与多个目标线程在每个处理器集群的运行时长之和在每个处理器集群支持的运行时长范围内。
结合第二方面,在第二方面的某些实现方式中,上述至少一个处理器集群中的第i个处理器集群的功耗通过下列公式确定:其中,至少一个处理器集群的数量为n,i∈{1,2,…,n},di为第i个处理器集群的负载,Ti为第i个处理器集群的运行时长,Δti为第i个处理器集群的延时时长,为第i个处理器集群的负载对应的功率。
结合第二方面,在第二方面的某些实现方式中,上述至少一个处理器集群中的第i个处理器集群支持的运行时长范围为其中,至少一个处理器集群的数量为n,i∈{1,2,…,n},di为第i个处理器集群的负载,clusteri_max_util为第i个处理器集群支持的最大频率,clusteri_min_util为第i个处理器集群支持的最小频率。
结合第二方面,在第二方面的某些实现方式中,上述处理模块还用于:根据多个目标线程在每个处理器集群的运行时长、多个目标线程在每个处理器集群的延时时长、多个目标线程在每个处理器集群中运行时每个处理器集群的负载、每个处理器集群的计算能力以及每个处理器集群在下一个绘帧任务中的频率,确定每个处理器集群的频率的预测值。
结合第二方面,在第二方面的某些实现方式中,上述至少一个处理器集群中的第i个处理器集群的频率通过下列公式表示:其中,至少一个处理器集群的数量为n,i∈{1,2,…,n},a和b为预设系数,且大于或等于0,di为第i个处理器集群的负载,Ti为第i个处理器集群的运行时长,Δti为第i个处理器集群的延时时长,max_freqi为第i个处理器集群在下一个绘帧任务中的频率,maxi为第i个处理器集群的计算能力。
结合第二方面,在第二方面的某些实现方式中,上述处理模块还用于:当多个目标线程中存在目标线程在下一个绘帧任务中被调度到至少一个处理器集群运行时,基于至少一个处理器集群的频率的预测值,调整至少一个处理器集群的频率。
结合第二方面,在第二方面的某些实现方式中,多个目标线程之间存在唤醒关系,唤醒关系用于表示线程之间唤醒与被唤醒的关系。
结合第二方面,在第二方面的某些实现方式中,多个目标线程包括目标渲染线程;上述处理模块还用于:从历史绘帧任务的绘帧周期中确定目标渲染线程;基于绘帧周期中已发生的重要事件信息,追溯绘帧周期中运行的线程与目标渲染线程之间的唤醒关系,重要事件信息包括线程与线程之间的唤醒事件;基于绘帧周期中运行的线程与目标渲染线程之间的唤醒关系,确定绘帧周期中的多个目标线程。
第三方面,本申请提供了一种频率预测装置,包括处理器,该处理器与存储器耦合,可用于执行存储器中的指令,以实现上述第一方面中任一种可能实现方式中的方法。可选地,该频率预测装置还包括存储器。可选地,该频率预测装置还包括通信接口,处理器与通信接口耦合。
第四方面,本申请提供了一种处理器,包括:输入电路、输出电路和处理电路。处理电路用于通过输入电路接收信号,并通过输出电路发射信号,使得处理器执行上述第一方面中任一种可能实现方式中的方法。
在具体实现过程中,上述处理器可以为芯片,输入电路可以为输入管脚,输出电路可以为输出管脚,处理电路可以为晶体管、门电路、触发器和各种逻辑电路等。输入电路所接收的输入的信号可以是由例如但不限于接收器接收并输入的,输出电路所输出的信号可以是例如但不限于输出给发射器并由发射器发射的,且输入电路和输出电路可以是同一电路,该电路在不同的时刻分别用作输入电路和输出电路。本申请对处理器及各种电路的具体实现方式不做限定。
第五方面,本申请提供了一种处理装置,包括处理器和存储器。该处理器用于读取存储器中存储的指令,并可通过接收器接收信号,通过发射器发射信号,以执行上述第一方面中任一种可能实现方式中的方法。
可选地,处理器为一个或多个,存储器为一个或多个。
可选地,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型以及存储器与处理器的设置方式不做限定。
应理解,相关的数据交互过程例如发送指示信息可以为从处理器输出指示信息的过程,接收能力信息可以为处理器接收输入能力信息的过程。具体地,处理输出的数据可以输出给发射器,处理器接收的输入数据可以来自接收器。其中,发射器和接收器可以统称为收发器。
上述第五方面中的处理装置可以是一个芯片,该处理器可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于该处理器之外,独立存在。
第六方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序(也可以称为代码,或指令)当其在计算机上运行时,使得计算机执行上述第一方面中任一种可能实现方式中的方法。
第七方面,本申请提供了一种计算机程序产品,计算机程序产品包括:计算机程序(也可以称为代码,或指令),当计算机程序被运行时,使得计算机执行上述第一方面中任一种可能实现方式中的方法。
附图说明
图1为本申请实施例提供的一种基于手机的游戏操作的示意图;
图2为本申请实施例提供的一种手机运行线程的示意图;
图3为本申请实施例提供的一种终端设备的结构示意图;
图4为本申请实施例提供的一种终端设备的软件结构的示意性框图;
图5为本申请实施例提供的一种频率预测方法的示意性流程图;
图6为本申请实施例提供的一种绘帧周期的示意图;
图7为本申请实施例提供的一种关键线程树的示意图;
图8为本申请实施例提供的多个目标线程在处理器集群上运行的示意图;
图9为本申请实施例提供的一种延时时长的示意图;
图10为本申请实施例提供的一种延时时长满足的条件的示意图;
图11为本申请实施例提供的处理器集群频率的示意图;
图12为本申请实施例提供的另一种频率预测方法的示意性流程图;
图13为本申请实施例提供的一种频率预测装置的示意性框图;
图14为本申请实施例提供的另一种频率预测装置的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
在介绍本申请实施例提供的频率预测方法和频率预测装置之前,先做出以下几点说明。
第一,在下文示出的实施例中,各术语及英文缩略语,如目标线程、唤醒关系、绘帧任务、运行时长以及延时时长等,均为方便描述而给出的示例性举例,不应对本申请构成任何限定。本申请并不排除在已有或未来的协议中定义其它能够实现相同或相似功能的术语的可能。
第二,在下文示出的实施例中第一、第二以及各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围。例如,区分不同的处理器集群等。
第三,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b和c中的至少一项(个),可以表示:a,或b,或c,或a和b,或a和c,或b和c,或a、b和c,其中a,b,c可以是单个,也可以是多个。
目前,终端设备在运行时,特别是在运行视频、导航、电子书、音乐、购物以及游戏等多应用程序的场景下,常遇到性能不足而引起终端设备运行卡顿等问题,影响用户体验,或者,性能过供导致终端设备因高能耗而引起发热、续航能力下降等问题,即终端设备无法平衡功耗和性能。
示例性地,终端设备可以为手机,手机可以运行游戏应用程序。图1示出了一种基于手机的游戏操作的示意图,如图1中的a界面所示,该a界面可以包括游戏人物101、游戏人物102、1技能图标、2技能图标、3技能图标以及普通技能图标。用户可以通过点击1技能图标、2技能图标、3技能图标或者普通技能图标控制游戏人物301释放1技能、2技能、3技能或者普通技能。
用户点击普通技能图标,手机检测到普通技能图标对应的控件被触发后,可以显示图1中的b界面。如图1中的b界面所示,游戏人物101释放普通攻击,即游戏人物101出拳攻击游戏人物102。
手机从显示图1中a界面到显示图1中的b界面,手机可能会提高处理器的频率以保证手机切换界面的流畅度,但会导致手机因高能耗而引起发热、续航能力下降等问题,若手机不提高处理器的频率,可能会引起性能供给不足而引起手机从a界面转换到b界面的时间较长,且显示b界面时,手机会出现卡顿等问题,影响用户体验。
本申请实施例以终端设备是手机为例,描述手机在正常运行以及手机运行时出现发热或顿现象时,手机的处理器显示一帧图像运行线程的状态。
示例性地,图2示出了手机运行线程的示意图。在图2中,矩形200可以代表手机,矩形200的长度为手机显示一帧图像所需时长,手机显示一帧图像所需时长可以由手机的屏幕刷新率确定。手机显示一帧图像所需时长可以理解为是固定的。填充黑色的矩形为手机显示一帧图像所运行的线程,填充黑色的矩形的长度代表手机运行该线程所需要的时长。手机显示一帧图像所运行的线程包括线程201、线程202、线程203、线程204以及线程205。应理解,手机显示一帧图像所运行的线程的个数仅仅为一个示例,本申请实施例对此不作限定。
当手机在运行时出现发热现象时,手机显示一帧图像运行线程的状态可以如图2中的a所示,手机运行线程201、线程202、线程203、线程204以及线程205的所需时长较短,远小于手机显示一帧图像所需时长,此时,手机的性能过供,终端设备的功耗过大,产生了发热问题。
当手机在运行时出现卡顿现象时,手机显示一帧图像运行线程的状态可以如图2中的b所示,手机运行线程201、线程202、线程203以及线程204所需时长较长,线程205未运行已到达了手机显示一帧图像所需时长,此时,手机的性能不足,出现界面卡顿的现象。
当手机在正常运行时,手机显示一帧图像运行线程的状态可以如图2中的c所示,手机运行线程201、线程202、线程203、线程204以及线程205所需时长之和可以为手机显示一帧图像所需时长,此时,手机界面流畅,且不会产生发热的现象。
经研究分析,终端设备性能不足,可能是因为终端设备的处理器的运行频率不协调,导致应用绘帧线程在处理器上执行时间过长。终端设备性能过供,可能是因为终端设备的处理器的频率过高,可以满足终端设备的运行需求,但会增加终端设备的功耗,并产生发热问题。另外,终端设备可以包括一个或多个处理器集群,每个处理器集群中可以包括一个或多个处理器,终端设备显示一帧图像涉及的线程可以被终端设备调度到不同的处理器集群中运行,当一个处理器集群运行多个线程时,该多个线程可以被终端设备调度到该处理器集群的不同处理器运行。
有鉴于此,本申请实施例提供一种频率预测方法和频率预测装置,可以预测线程在处理器集群上运行时处理器集群的频率,以便于终端设备为处理器集群提供合适的频率,从而有利于平衡终端设备的功耗和性能。
本申请实施例提供的频率预测方法和频率预测装置,可以应用于终端设备运行的任意场景,特别是多应用程序运行的场景,例如,终端设备在运行游戏、购物、视频、导航等多应用程序的场景,终端设备在运行滑动列表的场景等。
本申请实施例涉及的终端设备可以包括至少一个处理器集群(cluster),其中,至少一个处理器集群中的每个处理器集群可以包括至少一个处理器。可选地,处理器可以具体为中央处理器(central processing unit,CPU)。
示例性地,终端设备可以包括3个处理器集群,该3个处理器集群可以分别为cluster1、cluster2以及cluster3。cluster1可以包括3个CPU,该3个CPU可以分别为CPU0、CPU1以及CPU2。cluster2可以包括3个CPU,该3个CPU可以分别为CPU3、CPU4以及CPU5。cluster3可以包括1个CPU,该1个CPU可以为CPU6。
本申请实施例涉及的终端设备可以为手机、平板电脑、个人计算机(personalcomputer,PC)、智能手表等可穿戴电子设备,各种教学辅助工具(例如学习机、早教机)、智能玩具、便携式机器人、个人数字助理(personal digital assistant,PDA)、增强现实技术(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备等。应理解,本申请的实施例对终端设备所采用的具体技术和具体设备形态不做限定。
为了能够更好地理解本申请实施例,下面对本申请实施例的终端设备的硬件结构进行介绍。示例性地,图3为本申请实施例提供的一种终端设备的结构示意图。
终端设备可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,传感器模块180,按键190,指示器192,摄像头193,以及显示屏194等。
可选地,上述传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对终端设备的具体限定。在本申请另一些实施例中,终端设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。处理器110中还可以设置存储器,用于存储指令和数据。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为终端设备充电,也可以用于终端设备与***设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他终端设备,例如AR设备等。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。电源管理模块141用于连接充电管理模块140与处理器110。
终端设备的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端设备中的天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。
移动通信模块150可以提供应用在终端设备上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。
无线通信模块160可以提供应用在终端设备上的包括无线局域网(wirelesslocalarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星***(global navigation satellite system,GNSS),调频(frequencymodulation,FM)等无线通信的解决方案。
终端设备通过GPU,显示屏194以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。在一些实施例中,终端设备可以包括1个或N个显示屏194,N为大于1的正整数。
终端设备可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
摄像头193用于捕获静态图像或视频。在一些实施例中,终端设备可以包括1个或N个摄像头193,N为大于1的正整数。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。
终端设备可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。终端设备可以通过扬声器170A收听音乐,或收听免提通话。受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当终端设备接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。陀螺仪传感器180B可以用于确定终端设备的运动姿态。气压传感器180C用于测量气压。磁传感器180D包括霍尔传感器。加速度传感器180E可检测终端设备在各个方向上(一般为三轴)加速度的大小。距离传感器180F,用于测量距离。接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。环境光传感器180L用于感知环境光亮度。指纹传感器180H用于采集指纹。温度传感器180J用于检测温度。触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。骨传导传感器180M可以获取振动信号。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。终端设备可以接收按键输入,产生与终端设备的用户设置以及功能控制有关的键信号输入。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
终端设备的软件***可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。分层架构可以采用安卓(Android)***,也可以采用苹果(IOS)***,还可以采样其他操作***,本申请实施例对此不作限定。
下面以分层架构的Android***为例,示例性说明终端设备的软件结构。
图4为本申请实施例适用的终端设备的一种软件结构框图。分层架构将终端设备的软件***分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,可以将Android***分为四层,从上到下依次为应用程序层(applications)、应用程序框架层(application framework)、安卓运行时(Androidruntime)和***库、以及内核层(kernel)。
应用程序层可以包括一系列应用程序包,应用程序层通过调用应用程序框架层所提供的应用程序接口(application programming interface,API)运行应用程序。如图4所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供API和编程框架。应用程序框架层包括一些预先定义的函数。如图4所示,应用程序框架层可以包括窗口管理器,内容提供器,视图***,电话管理器,资源管理器,绘帧周期设置模块等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。视图***包括可视控件,例如显示文字的控件,显示图片的控件等。视图***可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。电话管理器用于提供终端设备的通信功能。例如通话状态的管理(包括接通,挂断等)。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等。绘帧周期设置模块可以用于设置绘帧周期的帧开始的时间点和绘帧周期的帧结束的时间点。
安卓***运行时包括核心库和虚拟机。安卓***运行时负责安卓***的调度和管理。核心库包含两部分:一部分是Java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的Java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。***库可以包含多个功能的模块,例如:表面管理器,媒体库、三维图形处理库以及绘帧周期信息分发模块等。
表面管理器用于对显示子***进行管理,并且为多个应用程序提供了二维图层和三维图层的融合。媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:JPG,PNG等。三维图形处理库用于实现三维图形绘图,图像渲染,合成和图层处理等。绘帧周期信息分发模块可以用于将应用程序框架层中绘帧周期设置模块设置的信息分发到内核层。
内核层是硬件和软件之间的层。内核层用于驱动硬件,使得硬件工作。内核层至少包含帧率调节模块、绘帧周期消息处理模块、目标线程识别模块、运行时长计算模块、负载计算模块、决策模块以及频率预测模块等。
帧率调节模块可以用于根据绘帧周期设置模块设置的信息计算终端设备运行的帧率,也可以将帧率与屏幕刷新率调整为相等。绘帧周期消息处理模块可以用于根据绘帧周期设置模块设置的信息,得到绘帧周期的长度。目标线程识别模块可以用于记录绘帧周期内运行的线程,并根据绘帧周期内运行的线程构建关键线程树,根据关键线程树确定多个目标线程。运行时长计算模块可以用于计算线程的运行时长,也可以用于计算线程在处理器集群上运行时处理器集群的运行时长。负载计算模块可以用于计算线程的负载,也可以用于计算线程在处理器集群上运行时处理器集群的负载。决策模块可以用于根据终端设备运行的帧率确定预设时长。频率预测模块可以用于预测处理器集群的频率。
应理解,上述图4所示出的绘帧周期设置模块、绘帧周期信息分发模块、帧率调节模块、绘帧周期消息处理模块以及目标线程识别模块是可选地,本申请实施例对比不作限定。
还应理解,上述图4所示出的各个模块的名称仅仅为本申请实施例为了便于介绍给出的示例,本申请实施例对这些模块的名称不作限定。
图5为本申请实施例提供的一种频率预测方法500的示意性流程图,该方法500可以由包括至少一个处理器集群的终端设备执行,例如,手机。应理解,至少一个处理器集群中的每个处理器集群可以包括至少一个处理器。终端设备的硬件结构图可以如图3所示,终端设备的软件结构图可以如图4所示,但本申请实施例对此不作限定。
如图5所示,该方法500可以包括以下步骤:
S501、获取历史绘帧任务的绘帧周期中多个目标线程在至少一个处理器集群中的总运行时长,总运行时长为多个目标线程在每个处理器集群的运行时长之和,多个目标线程在每个处理器集群的运行时长为多个目标线程在每个处理器集群中的至少一个处理器的运行时长之和。
历史绘帧任务可以理解为终端设备已经执行过的绘帧任务。历史绘帧任务的数量可以为一个,也可以为多个,本申请实施例对此不做限定。绘帧任务可以理解为终端设备显示一帧图像所需执行的任务。
绘帧周期可以为绘帧任务的上一个绘帧任务的结束时刻至该绘帧任务的结束时刻之间的时间段。绘帧周期的时长可以为该时间段的时长。绘帧周期可以理解为上述图2中显示一阵图像所需时长。
可选地,绘帧任务在绘帧过程中,和用户交互相对贴近的逻辑点是渲染线程,当渲染线程执行完结束后,就可以将当前帧处理完的数据输出给图形,然后显示在界面上,故绘帧周期可以设置为上一绘帧任务的渲染线程的结束点到当前绘帧任务的渲染线程的结束点。
示例性地,绘帧任务包括主线程(UI THREAD)和渲染线程(RENDER THREAD),主线程可以为上述图2中线程201,渲染线程可以为上述图2中的线程205,绘帧周期可以设置上一绘帧任务的渲染线程(RENDER THREAD)的结束点到当前绘帧任务的渲染线程(RENDERTHREAD)的结束点。主线程和渲染线程之间可以存在唤醒关系,也可以不存在唤醒关系,本申请实施例对此不做限定。
可选地,渲染线程存在队列缓冲区(queueBuffer),绘帧周期可以设置上一绘帧任务的渲染线程(RENDER THREAD)的queueBuffer结束点到当前绘帧任务的渲染线程(RENDERTHREAD)的queueBuffer结束点。
示例性地,图6示出了一种绘帧周期的示意图。如图6所示,上一绘帧任务用虚线框表示,该绘帧任务中包括主线程和渲染线程,当前绘帧任务用虚线框表示,该绘帧任务中包括主线程和渲染线程。绘帧周期可以为上一绘帧任务的渲染线程的queueBuffer结束点到当前绘帧任务的渲染线程的queueBuffer结束点。,即虚线框的长度可以代表一个绘帧周期。主线程和渲染线程之间可以存在唤醒关系,也可以不存在唤醒关系,本申请实施例对此不做限定。
可选地,多个目标线程之间可以存在唤醒关系,该唤醒关系可以用于表示线程之间唤醒与被唤醒的关系,即多个目标线程之间存在唤醒与被唤醒的关系,本申请实施例对具体的唤醒关系不做限定。
示例性地,多个目标线程可以包括3个目标线程,该3个目标线程可以分别为主线程、线程A以及渲染线程。该3个目标线程之间的唤醒关系可以存在多种可能的实现方式。
在一种可能的实现方式中,该3个目标线程之间的唤醒关系可以包括:主线程在时间点1唤醒线程A,线程A在时间点2唤醒渲染线程。
在另一种可能的实现方式中,该3个目标线程之间的唤醒关系可以包括:主线程在时间点3唤醒线程A,主线程在时间点4唤醒渲染线程,其中,时间点4晚于时间点3。。
应理解,唤醒与被唤醒是相对的概念,不同的目标线程之间,同一个目标线程可以为唤醒线程,也可以为被唤醒线程。
示例性地,在上述主线程在时间点1唤醒线程A,线程A在时间点2唤醒渲染线程的唤醒关系中,在线程A与主线程之间,线程A为被唤醒线程,在线程A与渲染线程之间,线程A为唤醒线程。
可选地,上述多个目标线程可以是从历史绘帧任务的绘帧周期中的线程中确定的。终端设备从多个绘帧周期中确定多个目标线程可以存在下列多种实现方式。
在一种可能的实现方式中,终端设备可以先将历史绘帧任务中出现次数较多的线程确定为目标线程,然后根据线程之间的唤醒关系,确定多个目标线程。
示例性地,历史绘帧任务中出现次数较多的线程为线程A,终端设备可以将唤醒主线程的线程A的线程确定为目标线程。终端设备还可以根据新确定的目标线程的唤醒关系,确定其他目标线程。
在另一种可能的实现方式中,终端设备可以将历史绘帧任务中实现绘帧任务的关键线程(例如,渲染线程)确定为目标线程,然后根据线程之间的唤醒关系,确定多个目标线程。
在又一种可能的实现方式中,终端设备可以将历史绘帧任务中实现绘帧任务的关键线程,且出现次数较多的线程确定为目标线程,然后根据线程之间的唤醒关系,确定多个目标线程。
可选地,多个目标线程包括渲染线程,该渲染线程也可以称为目标渲染线程;在获取历史绘帧任务的绘帧周期中多个目标线程在至少一个处理器集群中的总运行时长之前,终端设备可以从历史绘帧任务的绘帧周期中确定目标渲染线程;基于绘帧周期中已发生的重要事件信息,追溯绘帧周期中运行的线程与目标渲染线程之间的唤醒关系,重要事件信息包括线程与线程之间的唤醒事件;基于绘帧周期中运行的线程与目标渲染线程之间的唤醒关系,确定绘帧周期中的多个目标线程。
渲染线程为实现绘帧任务的关键线程,终端设备可以从历史绘帧任务的绘帧周期中确定渲染线程,并将渲染线程作为目标线程,故可以称为目标渲染线程。
在绘帧周期中终端设备可以执行多个线程,在该多个线程执行过程中,终端设备可以记录发生的重要事件信息,该重要事件信息包括线程与线程之间的唤醒事件。线程与线程之间的唤醒事件可以包括正在运行的线程唤醒的休眠中的线程,正在运行的线程创建并唤醒的线程。
终端设备可以通过关键线程树表示线程与线程之间的唤醒事件,例如,关键线程树可以通过G=(V,E)表示,其中,V为唤醒线程节点集合,E为标识唤醒关系集合。终端设备可以基于关键线程树,确定绘帧周期中的多个目标线程。
示例性地,终端设备在构建关键线程树时,可以用非叶子节点表示目标线程,叶子节点表示关键路径的终止,非叶子节点与非叶子节点之间的连线以及非叶子节点与叶子节点之间的连线可以称为边,边可以表示唤醒关系,边的长度可以表示目标线程的运行时长。
图7示出了一种关键线程树的示意图。如图7所示,带有字母的圆圈为非叶子节点,可以表示目标线程,无字母的圆圈为叶子节点,可以表示一条关键路径的终止,R可以表示渲染线程,R1用于表示第1个渲染线程,R2用于表示第2个渲染线程,R3用于表示第3个渲染线程,A、B、H、D以及E用于表示线程,带有字母A的非叶子节点和带有字母D的非叶子节点为头结点,头结点可以表示中断或者关键线程路径超过配置参数。非叶子节点与非叶子节点之间的连线以及非叶子节点与叶子节点之间的连线可以表示唤醒关系。其中,非叶子节点还可以存放<处理器的频率,处理器的频率对应的时间戳>和<唤醒事件,唤醒事件对应的时间戳>两个键值对。应理解,唤醒事件包括正在运行的线程唤醒的休眠中的线程,正在运行的线程创建并唤醒的线程以及正在运行的线程被调度出处理器的同时,另一个线程被调度到当前处理器上执行。
终端设备可以将渲染线程R1作为目标渲染线程,并追溯在帧开始到帧结束(即绘帧周期)中运行的线程与目标渲染线程R1之间的唤醒关系,即终端设备可以根据渲染线程R1的非叶子节点存放的<唤醒事件,唤醒事件对应的时间戳>键值对,追溯到唤醒渲染线程R1的线程为线程B,并根据线程B的非叶子节点存放的<唤醒事件,唤醒事件对应的时间戳>键值对,追溯到唤醒线程B的线程为线程A,线程A为头结点,不再进行追溯,得到关键路径A-B-R1,并将线程B和线程A确定为目标线程。同理,终端设备可以将渲染线程R2作为目标渲染线程,进行追溯,得到关键路径A-B-R2,终端设备还可以将渲染线程R3作为目标渲染线程,进行追溯,得到关键路径D-E-R3,并将线程D和线程E确定为目标线程,故终端设备基于关键线程树,可以得到渲染线程R1、渲染线程R2、渲染线程R3、线程B、线程A、线程D以及线程E等多个目标线程。
上述追溯也可以称为回溯,本申请实施例对此不作限定。在该情况下,以渲染线程为目标线程,根据线程之间的唤醒关系,采用回溯的方式,依次确定多个目标线程,可以将实现绘帧任务的关键线程确定为目标线程,相比其他确定目标线程的方法,有利于提高频率预测的准确性。
在本申请实施例中,多个目标线程在至少一个处理器集群中的总运行时长为多个目标线程在每个处理器集群的运行时长之和。其中,多个目标线程在至少一个处理器集群中的总运行时长可以用符号Rtotal表示。
示例性地,至少一个处理器集群的数量可以为3个,该3个处理器集群可以分别为cluster1、cluster2以及cluster3。多个目标线程在至少一个处理器集群中的总运行时长Rtotal可以为多个目标线程在cluster1的运行时长T1、多个目标线程在cluster2的运行时长T2以及多个目标线程在cluster3的运行时长T3之和,即Rtotal=T1+T2+T3。多个目标线程可以被终端设备调度到每个处理器集群中的一个或多个处理器上运行,故多个目标线程在每个处理器集群的运行时长为多个目标线程在每个处理器集群中的至少一个处理器的运行时长之和,本申请实施例对该至少一个处理器的具体个数不做限定。
应理解,本申请实施例所描述的“多个目标线程在每个处理器集群中的至少一个处理器的运行时长”并不代表上述多个目标线程中的每个目标线程均要在每个处理器集群中的处理器上运行,若存在目标线程不在某个处理器集群中的处理器上运行,那么该目标线程在该处理器上的运行时长可以记为零。
多个目标线程在至少一个处理器集群中的第i个处理器集群的运行时长可以用符号Ti表示,本申请实施例假设至少一个处理器集群的数量为n,i∈{1,2,…,n}。
示例性地,以上述至少一个处理器集群中的其中一个处理器集群1、且该处理器集群1包括了3个CPU为例,多个目标线程中的全部或部分目标线程可以被终端设备调度到处理器集群1(cluster1)中的3个CPU上运行。图8示出了一种多个目标线程在处理器集群上运行的示意图。如图8所示,处理器集群1包括3个CPU,该3个CPU可以分别为CPU0、CPU1以及CPU2。CPU0、CPU1以及CPU2中填充黑色的部分表示目标线程正在运行,填充白色的部分表示非目标线程正在运行或者无进程运行。多个目标线程在处理器集群1中CPU0的运行时长为t1+t3,多个目标线程在处理器集群1中CPU1的运行时长为t0,多个目标线程在处理器集群1中CPU2的运行时长为t2+t4,则多个目标线程在处理器集群1的运行时长T1为多个目标线程在处理器集群1中CPU0的运行时长、CPU1的运行时长以及CPU2的运行时长之和,即T1=t1+t3+t0+t2+t4。应理解,当多个目标线程中的部分目标线程可以被终端设备调度到除处理器集群1(cluster1)之外的其他处理器集群中多个处理器上运行时,多个目标线程在其他处理器集群的运行时长的计算方法与多个目标线程在处理器集群1的运行时长的计算方法相同,此处不再赘述。示例性地,在上述图2所示的示例中,若多个目标线程分别为线程201、线程202、线程203、线程204以及线程205,且该多个目标线程均在第1个处理器集群中运行,多个目标线程在该处理器集群中的运行时长T1可以为线程201、线程202、线程203、线程204以及线程205的运行时长之和。
可选地,在至少一个处理器集群中存在第一处理器集群,该第一处理器集群中包括多个处理器的情况下,若多个目标线程在多个处理器的运行时间段存在全部或部分重叠,则多个目标线程在第一处理器集群的运行时长为多个目标线程在多个处理器中每个处理器的运行时长之和减去重叠运行时长。应理解,多个目标线程在多个处理器的运行时间段存在全部或部分重叠时,重叠运行时长为全部或者部分重叠的时长,多个目标线程在第一处理器集群的运行时长对于全部或者部分重叠的时长只计算一次。
终端设备在计算多个目标线程在至少一个处理器集群中每个处理器集群的运行时长时,每个处理器集群可以存在多个处理器,若一个处理器集群中存在一个处理器,多个目标线程在该处理器集群的运行时长为该处理器运行目标线程的时长。若一个处理器集群中存在多个处理器,多个目标线程在该处理器集群的运行时长可以为该多个处理器运行目标线程的最大时长,即对于重叠运行时长只计算一次,这样得到的多个目标线程在该处理器集群的运行时长更加准确,更有利于增加预测的频率的准确性。
示例性地,在图8所示的多个目标线程在处理器集群上运行的示意图中,处理器集群1可以为第一处理器集群,第一处理器集群包括3个CPU,该3个CPU可以分别为CPU0、CPU1以及CPU2。多个目标线程在第一处理器集群中CPU0的运行时间段(即t1+t3)、CPU1的运行时间段(即t0)以及CPU2的时间段(即t2+t4)之间存在部分重叠,即t0和t1时间段与t2时间段存在部分重叠,重叠运行时长为t0+t1,对于部分重叠的时长只计算一次,故多个目标线程在第一处理器集群的运行时长T1′为多个目标线程在多个处理器中每个处理器的运行时长之和减去重叠运行时长,即T1′=t1+t3+t0+t2+t4-(t0+t1)=t3+t2+t4,经去重得到的T1′更加准确,更有利于增加预测的频率的准确性。
S502、判断总运行时长与预设时长是否相等。
预设时长可以理解为多个目标线程在下一个绘帧任务中在至少一个处理器集群上运行时的总运行时长,该预设时长是一个希望值,若在历史绘帧任务的绘帧周期中多个目标线程在至少一个处理器集群中的总运行时长与预设时长相等,则可以说明终端设备在正常运行,若总运行时长与预设时长不相等,则可以说明终端设备可以存在性能不足或者性能过供的情况。
在本申请实施例中,预设时长可以用符号Rtarget表示,预设时长可以为一个实数,可以是固定的一个值,也可以是实时变化的,本申请实施例对此不作限定。
示例性地,在预设时长是固定值的情况下,该预设时长可以为0.18秒。在预设时长是实时变化的情况下,预设时长可以由终端设备的屏幕刷新率确定,在终端设备运行应用程序时,为保证终端设备的屏幕刷新率与应用程序的帧率相同,屏幕刷新率可以随着应用程序的帧率变化而变化。应理解,终端设备的屏幕刷新率与应用程序的帧率相同可以使应用程序的界面显示更流畅,用户体验度更高。
示例性地,终端设备的屏幕刷新率为60赫兹(Hertz,Hz)时,预设时长t约等于16666666ns。
终端设备可以判断总运行时长与预设时长是否相等,例如,在图5所示的场景中,终端设备可以判断总运行时长Rtotal预设时长是否相等。
S503、在总运行时长与预设时长不相等的情况下,确定多个目标线程在下一个绘帧任务中运行时每个处理器集群的频率的预测值。
应理解,总运行时长与预设时长不相等的情况可以包括总运行时长比预设时长短和总运行时长比预设时长长两种情况。若总运行时长比预设时长短,则可以说明终端设备在历史绘帧任务的绘帧周期中运行时长过短,可能存在终端设备性能过供的情况,从而导致终端设备功耗过大,发热等现象。若总运行时长比预设时长长,则可以说明终端设备在历史绘帧任务的绘帧周期中运行时长过长,可能存在终端设备性能不足的情况,从而导致终端设备运行卡顿等现象。
在总运行时长与预设时长不相等的情况下,终端设备可以确定多个目标线程在下一个绘帧任务中运行时每个处理器集群的频率的预测值,即终端设备可以预测多个目标线程在下一个绘帧任务中运行时每个处理器集群的频率。
本申请实施例提供的频率预测方法,通过判断多个目标线程在绘帧任务的绘帧周期中在至少一个处理器集群上的总运行时长与预设时长是否相等,推断终端设备的运行状态,并可以预测目标线程在处理器集群上运行时处理器集群的频率,可以基于预测的频率为处理器集群提供合适的频率,从而有利于平衡终端设备的功耗和性能。
作为一个可选的实施例,上述S503、在总运行时长与预设时长不相等的情况下,确定多个目标线程在下一个绘帧任务中运行时每个处理器集群的频率的预测值,包括:在总运行时长与预设时长不相等的情况下,根据多个目标线程在每个处理器集群中运行时的负载,确定多个目标线程在每个处理器集群中运行时每个处理器集群的负载,多个目标线程在每个处理器集群中运行时每个处理器集群的负载为多个目标线程在每个处理器集群的运行时长对应的最大负载;根据总运行时长和预设时长,确定多个目标线程在每个处理器集群的延时时长;根据多个目标线程在每个处理器集群的运行时长、多个目标线程在每个处理器集群的延时时长以及多个目标线程在每个处理器集群中运行时每个处理器集群的负载,确定每个处理器集群的频率的预测值。
多个目标线程可以被终端设备调度到处理器集群中的任一处理器运行,终端设备可以计算多个目标线程中每个目标线程在处理器运行时的负载。
可选地,终端设备可以根据目标线程的运行时长、目标线程被调度到的处理器集群的频率、目标线程被调度到的处理器集群的最大可用频率以及目标线程被调度到的处理器集群的最大计算能力值,计算目标线程在处理器运行时的负载。
示例性地,终端设备可以根据下列公式计算目标线程在处理器运行时的负载:
其中,threads_demand为目标线程在处理器运行时的负载,1024为常数,a0为目标线程被调度到处理器集群的开始时间,b0为目标线程在处理器集群的处理器上运行结束的时间,t为目标线程运行的某一时刻,freqt为目标线程被调度到的处理器集群t时刻的频率,max_freqt为目标线程被调度到的处理器集群t时刻的最大可用频率,capticalt为目标线程被调度到的处理器集群t时刻的最大计算能力值。
终端设备可以根据多个目标线程在每个处理器集群中运行时的负载,确定多个目标线程在每个处理器集群中运行时每个处理器集群的负载,即终端设备可以对被调度到每个处理器集群中的目标线程的负载进行求和,得到多个目标线程在每个处理器集群中运行时每个处理器集群的负载。
示例性地,至少一个处理器集群可以包括3个处理器集群,该3个处理器集群可以分别为cluster1、cluster2以及cluster3。多个目标线程可以包括20个目标线程,该多个目标线程中可以存在9个目标线程被调度到cluster1运行、7个目标线程被调度到cluster2运行以及4个目标线程被调度到cluster3运行。该20个目标线程在cluster1、cluster2以及cluster3中运行时,cluster1的负载为该9个目标线程的负载之和,cluster2的负载为该7个目标线程的负载之和,cluster3的负载为该4个目标线程的负载之和。
在任一处理器集群包括多个处理器的情况下,多个目标线程在处理器集群中的多个处理器运行时,可能会存在同一时间段运行至少一个目标线程的情况,终端设备只统计该时间段负载最大的目标线程的负载,其他目标线程的负载不进行计算,也可以理解为多个目标线程在每个处理器集群中运行时每个处理器集群的负载为多个目标线程在每个处理器集群的运行时长对应的最大负载。其中,多个目标线程在至少一个处理器集群中第i个处理器集群中运行时第i个处理器集群的负载可以用符号di表示,当至少一个处理器集群的数量为n时,i∈{1,2,…,n}。
示例性地,在图8所示的多个目标线程在处理器集群上运行的示意中,处理器集群1包括3个CPU,该3个CPU可以分别为CPU0、CPU1以及CPU2。在t0时间段,CPU1和CPU2同时运行目标线程,且CPU1运行的目标线程的负载大于CPU2运行的目标线程的负载,终端设备只计算t0时间段CPU1运行的目标线程的负载,在t1时间段,CPU0和CPU2同时运行目标线程,且CPU2运行的目标线程的负载大于CPU1运行的目标线程的负载,终端设备只计算t1时间段CPU2运行的目标线程的负载,在t2-t0-t1时间段,只有CPU2在运行目标线程,终端设备可以计算t2-t0-t1时间段对应的目标线程的负载,在t3时间段,只有CPU0在运行目标线程,终端设备可以计算t3时间段对应的目标线程的负载,在t4时间段,只有CPU2在运行目标线程,终端设备可以计算t4时间段对应的目标线程的负载,则多个目标线程在处理器集群1中运行时处理器集群1的负载为t0时间段CPU1运行的目标线程的负载、t1时间段CPU2运行的目标线程的负载、t2-t0-t1时间段对应的目标线程的负载、t3时间段对应的目标线程的负载以及、t4时间段对应的目标线程的负载之和,即运行时长t3+t2+t4对应的最大负载。
终端设备可以根据总运行时长Rtotal和预设时长Rtarget,确定多个目标线程在每个处理器集群的延时时长。其中,至少一个处理器集群的第i个处理器集群的延时时长可以用符号Δti表示,当至少一个处理器集群的数量为n时,i∈{1,2,…,n}。
示例性地,图9示出了一种延时时长的示意图。如图9所示,填充黑色的矩形的长度为多个目标线程在处理器集群1的运行时长T1,处理器集群1可以为至少一个处理器集群的第1个处理器集群,终端设备可以根据总运行时长Rtotal和预设时长Rtarget,确定多个目标线程在处理器集群1的延时时长为Δt1,则终端设备希望多个目标线程在处理器集群1的运行时长为T1+Δt1。终端设备除处理器集群1之外,还可以包括其他处理器集群,其他处理器集群与处理器集群1类似,此处不再赘述。
多个目标线程在每个处理器集群的延时时长可以理解为多个目标线程在每个处理器集群的运行时长的基础上延长的时间。多个目标线程在每个处理器集群的延时时长可以为正实数,也可以为负实数,本申请实施例对此不作限定。多个目标线程在每个处理器集群的延时时长为正实数,可以理解为增加多个目标线程在每个处理器集群的运行时长,多个目标线程在每个处理器集群的延时时长为负实数,可以理解为缩短多个目标线程在每个处理器集群的运行时长。
终端设备可以根据多个目标线程在每个处理器集群的运行时长、多个目标线程在每个处理器集群的延时时长以及多个目标线程在每个处理器集群中运行时每个处理器集群的负载,确定每个处理器集群的频率的预测值。其中,至少一个处理器集群中第i个处理器集群的频率的预测值可以用符号freqi表示,当该至少一个处理器集群的数量为n时,i∈{1,2,…,n}。
示例性地,终端设备可以根据多个目标线程在第i个处理器集群的运行时长Ti、多个目标线程在第i个处理器集群的延时时长Δti以及多个目标线程在第i个处理器集群中运行时第i个处理器集群的负载di,确定第i个处理器集群的频率的预测值freqi。
本申请实施例提供的频率预测方法,可以为每一个处理器集群设置延时时长,并根据每一个处理器集群的负载和每一个处理器集群的运行时长确定每个处理器集群的频率的预测值,可以基于预测的频率为处理器集群提供合适的频率,从而有利于平衡终端设备的功耗和性能。
作为一个可选的实施例,上述根据总运行时长和预设时长,确定多个目标线程在每个处理器集群的延时时长,包括:根据总运行时长、预设时长、每个处理器集群的功耗以及每个处理器集群支持的运行时长,确定多个目标线程在每个处理器集群的延时时长。
终端设备可以根据总运行时长Rtotal、预设时长Rtarget、每个处理器集群的功耗以及每个处理器集群支持的运行时长,确定多个目标线程在每个处理器集群的延时时长。其中,至少一个处理器集群的第i个处理器集群的功耗可以用符号poweri表示。
示例性地,终端设备可以根据总运行时长Rtotal、预设时长Rtarget、第i个处理器集群的功耗poweri以及第i个处理器集群支持的运行时长,确定多个目标线程在第i个处理器集群的延时时长Δti。
可选地,上述每一个处理器集群的延时时长可以满足下列条件:
1)每个处理器集群的延时时长之和等于总运行时长与预设时长的差值;
总运行时长与预设时长的差值可以用符号Rmargin表示。应理解,Rmargin=Rtotal-Rtarget。多个目标线程在第i个处理器集群的延时时长为Δti,i∈{1,2,…,n},则每个处理器集群的延时时长之和为每个处理器集群的延时时长之和等于总运行时长与预设时长的差值,即
2)每个处理器集群的功耗之和最小,每个处理器集群的功耗是根据多个目标线程在每个处理器集群中运行时每个处理器集群的负载、多个目标线程在每个处理器集群的延时时长以及多个目标线程在每个处理器集群的运行时长确定的。
至少一个处理器集群的第i个处理器集群的功耗为poweri,i∈{1,2,…,n},则每个处理器集群的功耗之和为第i个处理器集群的功耗poweri可以根据多个目标线程在第i个处理器集群中运行时第i个处理器集群的负载di、多个目标线程在第i个处理器集群的延时时长Δti以及多个目标线程在第i个处理器集群的运行时长Ti确定。
示例性地,至少一个处理器集群中第i个处理器集群的功耗通过下列公式确定:
3)多个目标线程在每个处理器集群的延时时长与多个目标线程在每个处理器集群的运行时长之和在每个处理器集群支持的运行时长范围内。
多个目标线程在第i个处理器集群的延时时长Δti与多个目标线程在第i个处理器集群的运行时长Ti之和为Δti+Ti,Δti+Ti在每个处理器集群支持的运行时长范围内。
每个处理器集群支持的运行时长范围可以根据多个目标线程在每个处理器集群中运行时每个处理器集群的负载、每个处理器集群可以支持的最大频率以及每个处理器集群可以支持的最小频率。其中,至少一个处理器集群中第i个处理器集群可以支持的最大频率可以用符号clusteri_max_util表示,可以支持的最小频率可以用符号clusteri_min_util表示,当该至少一个处理器集群的数量为n时,i∈{1,2,…,n}。
第i个处理器集群支持的运行时长范围可以根据多个目标线程在第i个处理器集群中运行时第i个处理器集群的负载di、第i个处理器集群可以支持的最大频率clusteri_max_util以及第i个处理器集群可以支持的最小频率clusteri_min_util确定。
示例性地,至少一个处理器集群中的第i个处理器集群支持的运行时长范围为
其中,所述至少一个处理器集群的数量为n,i∈{1,2,…,n},di为所述第i个处理器集群的负载,clusteri_max_util为所述第i个处理器集群支持的最大频率,clusteri_min_util为所述第i个处理器集群支持的最小频率;
Δti+Ti在每个处理器集群支持的运行时长范围内,即
综上所述,如图10所示,每一个处理器集群的延时时长Δti可以满足的条件可以包括:
本申请实施例提供的频率预测方法,每一个处理器集群的延时时长为满足每一个处理器集群的功耗最小,且不超出每一个处理器集群的能力的最优值,根据该每一个处理器集群的延时时长得到的每一个处理器集群的频率的预测值更加精准,从而更有利于平衡终端设备的功耗和性能。
作为一个可选的实施例,根据多个目标线程在每个处理器集群的运行时长、多个目标线程在每个处理器集群的延时时长以及多个目标线程在每个处理器集群中运行时每个处理器集群的负载,确定每个处理器集群的频率的预测值,包括:根据多个目标线程在每个处理器集群的运行时长、多个目标线程在每个处理器集群的延时时长、多个目标线程在每个处理器集群中运行时每个处理器集群的负载、每个处理器集群的计算能力以及每个处理器集群在下一个绘帧任务中的频率,确定每个处理器集群的频率的预测值。
至少一个处理器集群中第i个处理器集群的计算能力可以用符号maxi表示,第i个处理器集群在下一个绘帧任务中的频率可以用符号max_freqi表示,第i个处理器集群的频率的预测值可以用符号freqi表示。
终端设备可以根据多个目标线程在第i个处理器集群的运行时长Ti、多个目标线程在第i个处理器集群的延时时长Δti、多个目标线程在第i个处理器集群中运行时第i个处理器集群的负载di、第i个处理器集群的计算能力maxi以及第i个处理器集群在下一个绘帧任务中的频率max_freqi,确定第i个处理器集群的频率的预测值freqi。
示例性地,至少一个处理器集群中的第i个处理器集群的频率通过下列公式表示:
其中,至少一个处理器集群的数量为n,i∈{1,2,…,n},a和b为预设系数,且大于或等于0,di为第i个处理器集群的负载,Ti为第i个处理器集群的运行时长,Δti为第i个处理器集群的延时时长,max_freqi为第i个处理器集群在下一个绘帧任务中的频率,maxi为第i个处理器集群的计算能力。
可选地,上述a可以为1.25,b可以为1.1,也可以写为1+0.1,本申请实施例对此不作限定。
作为一个可选的实施例,上述方法500还包括:当多个目标线程中存在目标线程在下一个绘帧任务中被调度到至少一个处理器集群运行时,基于至少一个处理器集群的频率的预测值,调整至少一个处理器集群的频率。
当多个目标线程中存在目标线程在下一个绘帧任务中被调度到至少一个处理器集群运行时,终端设备可以获取该至少一个处理器集群的频率,若与该至少一个处理器集群的频率的预测值不相等,终端设备可以调整该至少一个处理器集群的频率,即将该至少一个处理器集群的频率调整为该至少一个处理器集群的频率的预测值。
本申请实施例提供的频率预测方法,可以根据预测的频率调整至少一个处理器集群的频率,可以使终端设备以一个更加合适的频率运行,有利于平衡终端设备的功耗和性能。
在上述图4所示的软件架构的基础上,图12进一步示出了基于图4所示的软件架构的频率预测方法1200的示意性流程图。
如图12所示,该方法1200可以包括如下步骤:
S1201、运行时长计算模块可以计算历史绘帧任务的绘帧周期中多个目标线程在至少一个处理器集群中每个处理器集群的运行时长。
运行时长计算模块可以接收来自目标识别模块的多个目标线程,运行时长计算模块可以计算该多个目标线程在至少一个处理器集群中每个处理器集群的运行时长。具体的实现可以参考上述方法500,此处不再赘述。
可选地,目标识别模块可以基于绘帧周期的时长,记录绘帧周期内运行的线程,并构建关键线程树,从而基于关键线程树,确定多个目标线程。目标识别模块可以接收来自绘帧周期消息处理模块的绘帧周期的时长。
可选地,绘帧周期消息处理模块可以基于帧开始的时间点和帧结束的时间点,得到绘帧周期的时长。绘帧周期消息处理模块可以通过绘帧周期消息分发模块接收绘帧周期设置模块设置的帧开始的时间点和帧结束的时间点。
S1202、运行时长计算模块可以向频率预测模块发送多个目标线程在每个处理器集群的运行时长,对应地,频率预测模块接收多个目标线程在每个处理器集群的运行时长。
S1203、运行时长计算模块计算每个处理器集群的运行时长之和,得到多个目标线程在至少一个处理器集群中的总运行时长。
S1204、运行时长计算模块可以向决策模块发送总运行时长,对应地,决策模块接收总运行时长。
S1205、决策模块判断总运行时长与预设时长是否相等。
S1206、在总运行时长与预设时长不相等的情况下,决策模块向频率预测模块发送第一信息,所述第一信息包括总运行时长与预设时长不相等,对应地,频率预测模块接收第一信息。
S1207、频率预测模块基于第一信息,确定多个目标线程在每个处理器集群的延时时长。
S1208、在总运行时长与预设时长不相等的情况下,决策模块向负载计算模块发送指示信息,该指示信息用于指示负载计算模块计算线程的负载,对应地,负载计算模块接收指示信息。
S1209、负载计算模块基于指示信息,并根据多个目标线程在每个处理器集群中运行时的负载,确定多个目标线程在每个处理器集群中运行时每个处理器集群的负载。
S1210、负载计算模块向频率预测模块发送第二信息,所述第二信息包括多个目标线程在每个处理器集群中运行时每个处理器集群的负载,对应地,频率预测模块接收第二信息。
S1211、频率预测模块基于第二信息、多个目标线程在每个处理器集群的延时时长以及多个目标线程在所述每个处理器集群的运行时长,确定多个目标线程在下一个绘帧任务中运行时每个处理器集群的频率的预测值。
本申请实施例提供的频率预测方法,通过判断多个目标线程在绘帧任务的绘帧周期中在至少一个处理器集群上的总运行时长与预设时长是否相等,推断终端设备的运行状态,并可以预测目标线程在处理器集群上运行时处理器集群的频率,可以基于预测的频率为处理器集群提供合适的频率,从而有利于平衡终端设备的功耗和性能。
上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上文中结合图1至图12,详细描述了本申请实施例提供的频率预测方法,下面将结合图13和图14,详细描述本申请实施例提供的频率预测装置。
图13示出了本申请实施例提供的一种频率预测装置1300,该装置1300包括:获取模块1310和处理模块1320。其中,获取模块1310用于:获取历史绘帧任务的绘帧周期中多个目标线程在至少一个处理器集群中的总运行时长,总运行时长为多个目标线程在每个处理器集群的运行时长之和,多个目标线程在每个处理器集群的运行时长为多个目标线程在每个处理器集群中的至少一个处理器的运行时长之和;处理模块1320用于:判断总运行时长与预设时长是否相等;以及,在总运行时长与预设时长不相等的情况下,确定多个目标线程在下一个绘帧任务中运行时每个处理器集群的频率的预测值。
可选地,至少一个处理器集群中存在第一处理器集群,第一处理器集群中包括多个处理器;若多个目标线程在多个处理器的运行时间段存在全部或部分重叠,则多个目标线程在第一处理器集群的运行时长为多个目标线程在多个处理器中每个处理器的运行时长之和减去重叠运行时长。
可选地,上述处理模块1320还用于:在总运行时长与预设时长不相等的情况下,根据多个目标线程在每个处理器集群中运行时的负载,确定多个目标线程在每个处理器集群中运行时每个处理器集群的负载,多个目标线程在每个处理器集群中运行时每个处理器集群的负载为多个目标线程在每个处理器集群的运行时长对应的最大负载;根据总运行时长和预设时长,确定多个目标线程在每个处理器集群的延时时长;根据多个目标线程在每个处理器集群的运行时长、多个目标线程在每个处理器集群的延时时长以及多个目标线程在每个处理器集群中运行时每个处理器集群的负载,确定每个处理器集群的频率的预测值。
可选地,上述处理模块1320还用于:根据总运行时长、预设时长、每个处理器集群的功耗以及每个处理器集群支持的运行时长,确定多个目标线程在每个处理器集群的延时时长。
可选地,上述至少一个处理器集群中的每个处理器集群的延时时长满足下列条件:每个处理器集群的延时时长之和等于总运行时长与预设时长的差值;至少一个处理器集群的功耗之和最小,至少一个处理器集群中每个处理器集群的功耗是根据多个目标线程在每个处理器集群中运行时每个处理器集群的负载、多个目标线程在每个处理器集群的延时时长以及多个目标线程在每个处理器集群的运行时长确定的;以及,多个目标线程在每个处理器集群的延时时长与多个目标线程在每个处理器集群的运行时长之和在每个处理器集群支持的运行时长范围内。
可选地,上述至少一个处理器集群中的第i个处理器集群的功耗通过下列公式确定:其中,至少一个处理器集群的数量为n,i∈{1,2,…,n},di为第i个处理器集群的负载,Ti为第i个处理器集群的运行时长,Δti为第i个处理器集群的延时时长,为第i个处理器集群的负载对应的功率。
可选地,上述至少一个处理器集群中的第i个处理器集群支持的运行时长范围为其中,至少一个处理器集群的数量为n,i∈{1,2,…,n},di为第i个处理器集群的负载,clusteri_max_util为第i个处理器集群支持的最大频率,clusteri_min_util为第i个处理器集群支持的最小频率。
可选地,上述处理模块1320还用于:根据多个目标线程在每个处理器集群的运行时长、多个目标线程在每个处理器集群的延时时长、多个目标线程在每个处理器集群中运行时每个处理器集群的负载、每个处理器集群的计算能力以及每个处理器集群在下一个绘帧任务中的频率,确定每个处理器集群的频率的预测值。
可选地,上述至少一个处理器集群中的第i个处理器集群的频率通过下列公式表示:其中,至少一个处理器集群的数量为n,i∈{1,2,…,n},a和b为预设系数,且大于或等于0,di为第i个处理器集群的负载,Ti为第i个处理器集群的运行时长,Δti为第i个处理器集群的延时时长,max_freqi为第i个处理器集群在下一个绘帧任务中的频率,maxi为第i个处理器集群的计算能力。
可选地,上述处理模块1320还用于:当多个目标线程中存在目标线程在下一个绘帧任务中被调度到至少一个处理器集群运行时,基于至少一个处理器集群的频率的预测值,调整至少一个处理器集群的频率。
可选地,多个目标线程之间存在唤醒关系,唤醒关系用于表示线程之间唤醒与被唤醒的关系。
可选地,多个目标线程包括目标渲染线程;上述处理模块1320还用于:从历史绘帧任务的绘帧周期中确定目标渲染线程;基于绘帧周期中已发生的重要事件信息,追溯绘帧周期中运行的线程与目标渲染线程之间的唤醒关系,重要事件信息包括线程与线程之间的唤醒事件;基于绘帧周期中运行的线程与目标渲染线程之间的唤醒关系,确定绘帧周期中的多个目标线程。
应理解,这里的装置1300以功能模块的形式体现。这里的术语“模块”可以指应用特有集成电路(application specific integrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。在一个可选的例子中,本领域技术人员可以理解,装置1300可以具体为上述方法实施例中的终端设备,或者,上述方法实施例中端设备的功能可以集成在装置1300中,装置1300可以用于执行上述方法实施例中与端设备对应的各个流程和/或步骤,为避免重复,在此不再赘述。
上述装置1300具有实现上述方法实施例中的终端设备执行的相应步骤的功能;上述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
在本申请的实施例中,图13中的装置1300也可以是芯片或者芯片***,例如:片上***(system on chip,SoC)。
图14是本申请实施例提供的另一种频率预测装置1400的示意性框图。该装置1400包括处理器1410、收发器1420和存储器1430。其中,处理器1410、收发器1420和存储器1430通过内部连接通路互相通信,该存储器1430用于存储指令,该处理器1420用于执行该存储器1430存储的指令,以控制该收发器1420发送信号和/或接收信号。
应理解,装置1400可以具体为上述方法实施例中的终端设备或成像设备,或者,上述方法实施例中终端设备或成像设备的功能可以集成在装置1400中,装置1400可以用于执行上述方法实施例中与终端设备对应的各个步骤和/或流程。可选地,该存储器1430可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。该处理器1410可以用于执行存储器中存储的指令,并且该处理器执行该指令时,该处理器可以执行上述方法实施例中与终端设备对应的各个步骤和/或流程。
应理解,在本申请实施例中,该处理器1410可以是中央处理单元(centralprocessing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器执行存储器中的指令,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,该计算机程序用于实现上述方法实施例中终端设备对应的方法。
本申请还提供了一种芯片***,该芯片***用于支持上述方法实施例中终端设备实现本申请实施例所示的功能。
本申请还提供了一种计算机程序产品,该计算机程序产品包括计算机程序(也可以称为代码,或指令),当该计算机程序在计算机上运行时,该计算机可以执行上述方法实施例所示的终端设备对应的方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应所述以权利要求的保护范围为准。
Claims (25)
1.一种频率预测方法,其特征在于,应用于包括至少一个处理器集群的终端设备,所述至少一个处理器集群中的每个处理器集群包括至少一个处理器,所述方法包括:
获取历史绘帧任务的绘帧周期中多个目标线程在所述至少一个处理器集群中的总运行时长,所述总运行时长为所述多个目标线程在所述每个处理器集群的运行时长之和,所述多个目标线程在所述每个处理器集群的运行时长为所述多个目标线程在所述每个处理器集群中的至少一个处理器的运行时长之和;
判断所述总运行时长与预设时长是否相等;
在所述总运行时长与所述预设时长不相等的情况下,根据所述多个目标线程在所述每个处理器集群的运行时长、所述多个目标线程在所述每个处理器集群的延时时长、所述多个目标线程在所述每个处理器集群中运行时所述每个处理器集群的负载、所述每个处理器集群的计算能力以及所述每个处理器集群在下一个绘帧任务中的频率,确定所述多个目标线程在下一个绘帧任务中运行时所述每个处理器集群的频率的预测值。
2.根据权利要求1所述的方法,其特征在于,所述至少一个处理器集群中存在第一处理器集群,所述第一处理器集群中包括多个处理器;
若所述多个目标线程在所述多个处理器的运行时间段存在全部或部分重叠,则所述多个目标线程在所述第一处理器集群的运行时长为所述多个目标线程在所述多个处理器中每个处理器的运行时长之和减去重叠运行时长。
3.根据权利要求1或2所述的方法,其特征在于,所述方法,还包括:
在所述总运行时长与所述预设时长不相等的情况下,根据所述多个目标线程在所述每个处理器集群中运行时的负载,确定所述多个目标线程在所述每个处理器集群中运行时所述每个处理器集群的负载,所述多个目标线程在所述每个处理器集群中运行时所述每个处理器集群的负载为所述多个目标线程在所述每个处理器集群的运行时长对应的最大负载;
根据所述总运行时长和所述预设时长,确定所述多个目标线程在所述每个处理器集群的延时时长。
4.根据权利要求3所述的方法,其特征在于,所述根据所述总运行时长和所述预设时长,确定所述多个目标线程在所述每个处理器集群的延时时长,包括:
根据所述总运行时长、所述预设时长、所述每个处理器集群的功耗以及所述每个处理器集群支持的运行时长,确定所述多个目标线程在所述每个处理器集群的延时时长。
5.根据权利要求4所述的方法,其特征在于,所述至少一个处理器集群中的每个处理器集群的延时时长满足下列条件:
所述每个处理器集群的延时时长之和等于所述总运行时长与所述预设时长的差值;
所述至少一个处理器集群的功耗之和最小,所述至少一个处理器集群中每个处理器集群的功耗是根据所述多个目标线程在所述每个处理器集群中运行时所述每个处理器集群的负载、所述多个目标线程在所述每个处理器集群的延时时长以及所述多个目标线程在所述每个处理器集群的运行时长确定的;以及,
所述多个目标线程在所述每个处理器集群的延时时长与所述多个目标线程在所述每个处理器集群的运行时长之和在所述每个处理器集群支持的运行时长范围内。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述方法还包括:
当所述多个目标线程中存在目标线程在所述下一个绘帧任务中被调度到所述至少一个处理器集群运行时,基于所述至少一个处理器集群的频率的预测值,调整所述至少一个处理器集群的频率。
10.根据权利要求1至8中任一项所述的方法,其特征在于,所述多个目标线程之间存在唤醒关系,所述唤醒关系用于表示线程之间唤醒与被唤醒的关系。
11.根据权利要求10所述的方法,其特征在于,所述多个目标线程包括目标渲染线程;
在所述获取历史绘帧任务的绘帧周期中多个目标线程在所述至少一个处理器集群中的总运行时长之前,所述方法还包括:
从所述历史绘帧任务的绘帧周期中确定所述目标渲染线程;
基于所述绘帧周期中已发生的重要事件信息,追溯所述绘帧周期中运行的线程与所述目标渲染线程之间的唤醒关系,所述重要事件信息包括线程与线程之间的唤醒事件;
基于所述绘帧周期中运行的线程与所述目标渲染线程之间的唤醒关系,确定所述绘帧周期中的多个目标线程。
12.一种频率预测装置,其特征在于,包括:
获取模块,用于获取历史绘帧任务的绘帧周期中多个目标线程在所述至少一个处理器集群中的总运行时长,所述总运行时长为所述多个目标线程在所述每个处理器集群的运行时长之和,所述多个目标线程在所述每个处理器集群的运行时长为所述多个目标线程在所述每个处理器集群中的至少一个处理器的运行时长之和;
处理模块,用于判断所述总运行时长与预设时长是否相等;以及,在所述总运行时长与所述预设时长不相等的情况下,根据所述多个目标线程在所述每个处理器集群的运行时长、所述多个目标线程在所述每个处理器集群的延时时长、所述多个目标线程在所述每个处理器集群中运行时所述每个处理器集群的负载、所述每个处理器集群的计算能力以及所述每个处理器集群在下一个绘帧任务中的频率,确定所述多个目标线程在下一个绘帧任务中运行时所述每个处理器集群的频率的预测值。
13.根据权利要求12所述的装置,其特征在于,所述至少一个处理器集群中存在第一处理器集群,所述第一处理器集群中包括多个处理器;
若所述多个目标线程在所述多个处理器的运行时间段存在全部或部分重叠,则所述多个目标线程在所述第一处理器集群的运行时长为所述多个目标线程在所述多个处理器中每个处理器的运行时长之和减去重叠运行时长。
14.根据权利要求12或13所述的装置,其特征在于,所述处理模块还用于:
在所述总运行时长与所述预设时长不相等的情况下,根据所述多个目标线程在所述每个处理器集群中运行时的负载,确定所述多个目标线程在所述每个处理器集群中运行时所述每个处理器集群的负载,所述多个目标线程在所述每个处理器集群中运行时所述每个处理器集群的负载为所述多个目标线程在所述每个处理器集群的运行时长对应的最大负载;
根据所述总运行时长和所述预设时长,确定所述多个目标线程在所述每个处理器集群的延时时长。
15.根据权利要求14所述的装置,其特征在于,所述处理模块还用于:
根据所述总运行时长、所述预设时长、所述每个处理器集群的功耗以及所述每个处理器集群支持的运行时长,确定所述多个目标线程在所述每个处理器集群的延时时长。
16.根据权利要求14所述的装置,其特征在于,所述至少一个处理器集群中的每个处理器集群的延时时长满足下列条件:
所述每个处理器集群的延时时长之和等于所述总运行时长与所述预设时长的差值;
所述至少一个处理器集群的功耗之和最小,所述至少一个处理器集群中每个处理器集群的功耗是根据所述多个目标线程在所述每个处理器集群中运行时所述每个处理器集群的负载、所述多个目标线程在所述每个处理器集群的延时时长以及所述多个目标线程在所述每个处理器集群的运行时长确定的;以及,
所述多个目标线程在所述每个处理器集群的延时时长与所述多个目标线程在所述每个处理器集群的运行时长之和在所述每个处理器集群支持的运行时长范围内。
20.根据权利要求12至19中任一项所述的装置,其特征在于,所述处理模块还用于:
当所述多个目标线程中存在目标线程在所述下一个绘帧任务中被调度到所述至少一个处理器集群运行时,基于所述至少一个处理器集群的频率的预测值,调整所述至少一个处理器集群的频率。
21.根据权利要求12至19中任一项所述的装置,其特征在于,所述多个目标线程之间存在唤醒关系,所述唤醒关系用于表示线程之间唤醒与被唤醒的关系。
22.根据权利要求21所述的装置,其特征在于,所述多个目标线程包括目标渲染线程;
所述处理模块还用于:
从所述历史绘帧任务的绘帧周期中确定所述目标渲染线程;
基于所述绘帧周期中已发生的重要事件信息,追溯所述绘帧周期中运行的线程与所述目标渲染线程之间的唤醒关系,所述重要事件信息包括线程与线程之间的唤醒事件;
基于所述绘帧周期中运行的线程与所述目标渲染线程之间的唤醒关系,确定所述绘帧周期中的多个目标线程。
23.一种频率预测装置,其特征在于,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储计算机程序,当所述处理器调用所述计算机程序时,使得所述装置执行如权利要求1至11中任一项所述的方法。
24.一种芯片***,其特征在于,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片***的设备实现如权利要求1至11中任一项所述的方法。
25.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序包括用于实现如权利要求1至11中任一项所述的方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111585233.9A CN115017002B (zh) | 2021-12-22 | 2021-12-22 | 频率预测方法和频率预测装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111585233.9A CN115017002B (zh) | 2021-12-22 | 2021-12-22 | 频率预测方法和频率预测装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115017002A CN115017002A (zh) | 2022-09-06 |
CN115017002B true CN115017002B (zh) | 2023-04-18 |
Family
ID=83065147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111585233.9A Active CN115017002B (zh) | 2021-12-22 | 2021-12-22 | 频率预测方法和频率预测装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115017002B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116010047B (zh) * | 2022-12-12 | 2023-12-15 | 爱芯元智半导体(宁波)有限公司 | 线程调度方法、硬件电路及电子设备 |
CN117130774B (zh) * | 2023-04-28 | 2024-07-12 | 荣耀终端有限公司 | 一种线程加速处理方法和装置 |
CN117714794A (zh) * | 2023-07-06 | 2024-03-15 | 荣耀终端有限公司 | 调频方法、电子设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107562532A (zh) * | 2017-07-13 | 2018-01-09 | 华为技术有限公司 | 一种预测设备集群的硬件资源利用率的方法及装置 |
CN112789651A (zh) * | 2019-03-27 | 2021-05-11 | 华为技术有限公司 | 一种应用于终端的频率调整方法、装置及电子设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8689220B2 (en) * | 2011-11-30 | 2014-04-01 | International Business Machines Corporation | Job scheduling to balance energy consumption and schedule performance |
CN104052625B (zh) * | 2014-06-25 | 2017-07-11 | 汕头大学 | 一种集群服务器的节能部署方法与装置 |
CN106452822B (zh) * | 2016-04-25 | 2019-06-18 | 汕头大学 | 一种大规模服务器集群的在线能耗管理方法与装置 |
CN107832157A (zh) * | 2017-12-13 | 2018-03-23 | 深圳天珑无线科技有限公司 | 动态电源管理方法、移动终端及存储介质 |
US11354585B2 (en) * | 2019-03-19 | 2022-06-07 | International Business Machines Corporation | Cognitive detection of cloud service forecast |
RU2708533C1 (ru) * | 2019-05-31 | 2019-12-09 | Федеральное государственное бюджетное научное учреждение "Федеральный научный агроинженерный центр ВИМ" (ФГБНУ ФНАЦ ВИМ) | Способ эксплуатационного контроля технического состояния подшипников и обмотки статора электродвигателя |
CN112114975B (zh) * | 2020-10-28 | 2023-06-27 | Oppo广东移动通信有限公司 | 处理器频率的调整方法、装置、存储介质及电子设备 |
CN113783203B (zh) * | 2021-09-07 | 2022-05-03 | 广东鑫钻节能科技股份有限公司 | 一种用于空压站的余功回收与无功补偿*** |
-
2021
- 2021-12-22 CN CN202111585233.9A patent/CN115017002B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107562532A (zh) * | 2017-07-13 | 2018-01-09 | 华为技术有限公司 | 一种预测设备集群的硬件资源利用率的方法及装置 |
CN112789651A (zh) * | 2019-03-27 | 2021-05-11 | 华为技术有限公司 | 一种应用于终端的频率调整方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115017002A (zh) | 2022-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115017002B (zh) | 频率预测方法和频率预测装置 | |
CN113132526B (zh) | 一种页面绘制方法及相关装置 | |
CN113553130A (zh) | 应用执行绘制操作的方法及电子设备 | |
CN115017003B (zh) | 负载预测方法和负载预测装置 | |
WO2022100141A1 (zh) | 插件管理方法、***及装置 | |
CN116048933B (zh) | 一种流畅度检测方法 | |
CN113852714A (zh) | 一种用于电子设备的交互方法和电子设备 | |
WO2022194190A1 (zh) | 调整触摸手势的识别参数的数值范围的方法和装置 | |
CN113688019B (zh) | 响应时长检测方法及装置 | |
CN115964231A (zh) | 基于负载模型的评估方法和装置 | |
US20230384925A1 (en) | Method, terminal for acquiring gesture data, and storage medium | |
CN111031377B (zh) | 移动终端及视频制作方法 | |
CN111104209A (zh) | 一种处理任务的方法及相关设备 | |
CN117632400A (zh) | 任务调度方法、电子设备及计算机可读存储介质 | |
CN114596633A (zh) | 坐姿检测方法及终端 | |
CN110519319B (zh) | 一种***分区的方法及装置 | |
CN114172596A (zh) | 信道噪声检测方法及相关装置 | |
CN114257502A (zh) | 一种日志上报方法及装置 | |
US20230351665A1 (en) | Animation Processing Method and Related Apparatus | |
WO2024131584A1 (zh) | 一种轨迹播放方法和装置 | |
CN113673427B (zh) | 视频识别方法、装置、电子设备及存储介质 | |
CN115633120B (zh) | 一种交互方法和设备 | |
EP4388988A1 (en) | Body temperature measurement method, and electronic device | |
CN112770002B (zh) | 一种心跳管控的方法和电子设备 | |
CN111142648B (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 |