CN116737357A - 一种调整处理器频率的方法及装置 - Google Patents

一种调整处理器频率的方法及装置 Download PDF

Info

Publication number
CN116737357A
CN116737357A CN202211187165.5A CN202211187165A CN116737357A CN 116737357 A CN116737357 A CN 116737357A CN 202211187165 A CN202211187165 A CN 202211187165A CN 116737357 A CN116737357 A CN 116737357A
Authority
CN
China
Prior art keywords
frame
task
drawing frame
state information
running state
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
CN202211187165.5A
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.)
Honor Device Co Ltd
Original Assignee
Honor Device 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 Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202211187165.5A priority Critical patent/CN116737357A/zh
Publication of CN116737357A publication Critical patent/CN116737357A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

本申请提供了一种调整处理器频率的方法及装置,该方案通过获取当前帧的运行状态信息,并结合历史帧的运行状态信息判断当前帧是否会丢帧,如果当前帧可能出现丢帧,则及时调整CPU的频率,从而避免帧内突发重负载但未能及时提升CPU频率导致丢帧的情况发生。而且,该方案在感知到帧内突发重负载时才调整CPU频率,而不是无论帧内是否突发重负载都让CPU运行在高频率,因此,该方法在保证电子设备性能的前提下,降低了整体功耗。

Description

