CN112732540B - 确定硬件使用率的方法和装置、存储介质、电子设备 - Google Patents

确定硬件使用率的方法和装置、存储介质、电子设备 Download PDF

Info

Publication number
CN112732540B
CN112732540B CN202011438885.5A CN202011438885A CN112732540B CN 112732540 B CN112732540 B CN 112732540B CN 202011438885 A CN202011438885 A CN 202011438885A CN 112732540 B CN112732540 B CN 112732540B
Authority
CN
China
Prior art keywords
current
task
period
time
determining
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011438885.5A
Other languages
English (en)
Other versions
CN112732540A (zh
Inventor
张国映
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Horizon Journey Hangzhou Artificial Intelligence Technology Co ltd
Original Assignee
Horizon Journey Hangzhou Artificial Intelligence Technology 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 Horizon Journey Hangzhou Artificial Intelligence Technology Co ltd filed Critical Horizon Journey Hangzhou Artificial Intelligence Technology Co ltd
Priority to CN202011438885.5A priority Critical patent/CN112732540B/zh
Publication of CN112732540A publication Critical patent/CN112732540A/zh
Priority to US17/543,668 priority patent/US20220188156A1/en
Application granted granted Critical
Publication of CN112732540B publication Critical patent/CN112732540B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/486Scheduler internals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开实施例公开了一种确定硬件使用率的方法和装置、存储介质、电子设备,其中,方法包括:确定当前周期对应的初始周期时长和初始任务时长,并基于硬件模块在当前周期执行至少一个任务;响应于在当前时间点接收到使用率调用请求;基于硬件模块在当前时间点已执行任务的任务时长,以及初始任务时长,确定当前时间点对应的当前任务时长;基于所述当前时间点与所述当前周期对应的起始时间点之间的差值以及所述初始周期时长,确定所述当前时间点对应的当前周期时长;基于所述当前任务时长和所述当前周期时长,确定所述使用率调用请求所请求的所述硬件模块的硬件使用率。本公开在保证硬件使用率准确性的前提下,提高了使用率确定的实时性。

Description

确定硬件使用率的方法和装置、存储介质、电子设备
技术领域
本公开涉及硬件性能监测技术,尤其是一种确定硬件使用率的方法和装置、存储介质、电子设备。
背景技术
汽车自动驾驶***场景以及一些特殊的***场景,对数据处理任务的实时性有较高要求,软件***对运行硬件使用率情况的监测决定着软件对数据处理任务的调度,进而直接影响着数据处理的实时性;在合理分配处理任务的同时,准确的占用率评估对整体***的稳定安全运行起到至关重要的作用。
发明内容
为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种确定硬件使用率的方法和装置、存储介质、电子设备。
根据本公开实施例的一个方面,提供了一种确定硬件使用率的方法,包括:
确定当前周期对应的初始周期时长和初始任务时长,并基于硬件模块在所述当前周期执行至少一个任务;
响应于在当前时间点接收到使用率调用请求;
基于所述硬件模块在所述当前时间点已执行任务的任务时长,以及所述初始任务时长,确定当前时间点对应的当前任务时长;
基于所述当前时间点与所述当前周期对应的起始时间点之间的差值以及所述初始周期时长,确定所述当前时间点对应的当前周期时长;
基于所述当前任务时长和所述当前周期时长,确定所述使用率调用请求所请求的所述硬件模块的硬件使用率。
根据本公开实施例的另一方面,提供了一种确定硬件使用率的装置,包括:
初始化模块,用于确定当前周期对应的初始周期时长和初始任务时长,并基于硬件模块在所述当前周期执行至少一个任务;
请求接收模块,用于在当前时间点接收到使用率调用请求;
任务时长确定模块,用于基于所述硬件模块在所述当前时间点已执行任务的任务时长,以及所述初始任务时长,确定当前时间点对应的当前任务时长;
周期时长确定模块,用于基于所述当前时间点与所述当前周期对应的起始时间点之间的差值以及所述初始周期时长,确定所述当前时间点对应的当前周期时长;
硬件使用率确定模块,用于基于所述当前任务时长和所述当前周期时长,确定所述使用率调用请求所请求的所述硬件模块的硬件使用率。
根据本公开实施例的又一方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述任一实施例所述的确定硬件使用率的方法。
根据本公开实施例的还一方面,提供了一种电子设备,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述任一实施例所述的确定硬件使用率的方法。
基于本公开上述实施例提供的一种确定硬件使用率的方法和装置、存储介质、电子设备,通过结合初始周期时长确定当前周期时长,结合初始任务时长确定当前任务时长,在保证硬件使用率准确性的前提下,提高了使用率确定的实时性,为上层软件实时动态调度硬件处理任务情况提供可靠参考,通过硬件任务调度,避免了硬件模块的过载情况,提高了应用该硬件模块的***的安全性和稳定性。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本公开提供的确定硬件使用率的***的结构示意图。
图2是本公开一示例性实施例提供的确定硬件使用率的方法的流程示意图。
图3a是本公开图2所示的实施例中步骤201的一个流程示意图。
图3b是本公开一示例性实施例提供的确定硬件使用率的方法的一个示例中任务执行周期示意图。
图4是本公开另一示例性实施例提供的确定硬件使用率的方法的流程示意图。
图5是本公开图4所示的实施例中步骤401的一个流程示意图。
图6是本公开图2所示的实施例中步骤203的一个流程示意图。
图7是本公开一示例性实施例提供的确定硬件使用率的装置的结构示意图。
图8是本公开另一示例性实施例提供的确定硬件使用率的装置的结构示意图。
图9是本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于终端设备、计算机***、服务器等电子设备,其可与众多其它通用或专用计算***环境或配置一起操作。适于与终端设备、计算机***、服务器等电子设备一起使用的众所周知的终端设备、计算***、环境和/或配置的例子包括但不限于:个人计算机***、服务器计算机***、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的***、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机***、大型计算机***和包括上述任何***的分布式云计算技术环境,等等。
终端设备、计算机***、服务器等电子设备可以在由计算机***执行的计算机***可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机***/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算***存储介质上。
申请概述
在实现本公开的过程中,发明人发现,现有的确定硬件使用率的方法,通常是在一个定时周期结束后才可以获取该周期的硬件占用率,现有技术至少存在以下问题:硬件使用率的获得不及时,滞后严重。
示例性***
硬件模块使用过程中,首先通过定时器设定定时周期,定时周期内统计所有已处理任务的硬件处理时长之和,然后使用该时长之和与当前计时周期已经历时长的比值,作为当前硬件模块在该定时周期内的使用率。硬件模块可以是任意执行任务处理的硬件模块,例如,图像处理硬件模块、编解码模块、片上***(SOC)芯片中的人工智能(AI)神经网络加速器等。
图1是本公开提供的确定硬件使用率的***的结构示意图。***包括:定时模块101、统计模块102、监控模块103和硬件模块104;
定时模块101,用于设定定时周期的时长,并根据监控模块103中监测到的任务处理频率调整下一定时周期的时长;
统计模块102,用于根据硬件模块104的执行情况,获取任务使用硬件模块104的时间并进行累加,以获得当前定时周期内的硬件使用率,参考定时模块101设定的时长,根据定时周期的到期触发,对统计的信息做周期性重置操作;
监控模块103,监测统计模块102在一个定时周期内统计的任务数量,确定任务处理频率,为定时模块101设定定时时长提供依据;
硬件模块104,为统计模块102获取单个任务的处理时长提供依据,提供依据的方法包含但不限于硬件中断等。
本公开为了实现实时监测硬件的使用率,将前一个定时周期的时长与该周期内所有任务处理时长的总和,分别按预设权重比例计入下一个定时周期计时时长和任务处理时长中,作为下一个统计周期的基数;同步监测任务处理频率,其中,任务处理频率是指在一个定时周期内硬件处理任务的数量,任务处理频率低表示该定时周期内硬件处理的任务少,任务处理频率高表示该定时周期内硬件处理的任务多;当任务处理频率较低时,缩短下一定时周期的时长,任务处理频率较高时增加下一定时周期的时长。本公开通过使用处理时长和定时周期结合的方式,在保证硬件使用率确定准确性的前提下,提高了硬件使用率确定的实时性,为上层软件实时动态调度硬件处理任务提供可靠参考,提高应用该硬件模块的***的安全性和稳定性。
示例性方法
图2是本公开一示例性实施例提供的确定硬件使用率的方法的流程示意图。本实施例可应用在电子设备上,如图2所示,包括如下步骤:
步骤201,确定当前周期对应的初始周期时长和初始任务时长,基于硬件模块在当前周期执行至少一个任务。
其中,初始周期时长和初始任务时长可根据当前周期之前的上一周期中的总时长和总任务时长确定,通过增加初始周期时长和初始任务时长,实现了在当前周期内可在任意实现获取硬件的使用率,而不会出现由于当前周期开始时间较短而无法计算的情况。
步骤202,响应于在当前时间点接收到使用率调用请求。
本实施例中的使用率调用是根据用户发出的使用率调用请求反馈的,在当前周期开始后的任意时刻都可接收使用率调用请求。
步骤203,基于硬件模块在当前时间点已执行任务的任务时长以及初始任务时长,确定当前时间点对应的当前任务时长。
可选地,将硬件模块在从当前周期开始到当前时间点为止这段时间内执行任务的时间作为任务时长,将任务时长加上初始任务时长,作为当前时间点对应的当前任务时长。
步骤204,基于当前时间点与当前周期对应的起始时间点之间的差值以及初始周期时长,确定当前时间点对应的当前周期时长。
本实施例中,当前时间点与当前周期的起始时间点之间的差值与初始周期时长之和,作为当前时间点的当前周期时长,即,在当前周期已经经过的时长与初始周期时长之和作为当前周期时长。
步骤205,基于当前任务时长和当前周期时长,确定使用率调用请求所请求的硬件模块的硬件使用率。
可选地,可基于当前任务时长除以当前周期时长,以得到的数值(例如,表示为小数或百分数)表示硬件模块在当前时间点的硬件使用率。
本公开上述实施例提供的一种确定硬件使用率的方法,通过结合初始周期时长确定当前周期时长,结合初始任务时长确定当前任务时长,在保证硬件使用率准确性的前提下,提高了使用率确定的实时性,为上层软件实时动态调度硬件处理任务情况提供可靠参考,通过硬件任务调度,避免了硬件模块的过载情况,提高了应用该硬件模块的***的安全性和稳定性。
如图3a所示,在上述图2所示实施例的基础上,步骤201可包括如下步骤:
步骤2011,获得当前周期之前的上一周期的总时长和总任务时长。
在一个可选示例中,硬件模块按照图3b所示的定时周期进行任务处理,其中,在第一个周期交界之后,以上一周期的总时长301确定初始周期时长,以上一周期中处理任务的总任务时长302确定初始任务时长。
步骤2012,基于上一周期的总时长和预设权重比例,确定当前周期对应的初始周期时长。
可选地,如图3b所示本实施例中的初始周期时长304以上一周期的总时长301乘以预设权重比例得到,其中预设权重比例可以根据实际场景进行设置,例如,设置为1/64,此时,得到的初始周期时长304是上一周期的总时长301的1/64。
步骤2013,基于上一周期的总任务时长和预设权重比例,确定当前周期对应的初始任务时长。
可选地,如图3b所示本实施例中的初始任务时长306以上一周期的总任务时长302乘以预设权重比例得到,其中预设权重比例可以根据实际场景进行设置,例如,设置为1/64,此时,得到的初始任务时长306是上一周期的总任务时长302的1/64。
本实施例中,结合图3b所示,如当前时间在竖直实线处,那么当前硬件对应的当前时间点与当前周期对应的起始时间点之间的差值表示为图3b中的303,当前硬件在当前时间点已执行任务的任务时长在图中表示为305,此时对应的当前任务时长为305+306,当前周期时长为303+304,即硬件使用率=(305+306)/(303+304)。
本实施例通过预设权重比例的方式结合前后定时周期内任务的处理时长,即可实现占用率统计的实时性,又可保证不同周期间占用率的平稳过渡。
图4是本公开另一示例性实施例提供的确定硬件使用率的方法的流程示意图。如图4所示,包括如下步骤:
步骤401,基于上一周期中执行任务的总数量,确定当前周期的当前周期时长。
该步骤可基于上述图1提供的实施例中的定时模块101实现,基于监控模块103确定的任务处理频率得到上一周期执行任务的总数量,基于该总数量确定当前周期的时长。
步骤402,确定当前周期对应的初始周期时长和初始任务时长,基于硬件模块在当前周期执行至少一个任务。
该步骤的实现及效果可参照上述实施例中步骤201,在此不再赘述。
步骤403,响应于在当前时间点接收到使用率调用请求。
该步骤的实现及效果可参照上述实施例中步骤202,在此不再赘述。
步骤404,基于硬件模块在当前时间点已执行任务的任务时长以及初始任务时长,确定当前时间点对应的当前任务时长。
该步骤的实现及效果可参照上述实施例中步骤203,在此不再赘述。
步骤405,基于当前时间点与当前周期对应的起始时间点之间的差值,以及初始周期时长,确定当前时间点对应的当前周期时长。
该步骤的实现及效果可参照上述实施例中步骤204,在此不再赘述。
步骤406,基于当前任务时长和当前周期时长,确定使用率调用请求所请求的硬件模块的硬件使用率。
该步骤的实现及效果可参照上述实施例中步骤205,在此不再赘述。
本实施例中,根据任务处理频率调整当前周期的时长,实现了针对任务处理频率进行的任务调度,避免了硬件模块的过载情况,提高了应用该硬件模块的***的安全性和稳定性。
如图5所示,在上述图4所示实施例的基础上,步骤401可包括如下步骤:
步骤4011,获取上一周期对应的上一周期时长。
由于当前周期时长是以上一周期时长为基础进行变化得到的,因此,在本实施例中,首先获得上一周期时长,以作为当前周期时长的基础。
步骤4012,基于上一周期时长内执行任务的总数量与第一设定数量及第二设定数量之间的大小关系,确定当前周期的当前周期时长。
本实施例的实现可依靠上述图1提供的实施中的定时模块101实现,定时模块101的定时过程可包括:在***启动阶段定时模块101开始启动,可选地,具有初始值,该初始值可根据实际场景进行设置,例如,1秒等,设置初始值的目的在于,在当前周期之前没有已执行的上一周期的情况下使当前周期对应的周期时长不为0;从监控模块103中获取硬件的任务处理频率,初始化时,由于还未获取到任务处理频率,因此获取的任务处理频率为0;根据任务处理频率,判断是否修改上一定时周期的时长,若需要修改,修改定时周期时长之后,将修改后的时长通过定时模块101作为下一定时周期的时长;否则,将上一定时周期的时长通过定时模块101作为下一定时周期的时长。而当当前周期到期,会产生到期触发,触发通知统计模块102对所有任务时长进行累加的重置操作,重新执行定时模块101中的全部过程,以当前周期的任务处理频率确定下一周期的周期时长。
本实施例通过上一周期内执行任务的总数量,确定当前周期的当前周期时长,使当前周期的时长更适合硬件模块现在处理的任务情况,例如,上一周期内处理任务数量较多,说明现在处理的任务频率较高,本实施例可调整当前周期的时长比上一周期的时长长,避免了硬件模块由于短时间内处理大量任务而产生的过载问题,提高了硬件模块的安全性,延长了硬件模块的使用寿命。具体地,确定当前周期时长的情况可包括以下三种情况:
若上一周期时长内执行任务的总数量小于或者等于第一设定数量,通过将上一周期时长降低第一预设时长,得到当前周期的当前周期时长;
若上一周期时长内执行任务的总数量大于或等于第二设定数量,通过将上一周期时长提高第二预设时长,得到当前周期的当前周期时长;
若上一周期时长内执行任务的总数量大于第一设定数量并小于第二设定数量,以上一周期时长作为当前周期的当前周期时长。
本实施例中,上一周期时长内执行任务的总数量可根据硬件模块每次执行完一个任务产生的硬件中断触发累计确定,每次接收一个硬件中断触发,对执行任务的数量累计加一,当接收到时长到期产生的到期触发,结束累计,得到上一周期内执行的任务总数量,其中,第一设定数量小于第二设定数量,通过第一设定数量和第二设定数量实现了当前周期的时长调整,当上一周期处理任务的总数量小于或者等于第一设定数量时,使当前周期的时长小于上一周期的时长,以提高硬件模块的利用率;当上一周期处理任务的总数量大于或等于第二设定数量时,使当前周期的时长大于上一周期的时长,以避免硬件模块由于短时间处理过多任务而发生过载问题。
如图6所示,在上述图2所示实施例的基础上,步骤203可包括如下步骤:
步骤2031,根据在当前时间点之前接收到的硬件模块的中断触发的次数,确定已执行的任务数量。
其中,每次中断触发对应一个任务执行完成。
可选地,已执行的任务数量可以为0,即,当前时间点硬件模块还未完成处理完一个任务,未产生过中断触发;硬件模块每处理完一个任务会产生一次中断触发,可选地,在图1所示实施例中,通过统计模块102接收硬件模块发出的中断触发,并对中断触发的次数进行统计,并将统计结果发送到监控模块103。
步骤2032,基于任务数量确定已执行任务中每个已执行任务对应的任务时长。
例如,如图1提供的实施例所示,统计模块102接收硬件模块发出的中断触发之后,累计任务处理时长到任务处理总时长,得到当前时间点对应的已执行任务对应的任务时长,当然的,当已执行任务数量为0个时,该任务时长为0。
步骤2033,确定当前时间点与最近接收的中断触发之间执行任务的未完成任务时长。
如图3b所示,当前时间点与上一个已执行任务之间存在一个未完成任务,此时,该任务未完成,但已执行一段时间,但统计模块102未接收到中断触发,可通过上一个中断触发之后的任务执行时间确定该未完成任务时长,当然,该未完成任务时长也可以为0,此时可包括两种情况:一种是当前周期还未执行任何任务,另一种是当前周期在当前时间点刚结束一个任务的执行。
步骤2034,基于已执行任务对应的任务时长、未完成任务时长和初始任务时长的累加值,确定当前时间点对应的当前任务时长。
可选地,以已执行任务对应的任务时长、未完成任务时长和初始任务时长的和,作为当前任务时长,使当前任务时长的值更准确。
本实施例中,通过监控模块对处理任务的监测,能够更好的反映硬件的处理状态,提高占用率统计的准确性;并且,通过结合初始任务时长确定当前任务时长,避免了当前周期刚开始,未处理任务时无法获得硬件使用率的问题,保证了不同周期间占用率的平稳过渡。
本公开实施例提供的任一种确定硬件使用率的方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:终端设备和服务器等。或者,本公开实施例提供的任一种确定硬件使用率的方法可以由处理器执行,如处理器通过调用存储器存储的相应指令来执行本公开实施例提及的任一种确定硬件使用率的方法。下文不再赘述。
示例性装置
图7是本公开一示例性实施例提供的确定硬件使用率的装置的结构示意图。如图7所示,本实施例提供的装置包括:
初始化模块71,用于确定当前周期对应的初始周期时长和初始任务时长,并基于硬件模块在当前周期执行至少一个任务。
请求接收模块72,用于在当前时间点接收到使用率调用请求。
任务时长确定模块73,用于基于硬件模块在当前时间点已执行任务的任务时长,以及初始化模块71确定的初始任务时长,确定当前时间点对应的当前任务时长。
周期时长确定模块74,用于基于当前时间点与当前周期对应的起始时间点之间的差值,以及初始化模块确定71的初始周期时长,确定当前时间点对应的当前周期时长。
硬件使用率确定模块75,用于基于任务时长确定模块73确定的当前任务时长和周期时长确定模块74确定的当前周期时长,确定使用率调用请求所请求的硬件模块的硬件使用率。
本公开上述实施例提供的一种确定硬件使用率的装置,通过结合初始周期时长确定当前周期时长,结合初始任务时长确定当前任务时长,在保证硬件使用率准确性的前提下,提高了使用率确定的实时性,为上层软件实时动态调度硬件处理任务情况提供可靠参考,通过硬件任务调度,避免了硬件模块的过载情况,提高了应用该硬件模块的***的安全性和稳定性。
图8是本公开另一示例性实施例提供的确定硬件使用率的装置的结构示意图。如图8所示,本实施例提供的装置中,初始化模块71包括:
上一周期统计单元711,用于获得当前周期之前的上一周期的总时长和总任务时长。
初始周期时长确定单元712,用于基于上一周期的总时长和预设权重比例,确定当前周期对应的初始周期时长。
初始任务时长确定单元713,用于基于上一周期的总任务时长和预设权重比例,确定当前周期对应的初始任务时长。
本实施例提供的装置中,在初始化模块71之前还可以包括:
周期时长调整模块76,用于基于上一周期中执行任务的总数量,确定当前周期的当前周期时长。
可选地,周期时长调整模块76包括:
上一周期时长获取单元761,用于获取上一周期对应的上一周期时长。
时长调整单元762,用于基于上一周期时长内执行任务的总数量与第一设定数量及第二设定数量之间的大小关系,确定当前周期的当前周期时长。
可选地,时长调整单元762具体用于:若上一周期时长内执行任务的总数量小于或者等于所述第一设定数量,通过将上一周期时长降低第一预设时长,得到当前周期的当前周期时长;若上一周期时长内执行任务的总数量大于或等于第二设定数量,通过将上一周期时长提高第二预设时长,得到当前周期的当前周期时长;若上一周期时长内执行任务的总数量大于第一设定数量并小于第二设定数量,以上一周期时长作为当前周期的当前周期时长。
任务时长确定模块73,包括:
任务数量统计单元731,用于根据在当前时间点之前接收到的硬件模块的中断触发的次数,确定已执行的任务数量。
其中,每次中断触发对应一个任务执行完成。
已执行任务时长统计单元732,用于基于任务数量确定已执行任务中每个已执行任务对应的任务时长。
未完成任务时长确定单元733,用于确定当前时间点与最近接收的中断触发之间执行任务的未完成任务时长。
当前任务时长确定单元734,用于基于已执行任务对应的任务时长、未完成任务时长和初始任务时长的累加值,确定当前时间点对应的当前任务时长。
示例性电子设备
下面,参考图9来描述根据本公开实施例的电子设备。该电子设备可以是第一设备100和第二设备200中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。
图9图示了根据本公开实施例的电子设备的框图。
如图9所示,电子设备90包括一个或多个处理器91和存储器92。
处理器91可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备90中的其他组件以执行期望的功能。
存储器92可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器91可以运行所述程序指令,以实现上文所述的本公开的各个实施例的确定硬件使用率的方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备90还可以包括:输入装置93和输出装置94,这些组件通过总线***和/或其他形式的连接机构(未示出)互连。
例如,在该电子设备是第一设备100或第二设备200时,该输入装置93可以是上述的麦克风或麦克风阵列,用于捕捉声源的输入信号。在该电子设备是单机设备时,该输入装置13可以是通信网络连接器,用于从第一设备100和第二设备200接收所采集的输入信号。
此外,该输入设备93还可以包括例如键盘、鼠标等等。
该输出装置94可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出设备94可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图9中仅示出了该电子设备90中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备90还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的确定硬件使用率的方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的确定硬件使用率的方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于***实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、***的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、***。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (8)

1.一种确定硬件使用率的方法,包括:
确定当前周期对应的初始周期时长和初始任务时长,基于硬件模块在所述当前周期执行至少一个任务;
响应于在当前时间点接收到使用率调用请求;
基于所述硬件模块在所述当前时间点已执行任务的任务时长以及所述初始任务时长,确定当前时间点对应的当前任务时长;
基于所述当前时间点与所述当前周期对应的起始时间点之间的差值以及所述初始周期时长,确定所述当前时间点对应的当前周期时长;
基于所述当前任务时长和所述当前周期时长,确定所述使用率调用请求所请求的所述硬件模块的硬件使用率;
其中,所述确定当前周期对应的初始周期时长和初始任务时长,包括:
获得所述当前周期之前的上一周期的总时长和总任务时长;
基于所述上一周期的总时长和预设权重比例,确定所述当前周期对应的初始周期时长;
基于所述上一周期的总任务时长和所述预设权重比例,确定所述当前周期对应的初始任务时长。
2.根据权利要求1所述的方法,在确定当前周期对应的初始周期时长和初始任务时长,并基于硬件模块在所述当前周期执行至少一个任务之前,还包括:
基于所述上一周期中执行任务的总数量,确定所述当前周期的当前周期时长。
3.根据权利要求2所述的方法,其中,所述基于所述上一周期中执行任务的总数量,确定所述当前周期的当前周期时长,包括:
获取所述上一周期对应的上一周期时长;
基于所述上一周期时长内执行任务的总数量与第一设定数量及第二设定数量之间的大小关系,确定所述当前周期的当前周期时长。
4.根据权利要求3所述的方法,其中,所述基于所述上一周期时长内执行任务的总数量与第一设定数量及第二设定数量之间的大小关系,确定所述当前周期的当前周期时长,包括:
若所述上一周期时长内执行任务的总数量小于或者等于所述第一设定数量,通过将所述上一周期时长降低第一预设时长,得到所述当前周期的当前周期时长;
若所述上一周期时长内执行任务的总数量大于或等于所述第二设定数量,通过将所述上一周期时长提高第二预设时长,得到所述当前周期的当前周期时长;
若所述上一周期时长内执行任务的总数量大于所述第一设定数量并小于所述第二设定数量,以所述上一周期时长作为所述当前周期的当前周期时长。
5.根据权利要求1-4任一所述的方法,其中,所述基于所述硬件模块在所述当前时间点已执行任务的任务时长以及所述初始任务时长,确定当前时间点对应的当前任务时长,包括:
根据在所述当前时间点之前接收到的所述硬件模块的中断触发的次数,确定已执行的任务数量;其中,每次所述中断触发对应一个任务执行完成;
基于所述任务数量确定所述已执行任务中每个已执行任务对应的任务时长;
确定所述当前时间点与最近接收的所述中断触发之间执行任务的未完成任务时长;
基于所述已执行任务对应的任务时长、所述未完成任务时长和所述初始任务时长的累加值,确定所述当前时间点对应的所述当前任务时长。
6.一种确定硬件使用率的装置,包括:
初始化模块,用于确定当前周期对应的初始周期时长和初始任务时长,并基于硬件模块在所述当前周期执行至少一个任务;
请求接收模块,用于在当前时间点接收到使用率调用请求;
任务时长确定模块,用于基于所述硬件模块在所述当前时间点已执行任务的任务时长,以及所述初始化模块确定的初始任务时长,确定当前时间点对应的当前任务时长;
周期时长确定模块,用于基于所述当前时间点与所述当前周期对应的起始时间点之间的差值以及所述初始化模块确定的初始周期时长,确定所述当前时间点对应的当前周期时长;
硬件使用率确定模块,用于基于所述任务时长确定模块确定的当前任务时长和所述周期时长确定模块确定的当前周期时长,确定所述使用率调用请求所请求的所述硬件模块的硬件使用率;
其中,所述初始化模块包括:
上一周期统计单元,用于获得所述当前周期之前的上一周期的总时长和总任务时长;
初始周期时长确定单元,用于基于所述上一周期的总时长和预设权重比例,确定所述当前周期对应的初始周期时长;
初始任务时长确定单元,用于基于所述上一周期的总任务时长和所述预设权重比例,确定所述当前周期对应的初始任务时长。
7.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-5任一所述的确定硬件使用率的方法。
8.一种电子设备,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-5任一所述的确定硬件使用率的方法。
CN202011438885.5A 2020-12-11 2020-12-11 确定硬件使用率的方法和装置、存储介质、电子设备 Active CN112732540B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011438885.5A CN112732540B (zh) 2020-12-11 2020-12-11 确定硬件使用率的方法和装置、存储介质、电子设备
US17/543,668 US20220188156A1 (en) 2020-12-11 2021-12-06 Method and apparatus for determining hardware usage, storage medium, and electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011438885.5A CN112732540B (zh) 2020-12-11 2020-12-11 确定硬件使用率的方法和装置、存储介质、电子设备

Publications (2)

Publication Number Publication Date
CN112732540A CN112732540A (zh) 2021-04-30
CN112732540B true CN112732540B (zh) 2023-02-21

Family

ID=75598952

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011438885.5A Active CN112732540B (zh) 2020-12-11 2020-12-11 确定硬件使用率的方法和装置、存储介质、电子设备

Country Status (2)

Country Link
US (1) US20220188156A1 (zh)
CN (1) CN112732540B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113590448A (zh) * 2021-08-04 2021-11-02 特瓦特能源科技有限公司 一种cpu使用率模拟方法、装置及电子设备
CN117234696B (zh) * 2023-11-13 2024-01-19 北京控制工程研究所 高频率gnc***多任务执行策略的确定方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102110043A (zh) * 2010-12-30 2011-06-29 上海顶竹通讯技术有限公司 一种cpu占用率的计算方法及装置
JP2015225399A (ja) * 2014-05-26 2015-12-14 ソフトバンク株式会社 業務処理システム、業務処理能力の監視システムおよび監視方法
CN108196995A (zh) * 2016-12-08 2018-06-22 成都华为技术有限公司 一种确定处理任务平均时长的方法及设备
CN108536525A (zh) * 2017-03-02 2018-09-14 北京金山云网络技术有限公司 一种宿主机调度方法及装置
CN112052081A (zh) * 2020-08-13 2020-12-08 烽火通信科技股份有限公司 一种任务调度方法、装置及电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8140885B2 (en) * 2007-02-14 2012-03-20 International Business Machines Corporation Accounting for microprocessor resource consumption
CN111309485A (zh) * 2020-02-25 2020-06-19 北京奇艺世纪科技有限公司 服务调用方法、装置、电子设备和计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102110043A (zh) * 2010-12-30 2011-06-29 上海顶竹通讯技术有限公司 一种cpu占用率的计算方法及装置
JP2015225399A (ja) * 2014-05-26 2015-12-14 ソフトバンク株式会社 業務処理システム、業務処理能力の監視システムおよび監視方法
CN108196995A (zh) * 2016-12-08 2018-06-22 成都华为技术有限公司 一种确定处理任务平均时长的方法及设备
CN108536525A (zh) * 2017-03-02 2018-09-14 北京金山云网络技术有限公司 一种宿主机调度方法及装置
CN112052081A (zh) * 2020-08-13 2020-12-08 烽火通信科技股份有限公司 一种任务调度方法、装置及电子设备

Also Published As

Publication number Publication date
CN112732540A (zh) 2021-04-30
US20220188156A1 (en) 2022-06-16

Similar Documents

Publication Publication Date Title
CN112732540B (zh) 确定硬件使用率的方法和装置、存储介质、电子设备
JP7020616B2 (ja) リソーススケジューリングのための方法およびシステム
CN109981737B (zh) 一种网络请求的处理方法、装置、终端及存储介质
CN110795284B (zh) 一种数据恢复方法、装置、设备及可读存储介质
US8495650B2 (en) Method for determining a number of threads to maximize utilization of a system
WO2017147331A1 (en) User behavior-based dynamic resource adjustment
CN109117280B (zh) 电子装置及其限制进程间通信的方法、存储介质
US20180309686A1 (en) Reducing rate limits of rate limiters
CN114168331A (zh) 算法部署和调度方法以及算法部署和调度装置
CN111538572A (zh) 任务处理方法、装置、调度服务器及介质
CN109670932B (zh) 信贷数据核算方法、装置、***和计算机存储介质
CN113342497A (zh) 任务调度方法、装置、终端设备及计算机存储介质
CN108512673B (zh) 一种云服务质量监控方法、装置及服务器
CN113328906A (zh) 一种流量实时监控方法、装置、存储介质及电子设备
CN110275780B (zh) 用于限制流量的方法和装置
CN106131187B (zh) 一种授权的控制方法及装置
CN111782378A (zh) 自适应性的处理性能调整方法、服务器及可读存储介质
US20030217185A1 (en) Method and apparatus for reducing interrupts in a high-speed ethernet media access controller (MAC) by interrupt canceling
JP4732340B2 (ja) データ処理用データ処理システム及び方法
CN109062706B (zh) 电子装置及其限制进程间通信的方法、存储介质
CN113867734A (zh) 代码块解释执行方法、装置、电子设备及存储介质
CN114024913A (zh) 一种网络性能优化方法、装置、设备以及存储介质
CN113905091A (zh) 用于对访问请求进行处理的方法及装置
Toussaint et al. Chasing Linux jitter sources for uncompressed video
CN109062707A (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