CN116795514A - 应用程序的线程标识方法、电子设备以及存储介质 - Google Patents
应用程序的线程标识方法、电子设备以及存储介质 Download PDFInfo
- Publication number
- CN116795514A CN116795514A CN202310802208.4A CN202310802208A CN116795514A CN 116795514 A CN116795514 A CN 116795514A CN 202310802208 A CN202310802208 A CN 202310802208A CN 116795514 A CN116795514 A CN 116795514A
- Authority
- CN
- China
- Prior art keywords
- thread
- task
- threads
- application
- electronic device
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000015654 memory Effects 0.000 claims description 24
- 230000008569 process Effects 0.000 claims description 13
- 239000010410 layer Substances 0.000 description 40
- 238000009877 rendering Methods 0.000 description 26
- 238000004891 communication Methods 0.000 description 16
- 238000007726 management method Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 11
- 238000010295 mobile communication Methods 0.000 description 9
- 238000001514 detection method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 206010067959 refractory cytopenia with multilineage dysplasia Diseases 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了应用程序的线程标识方法、电子设备以及存储介质。本申请的方法中,电子设备在执行第一应用的第一任务时,可以检测执行第一任务的多个线程中任意两个线程之间的并行度,并对并行度较高的线程设置一定的标识。电子设备在下一次执行第一任务时,可以直接通过识别标识,确定并行度较高的线程,然后在同一时间段将并行度较高的线程分别分配到处理器不同的核中处理。从而避免因并行度较高的线程在同一时间段被分配到同一个核中处理,导致线程之间发生冲突和竞争,甚至导致线程阻塞,影响应用的运行性能。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种应用程序的线程标识方法、电子设备以及存储介质。
背景技术
随着电子设备功能的不断增加,单核处理器已经难以满足较高性能要求,越来越多的电子设备(例如,手机)使用多核处理器,比如,1+3+4架构的8核处理器。电子设备在执行某个应用(例如,游戏应用)的任务时,可以将执行该任务的多个线程分配到处理器的不同核中并行运行,以提高任务的执行速度。
但是,当同一时刻需要运行的线程数量大于处理器的核数量时,就会出现两个或两个以上的线程被分配到处理器的同一个核中进行运行的情况。在此情况下,如果并行度较高的线程被分配到同一个核中运行,就会导致线程之间因试图同时访问共享资源而产生冲突和竞争,甚至导致线程阻塞,使得应用在运行时出现异常,例如,掉帧、卡顿等,从而影响应用运行的流畅性。
发明内容
本申请的一些实施方式提供了一种应用程序的线程标识方法、电子设备以及计算机可读存储介质,以下从多个方面介绍本申请,以下多个方面的实施方式和有益效果可互相参考。
第一方面,本申请提供了一种应用程序的线程标识方法,用于电子设备,该方法包括:执行第一应用的第一任务;确定执行第一任务的第一线程和第二线程之间的并行度;对应于第一线程和第二线程之间的并行度大于第一阈值,对第一线程设置第一标识,并对第二线程设置第二标识,第一标识和第二标识用于指示电子设备的处理器在同一时间段利用不同核处理第一线程和第二线程。
其中,第一应用可以是游戏应用、浏览器应用、地图应用、邮件应用等应用。第一任务可以是第一应用的界面绘制任务,例如,游戏应用的游戏画面绘制任务。第一线程和第二线程可以是执行游戏画面绘制任务的多个线程中任意两个不同的线程。
根据本申请实施例的方法,电子设备在执行第一应用(例如游戏应用)的第一任务(例如游戏画面绘制任务)的过程中,可以获取执行第一任务的第一线程和第二线程之间的并行度。其中,线程之间的并行度可以基于线程之间并行运行的时长确定,例如,线程之间并行运行的时长越长,则线程之间的并行度越高。如果第一线程和第二线程之间的并行度,则可以对第一线程设置第一标识,对第二线程设置第二标识。电子设备下一次执行第一任务时,在识别到第一标识和第二标识时,可以根据第一标识和第二标识,在同一时间段将第一线程和第二线程分配到不同的核中处理。这样就可以避免因并行度较高的线程在同一时间段被分配到同一个核中处理,而出现线程碰撞,影响第一应用运行的流畅性。
在一些实施方式中,确定执行第一任务的第一线程和第二线程之间的并行度,包括:确定第一线程和第二线程的运行时间;基于运行时间,确定第一线程和第二线程之间并行运行的第一时长;基于第一时长,确定并行度。
其中,第一时长可以是线程之间的并行运行时长。
线程之间的并行运行时长,可以反映线程之间的并行度。比如,线程之间的并行运行时长越长,表明线程之间的并行度越高。反之,线程之间的并行运行时长越短,表明线程之间的并行度越低。根据线程之间的并行运行时长,确定线程之间的并行度,有利于提高并行度的准确性。
在一些实施方式中,运行时间包括起始运行时间和结束运行时间;基于运行时间,确定第一线程和第二线程之间并行运行的第一时长,包括:基于起始运行时间和结束运行时间,确定第一线程的第一运行时间区间以及第二线程的第二运行时间区间;对第一运行时间区间和第二运行时间区间进行比较,以确定第一运行时间区间和第二运行时间区间之间的重合时间区间;将重合时间区间的时长作为第一时长。
直接将线程之间运行时间区间的重合时间区间的时长作为第一运行时长,可以较好的反映线程之间并行运行的情况。
在一些实施方式中,在第一任务执行结束时,第一线程或第二线程仍处于运行状态的情形中,第一线程或第二线程的结束运行时间是基于第一任务的结束时间确定。
电子设备在执行第一任务时,当第一任务结束时,执行第一任务的线程可能由于还要处理其他任务,而并未结束。此时,可以根据第一任务的结束时间确定该线程的结束运行时间。例如,直接将第一任务的结束时间作为该线程的结束运行时间,或者,给第一任务的结束时间加上一个定量(例如,-1ms,+1ms等)作为该线程的结束运行时间。如此,可以提高时间确定准确性。
在一些实施方式中,方法还包括:在电子设备下一次执行第一任务时,对应于识别到第一标识和第二标识,电子设备的处理器在同一时间段利用不同核处理第一线程和第二线程。
由于并行度较高的线程被设置了标识,电子设备在下一次执行第一任务时,就可以直接通过识别线程的标识,确定并行度较高的线程,然后在同一时间段直接将并行度较高的线程分配到处理器不同的核中处理。
在一些实施方式中,第一阈值基于第一任务执行的第二时长确定。
在一些实施方式中,第一阈值基于第一任务执行的第二时长确定,包括:将第二时长的一半时长的对应参数确定为第一阈值。
在一些实施方式中,第一任务为第一应用的界面绘制任务。
如果第一应用是游戏应用,则第一应用的界面绘制任务可以是游戏画面的绘制任务。
第二方面,本申请实施方式提供了一种电子设备,包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令;处理器,当处理器执行存储器中的指令时,可使得电子设备执行本申请第一方面所述的方法。第二方面能达到的有益效果可参考第一方面任一实施方式所提供的方法的有益效果,此处不再赘述。
第三方面,本申请实施方式提供了一种计算机可读存储介质,计算机可读存储介质上存储有指令,该指令在计算机上执行时可使计算机执行第一方面任一实施方式所述的方法。第三方面能达到的有益效果可参考第一方面任一实施方式所提供的方法的有益效果,此处不再赘述。
附图说明
图1为本申请实施例的示例性应用场景;
图2为本申请实施例提供的应用程序的线程标识方法的流程示意图;
图3为本申请实施例提供的游戏画面绘制的原理示例图;
图4为本申请实施例提供的处理器的结构示例图;
图5为本申请实施例提供的线程运行时间的示例图一;
图6为本申请实施例提供的安卓系统构架的示例图;
图7为本申请实施例提供的游戏应用的线程分配方法示例图;
图8为示出了的统计线程间并行度的示例性表格;
图9为本申请实施例提供的线程运行时间的示例图二;
图10示出了本申请实施例提供的电子设备的构造示意图。
具体实施方式
本申请实施方式用于提供一种应用程序的线程标识方法。通过本申请提供的方法,可以将并行度较高的线程分配到不同的处理器核中运行,以减少线程之间的冲突和竞争,避免影响应用运行时的流畅性。
图1示出了本申请的示例性应用场景。参考图1,电子设备100上安装有游戏应用。当电子设备100运行游戏应用时,为了保证游戏画面的流畅性,电子设备100需要不断地执行游戏画面的绘制任务,以实时绘制出最新的游戏画面,对当前显示的游戏画面进行刷新,从而实现游戏画面的动态效果。
游戏画面的绘制任务可以由游戏应用的主线程(即逻辑线程)、渲染线程以及多个工作线程共同执行。在游戏应用运行的过程中,当执行画面绘制任务的线程数量小于或等于处理器的核数量时,可以将这些线程分配到处理器的各个核中并行运行,以提升画面绘制任务的执行速度,避免出现掉帧、卡顿等异常现象。
而当执行画面绘制任务的线程数量大于处理器的核数量时,就需要将部分线程分配到处理器的同一个核中运行。此时,如果并行度较高的线程被分配到同一个核上运行,这些线程在运行时就会发生碰撞,甚至导致线程阻塞,从影响游戏应用运行的流畅性。线程碰撞指两个或两个以上的线程试图同时访问共享资源(例如,相同的文件、输入输出接口、网络接口等资源),而产生冲突和竞争。
为了解决上述技术问题,本实施例提供了一种应用程序的线程标识方法。本实施例提供的方法中,电子设备在执行游戏应用(作为第一应用的示例)的游戏画面绘制任务(作为第一任务的示例)的过程中,可以获取执行画面绘制任务的多个线程之间的并行度。其中,线程之间的并行度可以基于线程之间并行运行的时长确定,例如,线程之间并行运行的时长越长,则线程之间的并行度越高。对于并行度较高的线程,可以进行标识,以在下一次执行游戏画面绘制任务时,可以根据标识识别并行度较高的线程,并在同一时间段将其分配到处理器不同的核中运行,这样就可以避免线程之间出现碰撞,影响游戏应用运行的流畅性。
本申请对电子设备100的具体形式不作限定,电子设备100可以是手机、笔记本电脑、平板、大屏设备、可穿戴设备(例如,手表,智能眼镜,头盔),台式电脑、增强现实(Augmented Reality,AR)/虚拟现实(Virtual Reality,VR)设备、个人数字助理(PersonalDigital Assistant,PDA)等。下文将手机作为电子设备100的示例。
以下介绍本申请实施例提供的应用程序的线程标识方法的具体步骤。
参考图2,本申请实施例提供的应用程序的线程标识方法,包括以下步骤:
S101:运行第一应用。
下面将游戏应用作为第一应用的示例,将游戏画面绘制任务作为第一任务的示例,对本申请实施例进行叙述说明。但本申请不限于此,第一应用也可以是浏览器应用、地图应用、邮件应用等其他应用,第一任务也可以是交互任务、数据管理任务等其他任务。
当手机接收到用户针对游戏应用的启动操作时,启动该游戏应用并运行。
S102:基于第一应用执行第一任务,获取执行第一任务的多个线程之间的并行度。
在一些实施例中,手机在运行游戏应用时,可以调用Unity引擎(一种游戏引擎)中的多个线程执行游戏画面的绘制任务。
参考图3,在对游戏应用的画面进行绘制时,Unity引擎中的主线程可以将客户端的渲染命令(rendering commands,RCMD)分发给多个工作线程。各个工作线程接收到渲染指令后可以调用GfxDeviceClient类函数执行相应的逻辑处理,例如,执行渲染指令中的各个任务,并在处理完成之后生成渲染指令对应的中间图形命令(intermediate graphicscommands,IGCMD),然后将中间图形命令传递给渲染线程。
渲染线程接收到中间图形命令之后,可以调用GfxDeviceClient类函数进行一些数据处理(例如,可见性剔除处理),并在处理完成之后生成渲染指令对应的图形命令(graphics commands,GCMD),然后将该图形命令提交给图形设备GfxDevice,并最终由GfxDevice该图形命令提交给系统,进行游戏的画面绘制。
参考图4,手机的处理器包括八个核:一个大核A1,三个中核A2、A3、A4,四个小核A5、A6、A7、A8。每个核在同一时刻仅运行一个线程。
在游戏应用初步运行的一段时间内,执行游戏画面绘制任务的线程数量一般少于处理器的核数量。例如,参考图4,游戏画面的绘制任务由线程T1、T2、T3和T4执行。其中,线程T1可以是主线程,线程T2和线程T3可以是工作线程,线程T4可以是渲染线程。此时,可以将线程T1、T2、T3和T4分别分配到处理器的不同核中运行。例如,将线程T1、T2、T3和T4分别分配到处理器的A1、A2、A3、A4中运行。
可以理解,手机在运行游戏应用的过程中,游戏画面是按照一定的节奏进行绘制的。例如,每10ms绘制出一张新的游戏画面,也就是说,手机每10ms执行一次游戏画面的绘制任务。本实施例中,可以将游戏绘制任务的执行时间作为窗口时间。
手机执行完游戏画面的绘制任务后,可以获取每个窗口时间内线程T1、T2、T3和T4的运行时间信息,例如,时间戳。然后根据运行时间信息,确定线程T1、T2、T3和T4各自运行的起始时间和结束时间,并根据该起始时间和结束时间,确定线程T1、T2、T3和T4之间的并行运行时长,作为线程T1、T2、T3和T4之间的并行度。
例如,如图5所示,窗口时间为0~10ms,线程T1的运行时间为0~8ms,线程T2的运行时间为8.5~10ms,线程T3的运行时间为3~10ms,线程T4的运行时间为2~8ms。由此可知,线程T1与线程T2之间的并行运行时长为0ms。线程T1与线程T3之间的并行运行时长为5ms。线程T1与线程T4之间的并行运行时长为6ms。
在另一些实施例中,也可以将手机刷新一次屏幕的时间作为窗口时间。例如,若手机的屏幕刷新率为60Hz,即手机约每隔16ms刷新一次屏幕,则窗口时间可以为16ms。
S103:基于该并行度大于第一阈值,将该并行度对应的线程确定为相关线程,其中,相关线程在同一时间段仅可分配到处理器的不同核中运行。
在一些实施例中,可以将窗口时间的一半时长作为第一阈值,例如,窗口时间的时长为10ms,则第一阈值可以为5ms。由于线程T1和线程T4之间的并行运行时长为6ms,大于5ms,可以认为线程T1和线程T4之间的并行度较高,将线程T1和线程T4确定为相关线程。作为相关线程的线程T1和线程T4仅可分配到处理器的不同核中。
在确定线程T1和线程T4确定为相关线程之后,可以对线程T1和线程T4进行标记。例如,对线程T1设置第一标识,以及对线程T4设置第二标识。第一标识和第二标识用于指示手机的处理器在同一时间段利用不同的核处理线程T1和线程T4。
在一些实施例中,第一标识和第二标识相同。当手机下一次执行游戏画面绘制任务时,在同一时间段将携带有相同标识的线程T1和线程T4分配到处理器不同的核中运行,以避免发生线程碰撞。综上,本申请实施例可以检测并行度较高的线程,并对并行度较高的线程进行标记。系统中的线程调度器可以根据该标记识别并行度较高的线程,这样线程调度器在对线程进行分配时,就可以将并行度较高的线程分配到处理器的不同核中运行,从而避免发生线程碰撞,导致应用的运行出现掉帧、卡顿等异常现象。
下边以手机为例对电子设备的结构进行介绍。参考图6,手机的安卓系统包括应用层、本地服务层和内核层。其中,应用层包括游戏应用。
本地服务层包括绘帧窗口识别模块和游戏渲染线程识别模块。绘帧窗口识别模块用于识别绘制游戏画面的窗口时间。游戏渲染线程识别模块用于识别渲染线程。
内核层包括游戏关键线程识别模块,线程运行信息记录模块,线程并行度检测模块和线程选核优化模块。游戏关键线程识别模块用于执行游戏画面绘制任务的多个线程(称为“关键线程”)。线程运行信息记录模块用于记录线程的运行时间信息。线程并行度检测模块用于检测线程之间的并行度。线程选核优化模块用于对执行游戏画面绘制任务的多个线程进行选核分配。在一些实施例中,线程选核优化模块可以是线程调度器。
在图6的基础上,对本申请的技术方案进一步进行说明,参考图7,本申请实施例提供的应用程序的线程标识方法包括以下步骤:
S201:应用层运行游戏应用。
S202:应用层向本地服务层发送渲染指令。
在游戏应用运行的过程中,当需要执行游戏的绘制任务时,应用层可以向本地服务层发送渲染指令。
S203:本地服务层识别渲染线程。
在本地服务层接收到应用层发送的渲染指令后,本地服务层中的游戏渲染线程识别模块可以识别渲染线程。
S204:本地服务层向内核层发送渲染线程的标识符。
本地服务层中的游戏渲染线程识别模块识别到渲染线程后,可以获取渲染线程的标识符,并将该标识符发送到内核层。
S205:内核层依据唤醒关系识别游戏应用的多个线程。
在内核层接收到渲染线程的标识符后,内核层中的游戏关键线程识别模块可以依据设定的唤醒关系识别执行游戏画面绘制任务的多个线程。在一些实施例中,唤醒关系可以是线程的唤醒顺序。
S206:本地服务层通知绘制开始。
在识别执行游戏画面绘制任务的多个线程之后,本地服务层中的绘帧窗口识别模块可以确定游戏画面绘制任务的起始时间,并在当前时刻为游戏画面绘制任务的起始时间时,向内核层通知游戏画面绘制任务开始执行。
S207:内核层记录每个线程的运行时间信息。
内核层接收到本地服务层发送给绘制开始通知后,运行用于执行游戏画面绘制任务的多个线程,以绘制游戏画面。并且,内核层中的线程运行信息记录模块可以记录每个线程的运行时间信息。
S208:本地服务层通知绘制结束。
本地服务层中的绘帧窗口识别模块可以确定游戏画面绘制任务的结束时间,并在当前时间为游戏画面绘制任务的结束时间时,通知内核层游戏画面绘制结束。
S209:内核层获取绘帧窗口时间内各个线程之间的并行度。
在内核层接收到本地服务层发送的绘制结束通知后,内核层中的线程运行信息记录模块可以将运行时间信息发送给内核层中的线程并行度检测模块。线程并行度检测模块接收到各个线程的运行时间信息后,可以根据该运行时间信息,确定各个线程之间的并行运行时长,并将该并行运行时长作为并行度。
S210:内核层识别并行度超过绘帧窗口时间一半的线程,并对该线程设置特殊标识。
内核层中的线程并行度检测模块在获取到各个线程之间的并行运行时长之后,可以识别并行运行时长超过绘帧窗口时间一半的线程,也就是并行度较高的线程,并对这些线程设置特殊标识。例如,对并行度较高的线程设置相同的标识。
S211:内核层获取每个线程的标识,根据该标识确定并行度较高的线程,并将并行度较高的线程分配到处理器的不同核中运行。
在下次执行游戏画面的绘制任务之前,内核层中的线程选核优化模块可以获取每个线程的标识,并识别携带有相同标识的线程,即并行度较高的线程,然后将并行度较高的线程分配到处理器的不同核中运行。并且,即使在游戏应用运行的过程中,线程的数量增多,使得线程数量大于处理器的核数量,线程选核优化模块也不会将并行度较高的线程分配到同一个核中运行,从而可以减少线程之间的冲突和竞争,避免游戏出现掉帧和卡顿。
可以理解,在游戏应用运行的过程中,每次执行游戏画面的绘制任务时,绘制的游戏画面不同,执行游戏画面绘制任务的线程的类型、数量、运行时间等会可能发生变化。为了提升并行度检测的准确性,在游戏应用运行的过程中,在每次绘制完成游戏画面之后,将各个线程之间的并行度统计到表格中,然后根据表格中的数据确定线程之间的并行关系。
示例性地,记录前一百次执行游戏画面的窗口时间内作为检测线程的线程T1与其他被检测线程之间的并行度,得到如图8所示的表格。其中,被检测线程包括线程T2、线程T3和线程T4。绘制游戏画面的窗口时间为10ms。线程T1的运行时长为8ms,线程T2的运行时长为1.5ms,线程T3的运行时长为7ms,线程T4的运行时长为6ms。
根据图6所示的表格可知,线程T1与线程T2的并行运行时长为0ms的频次为100次,表明线程T1与线程T2完全不并行运行。也就是,线程T1和线程T2的运行时间区间完全不重叠,属于不包含关系。
线程T1与线程T3之间,并行运行时长为1ms的频次为3次,并行运行时长为5ms的频次为90次,并行运行时长为6ms的频次为5次,并行运行时长为7ms的时长的频次为2次。由于线程T1与线程T3之间并行运行时长为5ms的频次最多,可以认为线程T1与线程T3之间的并行运行时长为5ms。由线程T1的运行时长为8ms,线程T3的运行时长为7ms可知,线程T1和线程T3的运行时间区间部分重叠,也就是说,线程T1和线程T2的运行时间区间属于部分包含关系。
线程T1与线程T4之间并行运行时长为6ms的频次为100次,即每次执行游戏画面的绘制任务时,线程T1与线程T4存在较大概率并行运行6ms。因此,可以认为线程T1与线程T4之间并行运行时长就是6ms。由线程T1的运行时长为8ms,线程T4的运行时长为6ms可知,线程T1与线程T4的重叠运行时间区间是线程T4的运行时间区间,也就是说,线程T1完全包含线程T4,属于全部包含关系。
在一些情况中,参考图9,线程T2在窗口时间内并未执行结束,而是在下一个窗口时间内执行。在此情况下,可以将窗口时间的结束时间作为线程T2的结束运行时间。也可以对窗口时间的结束时间增加一个定量(例如,-1ms,+1ms等)后,作为线程T2的结束运行时间,对此不作限制。这样可以修正线程T2的运行时间信息,有利于上述表格内数据的准确性。
本申请实施例中,在每次绘制游戏画面之前,可以查询上述表格中各个线程之间并行运行时长的频次,以将最高频次的并行运行时长作为对应线程之间实际的并行运行时长。如此,可以提高线程间并行度检测的准确性。
在确定线程之间实际的并行运行时长后,可以根据实际的并行运行时长,确定对应的线程是否为并行度较高的线程。若是,则将该对应线程(例如,线程T1和线程T4)分配到处理器不同核中运行。若否,则不限制该对应线程(例如,线程T1和线程T2)的分配方式。
图10示出了电子设备100的结构示意图。电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接头130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriberidentification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuit sound,I2S)接口,脉冲编码调制(pulse codemodulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purpose input/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接头130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
本申请公开的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的范围。
Claims (10)
1.一种应用程序的线程标识方法,用于电子设备,其特征在于,所述方法包括:
执行第一应用的第一任务;
确定执行所述第一任务的第一线程和第二线程之间的并行度;
对应于所述第一线程和所述第二线程之间的并行度大于第一阈值,对所述第一线程设置第一标识,并对所述第二线程设置第二标识,所述第一标识和第二标识用于指示电子设备的处理器在同一时间段利用不同核处理所述第一线程和所述第二线程。
2.根据权利要求1所述的方法,其特征在于,所述确定执行所述第一任务的第一线程和第二线程之间的并行度,包括:
确定所述第一线程和所述第二线程的运行时间;
基于所述运行时间,确定所述第一线程和所述第二线程之间并行运行的第一时长;
基于所述第一时长,确定所述并行度。
3.根据权利要求2所述的方法,其特征在于,所述运行时间包括起始运行时间和结束运行时间;所述基于所述运行时间,确定所述第一线程和所述第二线程之间并行运行的第一时长,包括:
基于所述起始运行时间和所述结束运行时间,确定所述第一线程的第一运行时间区间以及所述第二线程的第二运行时间区间;
对所述第一运行时间区间和所述第二运行时间区间进行比较,以确定所述第一运行时间区间和所述第二运行时间区间之间的重合时间区间;
将所述重合时间区间的时长作为所述第一时长。
4.根据权利要求3所述的方法,其特征在于,
在所述第一任务执行结束时,所述第一线程或所述第二线程仍处于运行状态的情形中,所述第一线程或所述第二线程的所述结束运行时间是基于所述第一任务的结束时间确定。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述电子设备下一次执行所述第一任务时,对应于识别到所述第一标识和所述第二标识,所述电子设备的处理器在同一时间段利用不同核处理所述第一线程和所述第二线程。
6.根据权利要求1所述的方法,其特征在于,所述第一阈值基于所述第一任务执行的第二时长确定。
7.根据权利要求6所述的方法,其特征在于,所述第一阈值基于所述第一任务执行的第二时长确定,包括:
将所述第二时长的一半时长的对应参数确定为所述第一阈值。
8.根据权利要求1~7任一项所述的方法,其特征在于,所述第一任务为所述第一应用的界面绘制任务。
9.一种电子设备,包括:
存储器,用于存储由所述电子设备的一个或多个处理器执行的指令;
处理器,当所述处理器执行所述存储器中的所述指令时,可使得所述电子设备执行权利要求1~8任一项所述的应用程序的线程标识方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,所述指令在计算机上执行时使得计算机执行权利要求1~8任一项所述的应用程序的线程标识方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310802208.4A CN116795514A (zh) | 2023-06-30 | 2023-06-30 | 应用程序的线程标识方法、电子设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310802208.4A CN116795514A (zh) | 2023-06-30 | 2023-06-30 | 应用程序的线程标识方法、电子设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116795514A true CN116795514A (zh) | 2023-09-22 |
Family
ID=88036374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310802208.4A Pending CN116795514A (zh) | 2023-06-30 | 2023-06-30 | 应用程序的线程标识方法、电子设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116795514A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101131652A (zh) * | 2006-08-21 | 2008-02-27 | 英业达股份有限公司 | 多核多中央处理器的执行线程分配方法 |
US20130103670A1 (en) * | 2011-10-21 | 2013-04-25 | International Business Machines Corporation | Dynamic smt in parallel database systems |
CN103516536A (zh) * | 2012-06-26 | 2014-01-15 | 重庆新媒农信科技有限公司 | 基于线程数量限制的服务器业务请求并行处理方法及系统 |
CN106648546A (zh) * | 2016-09-07 | 2017-05-10 | 北京大学 | 用于gpu寄存器分配和并行度管理的协同优化编译方法 |
CN107025225A (zh) * | 2016-01-30 | 2017-08-08 | 华为技术有限公司 | 一种终端数据库的并行执行方法和装置 |
CN111897647A (zh) * | 2020-09-29 | 2020-11-06 | 杭州未名信科科技有限公司 | 一种多核系统中多线程调度方法、装置及设备 |
CN114035970A (zh) * | 2022-01-10 | 2022-02-11 | 南京云信达科技有限公司 | 一种数据并发竞争冲突检测分析方法及系统 |
-
2023
- 2023-06-30 CN CN202310802208.4A patent/CN116795514A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101131652A (zh) * | 2006-08-21 | 2008-02-27 | 英业达股份有限公司 | 多核多中央处理器的执行线程分配方法 |
US20130103670A1 (en) * | 2011-10-21 | 2013-04-25 | International Business Machines Corporation | Dynamic smt in parallel database systems |
CN103516536A (zh) * | 2012-06-26 | 2014-01-15 | 重庆新媒农信科技有限公司 | 基于线程数量限制的服务器业务请求并行处理方法及系统 |
CN107025225A (zh) * | 2016-01-30 | 2017-08-08 | 华为技术有限公司 | 一种终端数据库的并行执行方法和装置 |
CN106648546A (zh) * | 2016-09-07 | 2017-05-10 | 北京大学 | 用于gpu寄存器分配和并行度管理的协同优化编译方法 |
CN111897647A (zh) * | 2020-09-29 | 2020-11-06 | 杭州未名信科科技有限公司 | 一种多核系统中多线程调度方法、装置及设备 |
CN114035970A (zh) * | 2022-01-10 | 2022-02-11 | 南京云信达科技有限公司 | 一种数据并发竞争冲突检测分析方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114338952B (zh) | 一种基于垂直同步信号的图像处理方法及电子设备 | |
WO2021223539A1 (zh) | 射频资源分配方法及装置 | |
WO2021093626A1 (zh) | 一种内存的管理方法及电子设备 | |
CN116680153B (zh) | 应用帧率平滑方法、电子设备及存储介质 | |
US20230385112A1 (en) | Memory Management Method, Electronic Device, and Computer-Readable Storage Medium | |
WO2021185352A1 (zh) | 一种版本升级方法及相关装置 | |
CN114498028B (zh) | 数据传输方法、装置、设备及存储介质 | |
CN111381996B (zh) | 内存异常处理方法及装置 | |
CN115119048B (zh) | 一种视频流处理方法及电子设备 | |
CN116244008A (zh) | 应用启动方法、电子设备以及存储介质 | |
CN116795514A (zh) | 应用程序的线程标识方法、电子设备以及存储介质 | |
CN114253737B (zh) | 电子设备及其内存回收方法、介质 | |
CN112783418B (zh) | 一种存储应用程序数据的方法及移动终端 | |
CN114461589A (zh) | 读取压缩文件的方法、文件系统及电子设备 | |
CN114995886B (zh) | 一种存储卡的识别方法及电子设备 | |
CN116775345B (zh) | 一种数据传输方法及电子设备 | |
CN116048772B (zh) | 中央处理单元频率的调整方法、装置和终端设备 | |
CN114168065B (zh) | 调整内存配置参数的方法和装置 | |
CN116055443B (zh) | 识别社交场景的方法、电子设备及计算机可读存储介质 | |
CN116662150B (zh) | 应用启动耗时检测方法及相关装置 | |
CN116627855B (zh) | 内存处理方法及相关装置 | |
CN113704209B (zh) | 数据共享方法、电子设备及存储介质 | |
CN116302291B (zh) | 应用显示方法、电子设备以及存储介质 | |
CN115016666B (zh) | 触控处理方法、终端设备以及存储介质 | |
CN113157599B (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 |