一种调整处理器频率的方法及装置
技术领域
本申请涉及调频技术领域,尤其涉及一种调整处理器频率的方法及装置。
背景技术
针对点击、滑动等交互式场景中,要求屏幕工作在高刷新率状态,这就要求CPU工作于高频率状态,CPU频率即,CPU的时钟频率,是指CPU运算时的工作频率,决定了电子设备的运行速度,CPU频率越高运算速度越快,能够处理复杂的运算。相关技术中,对于应用程序中的点击、滑动等交互操作交互的场景下突发重负载的感知调频的时延大,导致帧内未调频的现象,进而导致丢帧,最终可能导致电子设备的显示画面出现卡顿现象。
发明内容
有鉴于此,本申请提供了一种调整处理器频率的方法及装置,以解决上述至少部分问题,其公开的技术方案如下:
第一方面,本申请提供了一种调整处理器频率的方法,应用于电子设备,该电子设备包括触摸屏和处理器,方法包括:响应于检测到帧绘制事件,获取当前绘制帧内任务的运行状态信息,运行状态信息包括表征当前绘制帧内任务的负载;获取电子设备当前运行状态对应的帧率;基于当前绘制帧内任务的运行状态信息,以及预先记录的历史绘制帧内任务的运行状态信息,确定当前绘制帧出现丢帧;提升处理器的运行频率。这样,可以避免帧内突发重负载但未能及时提升CPU频率导致丢帧的情况发生。而且,该方案在感知到帧内突发重负载时才调整CPU频率,而不是无论帧内是否突发重负载都让CPU运行在高频率,因此,该方法在保证电子设备性能的前提下,降低了整体功耗。
在第一方面一种可能的实现方式中,基于当前绘制帧内任务的运行状态信息,以及预先记录的历史绘制帧内任务的运行状态信息,确定当前绘制帧出现丢帧,包括:若当前绘制帧内任务的运行状态信息大于历史绘制帧内任务的运行状态信息,确定当前绘制帧出现丢帧。
在第一方面另一种可能的实现方式中,运行状态信息包括绘制帧内任务的运行时长;若当前绘制帧内任务的运行状态信息大于历史绘制帧内任务的运行状态信息,确定当前绘制帧出现丢帧,包括:若当前绘制帧内任务的运行时长大于历史绘制帧内同一任务的运行时长,确定当前绘制帧出现丢帧。该方案对比当前帧及历史帧内各任务的运行时长,判断当前帧是否可能出现丢帧,如果当前帧内任务的运行时长大于历史帧内同一任务的运行时长,则当前帧可能出现丢帧的情况。根据帧内任务的运行时长识别当前帧是否出现丢帧的方式可以精确感知帧内任务的运行时长,提高了帧内负载的感知精度,进而提高了感知帧内可能突发重负载的速度,进一步,在感知到帧内可能突发重负载时,及时调整CPU频率,降低了丢帧概率。
在第一方面又一种可能的实现方式中,运行状态信息包括绘制帧内任务在指定时间段内的阶段负载;若当前绘制帧内任务的运行状态信息大于历史绘制帧内任务的运行状态信息,确定当前绘制帧出现丢帧,包括:获取当前绘制帧内任务在指定时间段内的阶段负载;若当前绘制帧内任务在指定时间段内的阶段负载大于历史绘制帧内任务在相同时间段内的阶段负载,确定当前绘制帧出现丢帧。该方式可以适用于绘制线程执行任何任务的场景,换言之,可以应用于当前帧为doframe绘制流程的场景,同样适用于当前帧为非doframe绘制流程的场景,扩大了本方案的适用范围,使得更多场景都可以及时感知到帧内突发重负载,并及时调整CPU频率,从而提高了电子设备的整体性能。
在第一方面另一种可能的实现方式中,获取当前绘制帧内任务在指定时间段内的阶段负载,包括:采集当前绘制帧内任务在指定时间段内的指令总数,确定指令总数为阶段负载;或者,获取当前绘制帧内任务在指定时间段内的运行时长,确定运行时长为阶段负载。
在第一方面又一种可能的实现方式中,提升处理器的运行频率,包括:增大最小频率值;增大处理器的运行频率,使得增大后的运行频率大于或等于增大后的最小频率值。
在第一方面再一种可能的实现方式中,该方法还包括:基于当前绘制帧内任务的运行状态信息,以及预先记录的历史绘制帧内任务的运行状态信息,确定当前绘制帧不会出现丢帧;控制处理器保持原频率运行。
在第一方面另一种可能的实现方式中,运行状态信息包括绘制帧内任务的运行时长;基于当前绘制帧内任务的运行状态信息,以及预先记录的历史绘制帧内任务的运行状态信息,确定当前绘制帧不会出现丢帧,包括:若当前绘制帧内任务的运行时长小于或等于历史绘制帧内同一任务的运行时长,确定当前绘制帧不会出现丢帧。
在第一方面又一种可能的实现方式中,运行状态信息包括绘制帧内任务的运行时长;基于当前绘制帧内任务的运行状态信息,以及预先记录的历史绘制帧内任务的运行状态信息,确定当前绘制帧不会出现丢帧,包括:运行状态信息包括绘制帧内任务在指定时间段内的阶段负载;基于当前绘制帧内任务的运行状态信息,以及预先记录的历史绘制帧内任务的运行状态信息,确定当前绘制帧不会出现丢帧,包括:若当前绘制帧内任务在指定时间段内的阶段负载小于历史绘制帧内任务在相同时间段内的阶段负载,确定当前绘制帧不会出现丢帧。
在第一方面再一种可能的实现方式中,方法还包括:基于当前绘制帧内任务的运行状态信息,识别出当前绘制帧内的关键任务,以及,确定关键任务的负载值,关键任务是影响用户感知体验的任务,运行状态信息还包括当前绘制帧内任务的任务内容及不同绘制帧之间的关系;若确定当前绘制帧出现丢帧,将关键任务分配至运算能力与关键任务的负载相匹配的处理器核执行。可见,该方案在帧内突发重负载后,及时提升CPU频率,进一步还可以为帧内关键任务重新选核,即将帧内关键任务重新分配至运算能力更高的CPU核中,进一步提高了电子设备的整体性能。
第二方面,本申请还提供了一种电子设备,所述电子设备包括一个或多个处理器、存储器和触摸屏;所述存储器用于存储程序代码;所述处理器用于运行所述程序代码,使得所述电子设备实现如第一方面任一项所述的调整处理器频率的方法。
第三方面,本申请还提供了一种计算机可读存储介质,其上存储有指令,当所述指令在电子设备上运行时,使得所述电子设备执行如第一方面任一项所述的调整处理器频率的方法及装置。
第四方面,本申请还提供了一种计算机程序产品,其上存储有执行,当所述计算机程序产品在电子设备上运行时,使得所述电子设备实现如第一方面任一项所述调整处理器频率的方法及装置。
应当理解的是,本申请中对技术特征、技术方案、有益效果或类似语言的描述并不是暗示在任意的单个实施例中可以实现所有的特点和优点。相反,可以理解的是对于特征或有益效果的描述意味着在至少一个实施例中包括特定的技术特征、技术方案或有益效果。因此,本说明书中对于技术特征、技术方案或有益效果的描述并不一定是指相同的实施例。进而,还可以任何适当的方式组合本实施例中所描述的技术特征、技术方案和有益效果。本领域技术人员将会理解,无需特定实施例的一个或多个特定的技术特征、技术方案或有益效果即可实现实施例。在其他实施例中,还可在没有体现所有实施例的特定实施例中识别出额外的技术特征和有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种滑动交互场景的示意图;
图2是本申请实施例提供的一种电子设备的框图;
图3是本申请实施例提供的一种电子设备的软件结构框图;
图4是本申请实施例提供的一种调整处理器频率的方法流程;
图5是本申请实施例提供的一种阶段负载的示意图;
图6是本申请实施例提供的一种帧绘制流程的示意图;
图7是本申请实施例提供的另一种帧绘制流程的示意图。
具体实施方式
本申请说明书和权利要求书及附图说明中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于限定特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
请参见图1,示出了本申请实施例提供的一种滑动交互场景的示意图,本实施例以电子设备是手机为例进行说明。如图1的(1)所示,手机10的屏幕显示页面100,页面100当前显示内容为文字,当手指向上滑动页面100后,页面100向上移动,屏幕上显示的页面100包括的内容跟随滑动操作移动,例如,随着用户手指上滑操作,页面100显示的内容变为图1的(2)所示的内容。如图1的(2)所示,页面100中包括视频窗口101,视频窗口101内显示视频内容。显然,屏幕显示视频内容时需要的刷新率高于显示文字内容所需的刷新率。可见,用户的本次滑动操作会导致突发重负载帧。
相关技术中,一种调整处理器频率的方式是:定时计算CPU的整体负载,以及根据CPU整体负载调整CPU频率,计算CPU整体负载的时刻与绘制帧的开始时刻之间存在时间差,即调频时机未与绘制帧对齐,这样可能会导致调频的延时较大;此外,在计算CPU整体负载时,通常采用线性累积的形式,在点击、滑动等交互场景下针对突发重负载帧,负载感知调频的延时较大,甚至出现帧内未调频的现象,进而导致显示画面可能出现卡顿现象。
此外,相关技术中的另一种调整处理器频率的方式是:全局提频,即无论绘制帧是否突发重负载CPU都会按照提高后的频率工作,这样会导致电子设备的功耗较大,例如,当绘制帧不需要更多的系统资源时,CPU仍工作在较高的频率,这样会导致系统资源浪费,电子设备的功耗增加。
本申请实施例提供的调整处理器频率的方法,通过识别交互式场景(如,社交、新闻、购物、浏览、音乐、视频、游戏等应用中的点击、滑动操作)下的绘制帧(即当前帧)的运行状态,结合历史帧(是指在当前帧之前已经绘制完成的绘制帧)的运行状态,快速地感知帧内突发重负载,进一步,及时调整CPU频率,降低了对帧内突发负载感知和CPU调频的延时。而且,该方法仅针对帧内突发重负载的任务提高CPU频率,在保证电子设备性能的前提下,降低了整体功耗。
在一些实施例中,电子设备可以是手机、平板电脑、桌面型、膝上型、笔记本电脑、超级移动个人计算机(Ultra-mobile Personal Computer,UMPC)、手持计算机、上网本、个人数字助理(Personal Digital Assistant,PDA)、可穿戴电子设备、智能手表等设备。
请参见图2,示出了本申请实施例提供的一种电子设备的框图。
如图2所示,电子设备可以包括处理器201、存储器202和触摸屏203。
可以理解的是,本实施例示意的结构并不构成对电子设备的具体限定。在另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器201可以包括一个或多个处理单元,例如,处理器201可以包括应用处理器(application processor,AP),图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),数字信号处理器(digital signal processor,DSP)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。例如,在本申请实施例中,处理器可以感知帧内突发重负载,并及时调整处理器的工作频率。
存储器202可以用于存储计算机可执行程序代码,该可执行程序代码包括指令。处理器201通过运行存储在存储器202的指令,从而执行电子设备的各种功能应用以及数据处理。例如,在本申请实施例中,处理器201可以通过执行存储器202中的指令,快速感知帧内突发重负载,并及时调整处理器的工作频率。
处理器201通过运行存储在存储器202的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备的各种功能应用以及数据处理。
触摸屏203包括显示屏和触控屏,显示屏用于显示图像、视频等。显示屏可以显示一系列图形用户界面(graphical user interface,GUI),这些GUI都是电子设别的主屏幕。
触控屏用于检测作用于其上或附近的触摸操作,触控屏可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏提供与触摸操作相关的视觉输出。
触控屏可以设置于显示屏上方,且触控屏覆盖显示屏,在另一些实施例中,触控屏也可以设置于电子设备的表面,与显示屏的位置不同。
另外,在上述部件之上,运行有操作系统。在该操作系统上可以安装运行应用程序。
电子设备的操作系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备的软件结构。
图3是本申请实施例的电子设备的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。如图3所示,应用程序包可以包括视频、音乐、地图、通话等应用程序。例如,在本申请实施例中,应用程序包还可以包括社交类应用,此处不再赘述。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。如图3所示,应用程序框架层可以包括帧识别及帧事件识别模块,该模块用于识别帧,以及识别帧绘制事件。
此外,应用程序框架层还可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
例如,在本申请实施例中,在调整处理器频率时,应用程序框架层可以为应用程序层提供调整处理器频率功能相关的API,并为应用程序层提供相应的接口管理服务,以实现场景编排功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries)等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
内核层是硬件和软件之间的层。在本申请实施例中,内核层可以包括:稳帧嗅探器模块、关键任务分组调度模块、负载预测引擎模块和帧调度器模块。此外,内核层还可以包括显示驱动,摄像头驱动,音频驱动,传感器驱动。
稳帧嗅探器模块主要识别当前运行状态下的刷新率(即图中的目标帧率),并传递至负载预测引擎模块。本申请涉及交互式场景,交互式场景中默认支持60Hz、90Hz、120Hz等数值的刷新率。
关键任务分组调度模块主要实现识别绘制帧的关键任务和非关键任务,为绘制帧关键任务创建分组(cgroup),针对关键任务分组进行组调度和任务选核。
负载预测引擎模块接收帧识别及帧事件识别模块传递的帧信息,如,当前帧的运行状态,例如,当前帧内任务运行时长、阶段负载等。同时,该模块记录历史帧的运行状态,例如,历史帧内任务运行时长、阶段负载及历史运行情况(如,是否出现丢帧情况)。
负载预测引擎模块结合当前帧的运行状态和历史帧的运行状态,判定当前帧是否可能出现丢帧,如果判定当前帧可能出现丢帧,则可以结合平台能效模型及时调整CPU频率。
在一种可能的实现方式中,负载预测可以通过负载预测模型实现,如图3所示,负载预测模型的输入是当前帧及历史帧的信息,该负载预测模型以稳帧嗅探器模块输出的目标帧率和平台能效模型作为优化目标,最终在判定当前帧大概率出现丢帧时,确定需要提高处理器的频率,最终输出数值增大后的最小频率值minFreq,并传递至帧调度器模块。
在一些实施例中,帧调度器模块包括帧内调频子模块。帧内调频子模块确定负载预测引擎模块输出的最小频率值大于帧调度器模块当前使用的最小频率值,则按照最新接收的最小频率值提高CPU的频率,从而满足帧内突发重负载时对提升CPU频率的需求,避免帧内超时出现丢帧的现象。
在另一些实施例中,帧调度器模块还可以包括任务选核子模块。任务选核子模块接收关键任务分组调度模块传递的关键任务的信息,当负载预测引擎模块判定当前帧可能存在丢帧的情况时,任务选核子模块根据接收的关键任务的信息,将关键任务分配至能力更强的CPU核上运行,从而确保关键任务可以在预设时间内完成。
需要说明的是,本申请实施例虽然以Android系统为例进行说明,但是其基本原理同样适用于基于其他操作系统的电子设备。
下面将结合图4,介绍本申请实施例提供的一种调整处理器频率的方法。该方法应用于如图2所示的电子设备中。
如图4所示,该方法可以包括以下步骤:
S11,用户在APP的界面上进行交互操作,如,点击、滑动等操作。
S12,帧识别及帧绘制事件识别模块检测到用户的交互操作后,识别绘制帧并获取绘制帧的运行状态信息。
帧识别及帧绘制事件识别模块可以识别出绘制帧及绘制帧事件,进一步可以获取该绘制帧的运行状态信息。在一实施例中,绘制帧的运行状态信息可以包括当前帧的进程标识符(Process Identification,PID),一帧的开始时刻、运行状态(如运行时长)等信息。
S13,帧识别及帧绘制事件识别模块将绘制帧的运行状态信息发送至关键任务分组调度模块。
在本申请的一个实施例中,帧识别及帧绘制事件识别模块分别在S13和S16将绘制帧的运行状态信息,分别发送至关键任务分组调度模块和负载预测引擎模块。
S14,关键任务分组调度模块识别出当前帧绘制事件中的关键任务。
在一帧的开始时刻和结束时刻的时间段内,存在多个维度、多个实体对象。实体对象包括CPU、任务等。多个实体对象之间相互依赖,在不同的时间、先后关系维度存在不同的状态和关系。每个线程在不同的时间点,对应不同的CPU频点,不同CPU频点对应不同的计算能力。
关键任务分组调度模块可以根据采集帧内任务的任务内容、状态、负载,分析帧间的任务相关性和关联性,抽取帧内任务的特征,对任务进行分类。在一示例中,可以使用聚类分析方法,统计帧内各任务的负载、关联性等特征,根据这些特征对任务进行聚类分类,得到关键任务和非关键任务等。
关键任务和非关键任务的最明显特征为是否影响用户可感知体验,如果某个任务对用户可感知体验有影响则为关键任务,如果某个任务对用户可感知体验无影响或影响不大则认为是非关键任务。
S15,关键任务分组调度模块将关键任务的信息发送至帧调度器模块。
S16,帧识别及帧绘制事件识别模块将绘制帧的运行状态信息发送至负载预测引擎模块。
S17,帧识别及帧绘制事件识别模块触发稳帧嗅探器模块获取系统当前运行状态下的目标帧率。
帧识别及帧绘制事件识别模块识别到帧绘制事件时,触发稳帧嗅探器模块获取电子设备在当前运行状态下的帧率,即目标帧率。帧率(Frame Per Second,FPS),是以帧为单位的图像连续出现在显示器上的频率,即每秒显示的帧数,单位是Hz。帧率越高图像越稳定,图像显示越自然清晰。帧率越低,图像闪烁和抖动越严重。而帧率越高对CPU运算速度的要求越高,即要求CPU频率越高,因此,获取系统的当前运行状态下的帧率可以确定与该帧率相匹配的CPU频率。
本申请实施例中,可以通过显示驱动模块识别交互场景(如点击、滑动操作场景)下的帧率,交互场景下的帧率可以是60Hz、90Hz、120Hz、144Hz等中的任一个。
S18,稳帧嗅探器模块向负载预测引擎模块发送目标帧率。
稳帧嗅探器获得目标帧率后发送至负载预测引擎模块,从而使负载预测引擎模块参考目标帧率调整CPU频率。
S19,负载预测引擎模块根据当前帧及历史帧的运行状态信息,预测当前帧是否丢帧;如果是,则执行S111;如果否,则执行S110。
当前帧是指绘制线程正在绘制的一帧,历史帧是当前帧之前已经完成绘制的一帧。
如果一帧的绘制线程和渲染线程的总运行时长超过一帧的时长时,就会出现丢帧,一帧的时长是刷新一帧的时间间隔,一帧的时长取决于帧率,帧率越高,一帧时长越短,例如,刷新率是60Hz,即以16.6ms刷新一次屏幕,一帧的时长约为16ms;刷新率是90Hz,一帧的时长约为11ms;刷新率是120Hz,一帧的时长约为8ms。
在一种可能的实现方式中,负载预测引擎模块根据当前帧的运行状态信息以及历史帧的运行状态信息,预测当前帧是否突发重负载。如果确定当前帧突发重负载则确定当前帧可能出现丢帧。如果确定当前帧不会突发重负载,则确定当前帧不会出现丢帧。
在一种场景下,可以通过记录历史帧内UI线程的阶段负载,以及计算当前帧内UI线程的阶段负载,感知当前帧内是否突发重负载。计算当前帧的阶段负载,并与历史帧同一时间段的阶段负载进行比较,判定当前帧内是否会突发重负载。如果当前帧的阶段负载大于历史帧的阶段负载,则确定当前帧可能突发重负载;如果当前帧的阶段负载小于历史帧的阶段负载,则确定当前帧不会突发重负载。
阶段负载是在一段时间内的负载值,例如,可以通过内核中的sum_exec_time线程获取当前帧UI线程的运行时长,或者,通过pmu信息采集当前帧内的UI线程指令数,获得UI线程的阶段负载值。如线程的运行时长越长表明该线程的负载值越大,同理,线程的指令数越多表明该线程的负载值越大。
在一种可能的实现方式中,可以预先设定预设时长的定时器,在检测到绘制线程启动后启动定时器,定时器计时达到预设时长后获取该线程的运行时长或指令数,得到该时间段对应的阶段负载。绘制线程的整个运行过程通常可以包括多个预设时长的时间段。如图5所示,假设绘制线程的开始时刻是t0,预设时长是T,从t0开始计时当计时时长达到T时记为t1时刻,此时获取绘制线程的负载值L1,即t0~t1时间段对应的负载值。t1时刻计时器重置,重新开始计时,当计时时长达到T时记为t2时刻,获取t0~t2时间段的负载值L2。依次类推,在t3时刻获得t0~t3时间段的负载值L3,在t4时刻获得t0~t4时间段的负载值L4,在t5时刻获得t0~t5时间段的负载值L5。
在一示例中,如图6所示,frame1是历史帧,frame2是当前帧,Vsync信号是屏幕发出的屏幕刷新信号,其中Vsync信号的作用是使UI绘制线程的开始时间与屏幕刷新时间同步。
frame1执行帧绘制流程(由UI线程执行,运行在CPU中),该帧绘制流程可以包括多个任务(或称为任务),如任务1~任务3。例如,在Android系统中,帧绘制流程(如doframe流程)主要包括input、animation、traversal等任务。应理解,在其他操作系统,帧绘制流程可以包括其他任务,本申请对此不做限制。
frame1的UI任务结束后,唤醒render线程(即渲染线程,运行在GPU中)工作,与此同时,UI线程处理其他绘制任务。例如,在Android系统中,其他绘制任务可以包括prefetch、inflate等其他逻辑计算任务,如prefetch任务主要用于提前预取下一帧的绘制计算任务,inflate任务主要用于进行较为复杂的逻辑任务。当然,其他绘制任务还可以是除prefetch、inflate之外的任务,本申请对其他绘制任务不做限定。
假设frame1中任务1的运行时长是T1,任务2的运行时长是T2,任务3的运行时长是T3。假设frame1的UI任务结束后执行其他绘制任务的时长是T4。如图6所示,定时器在frame1结束后收到Vsync信号的时刻(即frame2开始时刻)开始计时,假设定时器的计时时长是T,而当定时器计时达到计时时长时,此时其他绘制任务未结束,因此此时获得frame2的运行时长是T。而frame1的任务1的运行时长是T1,且T1<T。即同一时间段内,当前帧frame2中任务的运行时长大于历史帧frame1中任务1的运行时长,即frame2的阶段负载大于frame1同一时间段的阶段负载,因此,可以判定frame2可能突发重负载,即frame2可能出现丢帧的情况。
此外,如图6所示,当frame1的渲染线程结束后,即frame1的绘制线程和渲染线程都执行完相应的任务后,UI线程执行的其他任务仍未结束,且在接收Vsync信号后该其他任务仍未结束,即,UI线程应该在frame2执行下一帧的绘制流程,但此时UI线程仍在执行其他任务无法执行下一帧的绘制流程,可见,frame2会出现丢帧,即在frame2帧仍显示frame1的画面。
上述通过帧内阶段负载判定是否存在帧内突发重负载的方式,既可以应用于当前帧为正常绘制流程(如,doframe绘制流程)的场景,同样可以应用于当前帧为其他绘制流程(如,非doframe绘制流程)的场景。
在另一种场景下,可以通过监测当前帧和历史帧内各任务的运行时长及历史运行关系,感知当前帧内是否突发重负载。在一种可能的实现方式中,监测当前帧内任务的运行时长,并将当前监测到的任务的运行时长与历史帧内相同任务的运行时长进行比较。如果当前帧该任务的运行时长大于历史帧内相同任务的运行时长,则确定当前帧可能突发重负载。如果当前帧的该任务的运行时长小于或等于历史帧内相同任务的运行时长,则继续监测当前帧内下一个任务的运行时长是否大于历史帧内同一任务的运行时长。如果当前帧内所有任务的运行时长都不大于历史帧相同任务的运行时长,则确定当前帧不会突发重负载。
在一示例中,例如,如图7所示,frame1是历史帧,frame2是当前帧。frame1和frame2都是doframe绘制流程。当监测到frame2中的任务1结束后,获得任务1的运行时长为10ms,而历史帧frmae1中任务1的运行时长是4ms。可见,当前帧中任务1的运行时长大于历史帧内任务1的运行时长,当前帧可能突发重负载,即frame2可能出现丢帧的情况。
在本申请其他实施例中,如果frame2的任务1不大于frame1的任务1的运行时长,则继续比较当前帧与历史帧的任务2的运行时长。如果frame2的任务2不大于frame1的任务2的运行时长,则继续比较frame2的任务3的运行时长是否大于frame1的任务3的运行时长,如果当前frame2的任务3还未结束,且截止当前时刻任务3已运行了6ms,而frame1的任务3的总运行时长是4ms,可见,frame2中任务3的运行时长大于frame1中任务3的运行时长,因此确定frame2可能突发重负载。
上述的通过帧内任务的运行时长判定帧内是否突发重负载的方式,应用于正常绘制流程(如,doframe绘制流程)场景。此外,该方式可以精确感知帧内任务的运行时长,在执行某个帧内任务时即可判定当前帧是否突发重负载,提高了帧内负载的感知精度,在帧内突发重负载时可以及时调整CPU频率,提高了CPU频率调整的及时性。
S110,负载预测引擎模块不更新输出频率值。
如果负载预测引擎模块确定当前帧不会突发重负载,即不会出现丢帧,则无需更新输出频率值。帧调度器模块根据本地保存的频率值控制CPU的频率,其中,帧调度器模块本地保存的频率值可以是负载预测引擎模块上一次调整CPU频率时的输出频率值。
S111,负载预测引擎模块基于目标帧率和平台能效模型,更新输出频率值。
这里的平台能效模型是能量感知调度(EAS)的基础能效模型,该能效模型需要考虑CPU的计算能力和功耗两方面的因素。负载预测引擎模块根据目标帧率和平台能效模型,确定CPU的频率,以及,选择任务运行在哪个CPU核中,最终既能满足任务运行需求同时还能保证CPU的功耗较低。
如果确定当前帧可能突发重负载,即可能出现丢帧,此种情况下需要提高CPU频率,负载预测引擎模块更新输出频率值,如,增大输出的最小频率值。这样,帧调整模块根据更新后的输出频率值(增大后的最小频率值)调整CPU频率。
在本申请的其他实施例中,如果负载预测引擎模块确定帧绘制流程的执行时间小于一帧的时间,则判定不会丢帧,基于平台能效模型决策是否降低CPU频率(如,降低最大频率值)。
在一种可能的实现方式中,负载预测引擎模块可以输出目标CPU频率值,帧调度器模块可以直接基于目标CPU频率值调整CPU的频率。当需要调整CPU频率时,更新目标CPU频率值并传递给帧调度模块。
在另一种可能的实现方式中,负载预测引擎模块可以输出最大频率值和最小频率值,当需要提升CPU频率时,增大最小频率值。当需要降低CPU频率时,可以降低最大频率值。
在又一种可能的实现方式中,当需要提升CPU频率时,仅更新输出的最小频率值。如需降低CPU频率时,可以仅更新输出的最大频率值。
S112,负载预测引擎模块向帧调度器模块发送更新后的输出频率值。
S113,帧调度器模块基于更新后的输出频率值调整CPU频率。
帧调度器模块接收更新后的输出频率值后,基于接收到的频率值调整CPU的频率。
例如,当负载预测引擎模块输出增大后的最小频率值时,帧调度器模块基于增大后的最小频率值提升CPU的频率。当负载预测引擎模块输出降低后的最大频率值时,帧调度器模块基于降低后的最大频率值降低CPU的频率。
S114,为关键任务选择与该关键任务相匹配的CPU核。
本实施例提供的调整处理器频率的方法,获取当前帧的运行状态,并结合历史帧的运行状态分析当前帧的运行状态,判断当前帧是否会丢帧,如果当前帧可能出现丢帧,则及时调整CPU的频率,从而避免帧内突发重负载但未能及时提升CPU频率而导致丢帧的情况发生。而且,该方案在感知到帧内突发重负载时才调整CPU频率,而不是无论帧内是否突发重负载都让CPU运行在高频率,因此,该方法在保证电子设备性能的前提下,降低了整体功耗。
而且,本实施例提供的调整处理器频率的方法,可以通过计算当前帧在一段时间内的阶段负载,如果当前帧的阶段负载大于历史帧同一时间段的阶段负载,则确定当前帧可能突发重负载,即可能出现丢帧的情况。如果当前帧的阶段负载小于历史帧同一时间段的阶段负载,则确定当前帧不会突发重负载,即不会出现丢帧的情况。进一步地,该方法还提供了计算当前帧内任务的运行时长,并结合历史帧内同一任务的运行时长及历史帧的运行情况,判断当前帧是否突发重负载。若当前帧内任务的运行时长大于历史帧内相同任务的运行时长,确定当前帧会出现丢帧情况。若当前帧内任务的运行时长小于历史帧内相同任务的运行时长,确定当前帧不会出现丢帧情况。可见,该方案可以精确监测绘制帧内任务的运行情况,提高了帧内负载感知的精度,进而提高了帧内调频速度。
上述实施例以电子设备运行Android系统为例说明,感知帧内负载,以及在感知到帧内突发重负载后及时调整CPU频率的过程,应理解,通过感知帧内突发重负载并及时调整CPU的过程同样适用于其他操作系统,根据其他操作系统的软件架构做适应性修改即可,本申请对此不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本实施例所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (12)

1.一种调整处理器频率的方法,其特征在于,应用于电子设备,所述电子设备包括触摸屏和处理器,所述方法包括:
响应于检测到帧绘制事件,获取当前绘制帧内任务的运行状态信息,所述运行状态信息包括表征所述当前绘制帧内任务的负载;
获取所述电子设备当前运行状态对应的帧率;
基于所述当前绘制帧内任务的运行状态信息,以及预先记录的历史绘制帧内任务的运行状态信息,确定所述当前绘制帧出现丢帧;
提升所述处理器的运行频率。
2.根据权利要求1所述的方法,其特征在于,所述基于所述当前绘制帧内任务的运行状态信息,以及预先记录的历史绘制帧内任务的运行状态信息,确定所述当前绘制帧出现丢帧,包括:
若所述当前绘制帧内任务的运行状态信息大于所述历史绘制帧内任务的运行状态信息,确定所述当前绘制帧出现丢帧。
3.根据权利要求2所述的方法,其特征在于,所述运行状态信息包括绘制帧内任务的运行时长;
所述若所述当前绘制帧内任务的运行状态信息大于所述历史绘制帧内任务的运行状态信息,确定所述当前绘制帧出现丢帧,包括:
若所述当前绘制帧内任务的运行时长大于所述历史绘制帧内同一任务的运行时长,确定所述当前绘制帧出现丢帧。
4.根据权利要求2所述的方法,其特征在于,所述运行状态信息包括绘制帧内任务在指定时间段内的阶段负载;
所述若所述当前绘制帧内任务的运行状态信息大于所述历史绘制帧内任务的运行状态信息,确定所述当前绘制帧出现丢帧,包括:
获取所述当前绘制帧内任务在所述指定时间段内的阶段负载;
若所述当前绘制帧内任务在所述指定时间段内的阶段负载大于所述历史绘制帧内任务在相同时间段内的阶段负载,确定所述当前绘制帧出现丢帧。
5.根据权利要求4所述的方法,其特征在于,所述获取所述当前绘制帧内任务在所述指定时间段内的阶段负载,包括:
采集所述当前绘制帧内任务在所述指定时间段内的指令总数,确定所述指令总数为所述阶段负载;
或者,
获取所述当前绘制帧内任务在所述指定时间段内的运行时长,确定所述运行时长为所述阶段负载。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述提升所述处理器的运行频率,包括:
增大最小频率值;
增大所述处理器的运行频率,使得增大后的运行频率大于或等于所述增大后的最小频率值。
7.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
基于所述当前绘制帧内任务的运行状态信息,以及预先记录的历史绘制帧内任务的运行状态信息,确定所述当前绘制帧不会出现丢帧;
控制所述处理器保持原频率运行。
8.根据权利要求7所述的方法,其特征在于,所述运行状态信息包括绘制帧内任务的运行时长;
所述基于所述当前绘制帧内任务的运行状态信息,以及预先记录的历史绘制帧内任务的运行状态信息,确定所述当前绘制帧不会出现丢帧,包括:
若所述当前绘制帧内任务的运行时长小于或等于所述历史绘制帧内同一任务的运行时长,确定所述当前绘制帧不会出现丢帧。
9.根据权利要求7所述的方法,其特征在于,所述运行状态信息包括绘制帧内任务的运行时长;
所述基于所述当前绘制帧内任务的运行状态信息,以及预先记录的历史绘制帧内任务的运行状态信息,确定所述当前绘制帧不会出现丢帧,包括:
所述运行状态信息包括绘制帧内任务在指定时间段内的阶段负载;
所述基于所述当前绘制帧内任务的运行状态信息,以及预先记录的历史绘制帧内任务的运行状态信息,确定所述当前绘制帧不会出现丢帧,包括:若所述当前绘制帧内任务在指定时间段内的阶段负载小于所述历史绘制帧内任务在相同时间段内的阶段负载,确定所述当前绘制帧不会出现丢帧。
10.根据权利要求1至9任一项所述的方法,其特征在于,所述方法还包括:
基于所述当前绘制帧内任务的运行状态信息,识别出所述当前绘制帧内的关键任务,以及,确定所述关键任务的负载值,所述关键任务是影响用户感知体验的任务,所述运行状态信息还包括所述当前绘制帧内任务的任务内容及不同绘制帧之间的关系;
若确定所述当前绘制帧出现丢帧,将所述关键任务分配至运算能力与所述关键任务的负载相匹配的处理器核执行。
11.一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器、存储器和触摸屏;所述存储器用于存储程序代码;所述处理器用于运行所述程序代码,使得所述电子设备实现如权利要求1至10任一项所述的调整处理器频率的方法。
12.一种计算机可读存储介质,其特征在于,其上存储有指令,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1至10任一项所述的调整处理器频率的方法。
CN202211187165.5A 2022-09-28 2022-09-28 一种调整处理器频率的方法及装置 Pending CN116737357A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211187165.5A CN116737357A (zh) 2022-09-28 2022-09-28 一种调整处理器频率的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211187165.5A CN116737357A (zh) 2022-09-28 2022-09-28 一种调整处理器频率的方法及装置

Publications (1)

Publication Number Publication Date
CN116737357A true CN116737357A (zh) 2023-09-12

Family

ID=87910267

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211187165.5A Pending CN116737357A (zh) 2022-09-28 2022-09-28 一种调整处理器频率的方法及装置

Country Status (1)

Country Link
CN (1) CN116737357A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117687495A (zh) * 2024-02-04 2024-03-12 荣耀终端有限公司 一种数据获取方法、训练方法及电子设备

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105094272A (zh) * 2014-05-14 2015-11-25 中兴通讯股份有限公司 一种终端的硬件刷新率的调节方法及装置
US20150378787A1 (en) * 2014-06-27 2015-12-31 Vmware, Inc. Processing workloads in single-threaded environments
CN109189653A (zh) * 2018-07-13 2019-01-11 重庆爱奇艺智能科技有限公司 一种用于在虚拟现实设备中进行卡顿调节的方法和装置
CN110647366A (zh) * 2019-09-19 2020-01-03 Oppo广东移动通信有限公司 处理卡顿的方法、装置、终端及存储介质
CN111221654A (zh) * 2020-01-06 2020-06-02 北京小米移动软件有限公司 调度器工作频率调整方法、装置及存储介质
CN112130940A (zh) * 2020-08-25 2020-12-25 北京小米移动软件有限公司 终端的控制方法、装置、存储介质和电子设备
CN112631415A (zh) * 2020-12-31 2021-04-09 Oppo(重庆)智能科技有限公司 Cpu频率调整方法、装置、电子设备及存储介质
CN114442792A (zh) * 2022-02-09 2022-05-06 北京小米移动软件有限公司 处理器的运行频率调整方法、装置及存储介质
CN114699772A (zh) * 2022-04-27 2022-07-05 努比亚技术有限公司 一种处理器动态调频方法、设备及计算机可读存储介质
CN115002542A (zh) * 2022-05-26 2022-09-02 展讯半导体(南京)有限公司 帧率调整方法及装置,计算机可读存储介质、终端
CN115048221A (zh) * 2022-06-27 2022-09-13 Oppo广东移动通信有限公司 负载处理方法、装置、电子设备及计算机可读存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105094272A (zh) * 2014-05-14 2015-11-25 中兴通讯股份有限公司 一种终端的硬件刷新率的调节方法及装置
US20150378787A1 (en) * 2014-06-27 2015-12-31 Vmware, Inc. Processing workloads in single-threaded environments
CN109189653A (zh) * 2018-07-13 2019-01-11 重庆爱奇艺智能科技有限公司 一种用于在虚拟现实设备中进行卡顿调节的方法和装置
CN110647366A (zh) * 2019-09-19 2020-01-03 Oppo广东移动通信有限公司 处理卡顿的方法、装置、终端及存储介质
CN111221654A (zh) * 2020-01-06 2020-06-02 北京小米移动软件有限公司 调度器工作频率调整方法、装置及存储介质
CN112130940A (zh) * 2020-08-25 2020-12-25 北京小米移动软件有限公司 终端的控制方法、装置、存储介质和电子设备
CN112631415A (zh) * 2020-12-31 2021-04-09 Oppo(重庆)智能科技有限公司 Cpu频率调整方法、装置、电子设备及存储介质
CN114442792A (zh) * 2022-02-09 2022-05-06 北京小米移动软件有限公司 处理器的运行频率调整方法、装置及存储介质
CN114699772A (zh) * 2022-04-27 2022-07-05 努比亚技术有限公司 一种处理器动态调频方法、设备及计算机可读存储介质
CN115002542A (zh) * 2022-05-26 2022-09-02 展讯半导体(南京)有限公司 帧率调整方法及装置,计算机可读存储介质、终端
CN115048221A (zh) * 2022-06-27 2022-09-13 Oppo广东移动通信有限公司 负载处理方法、装置、电子设备及计算机可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117687495A (zh) * 2024-02-04 2024-03-12 荣耀终端有限公司 一种数据获取方法、训练方法及电子设备
CN117687495B (zh) * 2024-02-04 2024-07-12 荣耀终端有限公司 一种数据获取方法、训练方法及电子设备

Similar Documents

Publication Publication Date Title
AU2020233755B2 (en) Controlling display performance
US20210232201A1 (en) Resource scheduling method and computer device
US8635475B2 (en) Application-specific power management
KR102490908B1 (ko) 자원 스케줄링 방법 및 단말 장치
CN107506240B (zh) 后台应用程序管控方法、装置、存储介质及电子设备
US20180336060A1 (en) Method, terminal and storage medium for displaying media files
US10706604B2 (en) Controlling display performance using display system hints
CN116089096B (zh) 负载资源调度方法及电子设备
EP3895011B1 (en) Memory crash prevention for a computing device
CN115016866A (zh) 应用启动时的数据处理方法、电子设备及存储介质
CN111625456A (zh) 一种卡顿定位方法和装置
CN116737357A (zh) 一种调整处理器频率的方法及装置
CN116774809A (zh) 调整频率的方法、装置、电子设备及可读存储介质
US11216330B2 (en) Methods and systems for managing an electronic device
CN117130768A (zh) 一种调频关系表的生成方法及电子设备
CN109992363B (zh) 应用程序处理方法和装置、电子设备、计算机可读存储介质
CN111695061A (zh) 一种资源处理方法及装置、设备、存储介质
CN115543551A (zh) 线程调度方法、装置及电子设备
CN115617518A (zh) 线程管理方法、装置、电子设备及存储介质
CN113641431A (zh) 二维码的增强显示的方法和终端设备
CN113687942A (zh) 检测方法、装置及电子设备
CN113721803B (zh) 一种数据生成方法、装置、设备及存储介质
CN114553775B (zh) 流量控制方法、装置
CN107807855B (zh) 应用清理方法、装置、存储介质及电子设备
CN117632460A (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