CN114625620A - Cpu使用率的计算方法、装置、电子设备及存储介质 - Google Patents
Cpu使用率的计算方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114625620A CN114625620A CN202210190526.5A CN202210190526A CN114625620A CN 114625620 A CN114625620 A CN 114625620A CN 202210190526 A CN202210190526 A CN 202210190526A CN 114625620 A CN114625620 A CN 114625620A
- Authority
- CN
- China
- Prior art keywords
- cpu
- duration
- core
- cores
- calculating
- 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
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/34—Recording 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/3409—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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/3433—Recording 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 for load management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开关于一种CPU使用率的计算方法、装置、电子设备及存储介质。其中,所述CPU使用率的计算方法,包括:获取进程对应的CPU执行时长;根据CPU执行时长和进程的可用核心数量,确定进程对应的CPU总时长;根据每个可用核心处于每个频点的时长,确定CPU使用信息;根据CPU总时长、CPU所有核心中每个核心对应的频点,确定CPU最大处理能力;根据CPU执行时长、CPU总时长、CPU使用信息、CPU最大处理能力,确定进程对应的CPU使用率。采用本公开实施例提供的方法可以实现进程对应的CPU使用率的自动计算,提高CPU使用率的真实性和准确性。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种CPU使用率的计算方法、装置、电子设备及存储介质方法、装置、电子设备及存储介质。
背景技术
相关技术中,随着计算机技术的不断发展,应用业务也在不断增长。与此同时,电子设备上的应用运行时消耗的资源也随之不断增高,应用运行时产生的繁重的任务需求也会给电子设备的CPU带来较大的压力,电子设备的CPU若长时间处于压力状态,则容易导致电子设备出现发热、卡顿、触发高温保护措施等情况。为了使开发人员能够有针对性的进行应用维护,以避免或减轻CPU处于压力状态的情况,亟需一种能够计算CPU使用率的方法。
发明内容
本公开提供一种CPU使用率的计算方法、装置、电子设备及存储介质,能够计算CPU使用率。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种CPU使用率的计算方法,包括:
获取进程对应的CPU执行时长;其中,所述CPU执行时长为当前采样时刻与最近一次采样时刻的间隔时长;
根据所述CPU执行时长和所述进程的可用核心数量,确定所述进程对应的CPU总时长;其中,所述可用核心的数量为至少一个;
根据每个所述可用核心处于每个频点的时长,确定CPU使用信息;
根据所述CPU总时长、CPU所有核心中每个所述核心对应的频点,确定CPU最大处理能力;
根据所述CPU执行时长、所述CPU总时长、所述CPU使用信息、所述CPU最大处理能力,确定所述进程对应的CPU使用率。
在一种可能的实施方式中,所述根据所述CPU执行时长和所述进程的可用核心数量,确定所述进程对应的CPU总时长,包括:
计算所述CPU执行时长和所述进程的可用核心数量的乘积,得到所述进程对应的CPU总时长。
在一种可能的实施方式中,所述根据每个所述可用核心处于每个频点的时长,确定CPU使用信息,包括:
对于第i个可用核心,计算所述第i个可用核心处于第n个频点的时长与所述第n个频点的频率第一乘积;i∈A,A为所述目标进程的可用核心集合,n∈N*;
计算每个所述第一乘积与所述第i个可用核心对应的权重的第二乘积;
计算所有第二乘积的和,得到所述CPU使用信息。
在一种可能的实施方式中,所述根据所述CPU总时长、CPU所有核心中每个所述核心对应的频点,确定CPU最大处理能力,包括:
确定CPU所有核心中每个所述核心对应的最大频率;
计算所述CPU总时长、所述CPU所有核心中每个所述核心对应的最大频率、CPU所有核心中每个所述核心对应的权重的乘积,得到所述CPU最大处理能力。
在一种可能的实施方式中,所述根据所述CPU执行时长、所述CPU总时长、所述CPU使用信息、所述CPU最大处理能力,确定所述进程对应的CPU使用率,包括:
计算所述CPU执行时长与所述CPU总时长的商,得到CPU执行时间占用率;
计算所述CPU使用信息与所述CPU最大处理能力的商,得到CPU核心占用率;
计算所述CPU执行时间占用率与所述CPU核心占用率的乘积,得到所述进程对应的CPU使用率。
根据本公开实施例的第二方面,提供一种CPU使用率的计算装置,包括:
获取模块,被配置为获取进程对应的CPU执行时长;其中,所述CPU执行时长为当前采样时刻与最近一次采样时刻的间隔时长;
第一确定模块,被配置为根据所述CPU执行时长和所述进程的可用核心数量,确定所述进程对应的CPU总时长;其中,所述可用核心的数量为至少一个;
第二确定模块,被配置为根据每个所述可用核心处于每个频点的时长,确定CPU使用信息;
第三确定模块,被配置为根据所述CPU总时长、CPU所有核心中每个所述核心对应的频点,确定CPU最大处理能力;
第四确定模块,被配置为根据所述CPU执行时长、所述CPU总时长、所述CPU使用信息、所述CPU最大处理能力,确定所述进程对应的CPU使用率。
在一种可能的实施方式中,所述第一确定模块,具体被配置为:
计算所述CPU执行时长和所述进程的可用核心数量的乘积,得到所述进程对应的CPU总时长。
在一种可能的实施方式中,所述第二确定模块,包括:
第一计算单元,被配置为对于第i个可用核心,计算所述第i个可用核心处于第n个频点的时长与所述第n个频点的频率第一乘积;i∈A,A为所述目标进程的可用核心集合,n∈N*;
第二计算单元,被配置为计算每个所述第一乘积与所述第i个可用核心对应的权重的第二乘积;
第三计算单元,被配置为计算所有第二乘积的和,得到所述CPU使用信息。
在一种可能的实施方式中,所述第三确定模块,包括:
第一确定单元,被配置为确定CPU所有核心中每个所述核心对应的最大频率;
第四计算单元,被配置为计算所述CPU总时长、所述CPU所有核心中每个所述核心对应的最大频率、所述CPU所有核心中每个所述核心对应的权重的乘积,得到所述CPU最大处理能力。
在一种可能的实施方式中,所述第四确定模块,包括:
第五计算单元,被配置为计算所述CPU执行时长与所述CPU总时长的商,得到CPU执行时间占用率;
第六计算单元,被配置为计算所述CPU使用信息与所述CPU最大处理能力的商,得到CPU核心占用率;
第七计算单元,被配置为计算所述CPU执行时间占用率与所述CPU核心占用率的乘积,得到所述进程对应的CPU使用率。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如第一方面中任一项所述的CPU使用率的计算方法。
根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面中任一项所述的CPU使用率的计算方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如第一方面中任一项所述的CPU使用率的计算方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
在本公开的实施例中,通过获取进程对应的CPU执行时长,根据CPU执行时长和进程的可用核心数量确定CPU总时长,再根据每个可用核心处于每个频点的时长,确定CPU使用信息,根据CPU总时长、CPU所有核心中每个核心对应的频点,确定CPU最大处理能力,最后根据CPU执行时长、CPU总时长、CPU使用信息、CPU最大处理能力,确定进程对应的CPU使用率。这样,一方面,可以实现进程对应的CPU使用率的自动计算。另一方面,可以结合CPU核心、进程的可用核心、频点、时长等多个因素,归一化的计算进程对应的CPU使用率,如此,可以使得计算出的CPU使用率能够更真实的反映实际情况,提高CPU使用率的真实性和准确性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种CPU使用率的计算方法的流程图。
图2是根据一示例性实施例示出的另一种CPU使用率的计算方法的流程图。
图3是根据一示例性实施例示出的一种CPU使用率的计算装置的框图。
图4是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
由背景技术可知,相关技术中,亟需一种能够计算CPU使用率的方法。基于此,本公开实施例提供了一种CPU使用率的计算方法、装置、电子设备及存储介质,不仅可以实现进程对应的CPU使用率的自动计算,还可以结合进程的可用核心、频点、时长等多个因素,归一化的计算进程对应的CPU使用率。如此,可以使得计算出的CPU使用率能够更真实的反映实际情况,提高CPU使用率的真实性和准确性。
下面结合附图对本公开实施例提供的一种CPU使用率的计算方法、装置、电子设备及存储介质进行详细说明。
图1是根据一示例性实施例示出的一种CPU使用率的计算方法的流程图,该CPU使用率的计算方法可以应用于电子设备,例如,可以为手机、平板电脑、电脑。如图1所示,方法可以包括以下步骤。
在步骤S101中,获取进程对应的CPU执行时长。
其中,CPU执行时长为当前采样时刻与最近一次采样时刻的间隔时长。
在本公开实施例中,电子设备在计算进程对应的CPU使用率时,可以先获取进程对应的CPU执行时长。示例性的,可以从proc/self/stat文件获取当前时刻作为当前采样时刻,获取与当前时刻间隔时长最短的历史采样时刻作为最近一次采样时刻,再计算当前采样时刻与最近一次采样时刻的间隔时长作为CPU执行时长。例如,假设当前采样时刻为10:00:00,最近一次采样时刻为09:59:59为例,则可以计算出CPU执行时长为1秒。
可以理解的,电子设备可以周期性的计算CPU使用率,如可以将周期设置为1秒。同时,为了便于计算,还可以将时长均换算成标准时间进行计算,例如可以换算为10毫秒级,即“*10ms”。而且,在获取到进程对应的CPU执行时长之后,还可以保存当前采样时刻,以为下一次计算CPU使用率时计算CPU执行时长提供数据基础。
在步骤S102中,根据CPU执行时长和进程的可用核心数量,确定进程对应的CPU总时长。
其中,可用核心的数量为至少一个。
CPU总时长可以是进程的所有可用核心在CPU执行时长内运行的总时长。
在本公开实施例中,考虑到进程通常会被限制在某个或某几个核心上运行,故而,电子设备在获取到进程对应的CPU执行时长之后,可以获取进程可用的CPU核心,即进程的可用核心,并统计进程的可用核心数量。然后,可以根据CPU执行时长和前述进程的可用核心数量,确定进程对应的CPU总时长。
可以理解的,考虑到有些应用可能没有权限通过可以通过proc/self/stat文件获取当前采样时刻与最近一次采样时刻,故而,也可以通过SystemClock.elapsedRealtime()获取CPU执行时长,也即通过SystemClock.elapsedRealtime()获取当前采样时刻与最近一次采样时刻。如此可以避免由于应用权限问题导致的数据获取失败的情况,从而可以提高计算CPU使用率的成功率,提高计算效率。
在步骤S103中,根据每个可用核心处于每个频点的时长,确定CPU使用信息。
在本公开实施例中,电子设备在根据CPU执行时长和进程的可用核心数量,确定进程对应的CPU总时长之后,可以获取每个可用核心对应的频点,以及每个可用核心在自身对应的每个频点运行的时长(如可以通过linux操作系统自带的CPU信息获取每个核心处于每个频点的时长),即每个可用核心处于每个频点的时长。可以理解的,每个可用核心处于每个频点的时长,可以是在CPU执行时段(即当前采样时刻与最近一次采样时刻之间的时段)内,每个可用核心在自身对应的每个频点运行的时长。然后,可以根据每个可用核心在自身对应的每个频点运行的时长,确定进程对应的CPU使用信息,该CPU使用信息,可以用于指示在CPU执行时段内,每个可用核心在自身对应的每个频点的具体运行情况。
可以理解的,在根据每个可用核心处于每个频点的时长,确定CPU使用信息之前,可以判断是否存在用于获取每个核心处于每个频点的时长的文件,仅在存在用于获取每个核心处于每个频点的时长的文件的情况下,获取每个可用核心处于每个频点的时长。反之,可以停止执行计算CPU使用率的操作,可选的,还可以输出提示信息,用以提示开发人员当前电子设备不存在用于获取每个核心处于每个频点的时长的文件,CPU使用率计算失败。
在步骤S104中,根据CPU总时长、CPU所有核心中每个核心对应的频点,确定CPU最大处理能力。
其中,CPU所有核心包括进程的可用核心。也就是说,CPU总时长是结合进程的可用核心确定的,而CPU最大处理能力是结合CPU的所有核心确定的。
在本公开的实施例中,电子设备在根据每个可用核心处于每个频点的时长,确定CPU使用信息之后,可以根据CPU总时长和CPU所有核心中每个核心对应的频点,确定CPU在CPU总时长内理论上的最大处理能力。也就是说,CPU最大处理能力可以用于指示CPU总时长内CPU所有核心的最大处理能力之和。
在步骤S105中,根据CPU执行时长、CPU总时长、CPU使用信息、CPU最大处理能力,确定进程对应的CPU使用率。
在本公开的实施例中,电子设备在根据CPU总时长、CPU所有核心中每个核心对应的频点,确定CPU最大处理能力之后,可以根据确定出的CPU执行时长、CPU总时长、CPU使用信息以及CPU最大处理能力,确定进程对应的CPU使用率。这样,可以结合CPU所有核心、进程的可用核心、频点、时长等多个因素,归一化的计算进程对应的CPU使用率。可以理解的,在确定出进程对应的CPU使用率之后,可用以图表等形式展示该进程对应的CPU使用率,以使开发人员可用查看到该进程对应的CPU使用率,以基于进程对应的CPU使用率进行数据分析和维护等处理。
在进一步的实施例中,上述步骤S104中根据CPU执行时长、CPU总时长、CPU使用信息、CPU最大处理能力,确定进程对应的CPU使用率的具体实现方式可以包括如下步骤:
计算CPU执行时长与CPU总时长的商,得到CPU执行时间占用率;
计算CPU使用信息与CPU最大处理能力的商,得到CPU核心占用率;
计算CPU执行时间占用率与CPU核心占用率的乘积,得到进程对应的CPU使用率。
在公开的实施例中,电子设备在根据CPU执行时长、CPU总时长、CPU使用信息、CPU最大处理能力,确定进程对应的CPU使用率时,可以先计算CPU执行时长与CPU总时长的商,即计算CPU执行时长在CPU总时长的占比,得到CPU执行时间占用率。然后,可以计算CPU使用信息与CPU最大处理能力的商,即计算CPU使用信息在CPU最大处理能力中的占比,得到CPU核心占用率。在计算出CPU执行时间占用率和CPU核心占用率之后,可以计算CPU执行时间占用率与CPU核心占用率的乘积,将该乘积作为进程对应的CPU使用率。具体的,进程对应的CPU使用的计算公式可以如公式(1)所示。
(p_jiffies/a_timediff)*(CpuFreqUsed/CpuFreqMax) (1)
其中,p_jiffies表示CPU执行时长,a_timediff表示CPU总时长,CpuFreqUsed表示CPU使用信息,CpuFreqMax表示CPU最大处理能力。
在本公开的实施例中,通过获取进程对应的CPU执行时长,根据CPU执行时长和进程的可用核心数量确定CPU总时长,再根据每个可用核心处于每个频点的时长,确定CPU使用信息,根据CPU总时长、CPU所有核心中每个核心对应的频点,确定CPU最大处理能力,最后根据CPU执行时长、CPU总时长、CPU使用信息、CPU最大处理能力,确定进程对应的CPU使用率。这样,一方面,可以实现进程对应的CPU使用率的自动计算。另一方面,可以结合CPU核心、进程的可用核心、频点、时长等多个因素,归一化的计算进程对应的CPU使用率,如此,可以使得计算出的CPU使用率能够更真实的反映实际情况,提高CPU使用率的真实性和准确性。
在进一步的实施例中,在步骤S104中根据CPU执行时长、CPU总时长、CPU使用信息、CPU最大处理能力,确定进程对应的CPU使用率之后,还可以执行如下处理:
获取电子设备本次开机后,第一次获取进程对应的CPU执行时长的首次采样时刻;
判断首次采样时刻与当前采样时刻的间隔时长是否大于或等于预设时长阈值;
在首次采样时刻与当前采样时刻的间隔时长大于或等于预设时长阈值的情况下,停止获取进程对应的CPU执行时长;
在首次采样时刻与当前采样时刻的间隔时长小于预设时长阈值的情况下,获取进程对应的CPU执行时长。
在本公开的实施例中,考虑到进程通常运行一段时间后就会停止运行,此时计算CPU使用率是没有较大意义的。故而,电子设备在根据CPU执行时长、CPU总时长、CPU使用信息、CPU最大处理能力,确定进程对应的CPU使用率之后,可以获取电子设备本次开机后,第一次获取进程对应的CPU执行时长的采样时刻,即首次采样时刻。然后,可以计算该首次采样时刻与当前采样时刻的间隔时长,将该间隔时长与预设间隔时长进行比较,以判断该间隔时长是否大于或等于预设时长阈值,该预设时长阈值可以是预先设置的具体时长,例如,可以设置为30分钟、60分钟等。
在首次采样时刻与当前采样时刻的间隔时长大于或等于预设时长阈值的情况下,电子设备可以停止获取进程对应的CPU执行时长。反之,在首次采样时刻与当前采样时刻的间隔时长小于预设时长阈值的情况下,电子设备则可以继续获取进程对应的CPU执行时长,根据CPU执行时长和进程的可用核心数量,确定进程对应的CPU总时长,根据每个可用核心处于每个频点的时长,确定CPU使用信息,根据CPU总时长、CPU所有核心中每个核心对应的频点,确定CPU最大处理能力,根据CPU执行时长、CPU总时长、CPU使用信息、CPU最大处理能力,确定进程对应的CPU使用率。也就是说,在首次采样时刻与当前采样时刻的间隔时长大于或等于预设时长阈值的情况下,电子设备可以停止执行上述步骤S101-S104的计算CPU使用率的过程;反之,在首次采样时刻与当前采样时刻的间隔时长小于预设时长阈值的情况下,电子设备则可以继续执行上述步骤S101-S104的计算CPU使用率的过程。
可以理解的,在计算CPU使用率是周期性执行的情况下,在首次采样时刻与当前采样时刻的间隔时长小于预设时长阈值的情况下,电子设备则可以在下一周期继续执行上述步骤S101-S104的计算CPU使用率的过程。
这样,仅在首次采样时刻与当前采样时刻的间隔时长小于预设时长阈值的情况下,继续进行CPU使用率的计算过程,可以避免无意义的CPU使用率的计算过程。如此,可以有效减少资源消耗,提高CPU使用率的计算效率和有效性。
在一种可能的实施方式中,上述步骤S102中基于CPU执行时长和目标进程的可用核心数量,确定目标进程对应的CPU总时长的具体实现方式可以如下:
计算CPU执行时长和进程的可用核心数量的乘积,得到进程对应的CPU总时长。
在本公开的实施例中,电子设备在基于CPU执行时长和目标进程的可用核心数量,确定目标进程对应的CPU总时长时,可以将CPU执行时长和进程的可用核心数量相乘,得到CPU执行时长和进程的可用核心数量的乘积,将该乘积确定为进程对应的CPU总时长。也就是说,CPU总时长可以是进程的所有可用核心在CPU执行时长内的总运行时长。具体的,计算进程对应的CPU总时长的具体公式可以如公式(2)所示。
a_timediff=(time1-time2)*m (2)
其中,a_timediff表示CPU总时长,time1表示当前采样时刻,time2表示最近一次采样时刻,m表示进程的可用核心数量。
在一种可能的实施方式中,上述步骤S103中根据每个可用核心处于每个频点的时长,确定CPU使用信息的具体实现方式可以如下:
对于第i个可用核心,计算第i个可用核心处于第n个频点的时长与第n个频点的频率第一乘积;i∈A,A为目标进程的可用核心集合,n∈N*;
计算每个第一乘积与第i个可用核心对应的权重的第二乘积;
计算所有第二乘积的和,得到CPU使用信息。
在本公开的实施例中,电子设备在根据每个可用核心处于每个频点的时长,确定CPU使用信息时,对于第i个可用核心,可以先计算第i个可用核心处于第n个频点的时长与第n个频点的乘积,即计算第i个可用核心处于第n个频点的时长与该第n个频点的具体频率的乘积,该乘积为第一乘积。然后,可以获取第i个可用核心对应的权重,计算每个第一乘积与第i个可用核心对应的权重的乘积,即第二乘积。在计算得到每个第一乘积与第i个可用核心对应的权重的第二乘积之后,可以将所有第二乘积进行累加,计算所有第二乘积的和,该该和值作为CPU使用信息。具体的,根据每个可用核心处于每个频点的时长,确定CPU使用信息的具体公式可以如公式(3)所示。
其中,CpuFreqUsed表示CPU使用信息,i表示核心数,A表示进程的可用核心集合,如某电子设备有8个核心0、1、2、3、4、5、6、7,进程被限制在核心0-4上运行,则A={0,1,2,3,4,5,6,7}-{5,6,7}={0,1,2,3,4},n表示第n个频点的频率,timediff(n)表示在第n个频点运行的时长,weight(i)表示第i个核心对应的权重。
这样,可用结合在核心、频点的具体频率、时长等因素的基础上,进一步结合核心的权重计算CPU使用信息。如此,可用提高CPU使用信息的准确性和真实性,从而可以进一步提高计算出的CPU使用率的的真实性和准确性。
在一种可能的实施方式中,上述步骤S103中根据CPU总时长、CPU所有核心中每个核心对应的频点,确定CPU最大处理能力的具体实现方式可以如下:
确定CPU所有核心中每个核心对应的最大频率;
计算CPU总时长、CPU所有核心中每个核心对应的最大频率、CPU所有核心中每个核心对应的权重的乘积,得到CPU最大处理能力。
在本公开的实施例中,电子设备在根据CPU总时长、CPU所有核心中每个核心对应的频点,确定CPU最大处理能力时,可以先获取CPU所有核心中每个核心对应的所有频点,在CPU所有核心中每个核心对应的所有频点中确定出CPU所有核心中每个核心对应的最大频率,以及获取CPU所有核心中每个核心对应的权重。然后,可以将CPU总时长、CPU所有核心中每个核心对应的最大频率、CPU所有核心中每个核心对应的权重进行相乘,得到CPU总时长、CPU所有核心中每个核心对应的最大频率、CPU所有核心中每个核心对应的权重的乘积,将该乘积确定为CPU最大处理能力。具体的,CPU最大处理能力的具体计算公式可以如公式(4)所示。
其中,CpuFreqMax表示CPU最大处理能力,maxfreq(i)表示CPU所有核心中第i个CPU核心对应的最大频率,C表示CPU的CPU所有核心的集合,a_timediff表示CPU总时长,weight(i)表示CPU所有核心中第i个核心对应的权重。
这样,可以结合CPU所有核心中每个核心各自对应的权重计算CPU最大处理能力。如此,可以提高计算出的CPU最大处理能力得准确性和真实性,从而可以进一步提高CPU使用率的真实性和准确性,使得计算出的进程对应的CPU使用率能够更准确真实的反应CPU的实际使用情况。
为使本公开实施例提供的CPU使用率的计算方法更清楚,下面结合图2对本公开实施例提供的CPU使用率的计算方法进行说明。如图2所示,该CPU使用率的计算方法可以包括如下步骤:
在步骤S201中,获取进程对应的CPU执行时长。
在步骤S202中,计算CPU执行时长和进程的可用核心数量的乘积,得到进程对应的CPU总时长。
在步骤S203中,对于第i个可用核心,计算第i个可用核心处于第n个频点的时长与第n个频点的频率第一乘积。
在步骤S204中,计算每个第一乘积与第i个可用核心对应的权重的第二乘积。
在步骤S205中,计算所有第二乘积的和,得到CPU使用信息。
在步骤S206中,确定CPU所有核心中每个核心对应的最大频率。
在步骤S207中,计算CPU总时长、CPU所有核心中每个核心对应的最大频率、CPU所有核心中每个核心对应的权重的乘积,得到CPU最大处理能力。
在步骤S208中,计算CPU执行时长与CPU总时长的商,得到CPU执行时间占用率。
在步骤S209中,计算CPU使用信息与CPU最大处理能力的商,得到CPU核心占用率。
在步骤S2010中,计算CPU执行时间占用率与CPU核心占用率的乘积,得到进程对应的CPU使用率。
在步骤S2011中,获取电子设备本次开机后,第一次获取进程对应的CPU执行时长的首次采样时刻。
在步骤S2012中,判断首次采样时刻与当前采样时刻的间隔时长是否大于或等于预设时长阈值。
在首次采样时刻与当前采样时刻的间隔时长大于或等于预设时长阈值,执行步骤S2013,反之,执行步骤S2014。
在步骤S2013中,停止获取进程对应的CPU执行时长。
在步骤S2014中,获取进程对应的CPU执行时长。
本实施例中各步骤的具体实现方式和技术效果与上述各实施例类似,为简洁起见,在此不再赘述。
图3是根据一示例性实施例示出的一种CPU使用率的计算装置的框图。参照图3,该CPU使用率的计算装置300,可以包括:
获取模块310,可以被配置为获取进程对应的CPU执行时长;其中,所述CPU执行时长可以为当前采样时刻与最近一次采样时刻的间隔时长;
第一确定模块320,可以被配置为根据所述CPU执行时长和所述进程的可用核心数量,确定所述进程对应的CPU总时长;其中,所述可用核心的数量可以为至少一个;
第二确定模块330,可以被配置为根据每个所述可用核心处于每个频点的时长,确定CPU使用信息;
第三确定模块340,可以被配置为根据所述CPU总时长、CPU所有核心中每个所述核心对应的频点,确定CPU最大处理能力;
第四确定模块350,可以被配置为根据所述CPU执行时长、所述CPU总时长、所述CPU使用信息、所述CPU最大处理能力,确定所述进程对应的CPU使用率。
在一种可能的实施方式中,所述第一确定模块320,具体可以被配置为:
计算所述CPU执行时长和所述进程的可用核心数量的乘积,得到所述进程对应的CPU总时长。
在一种可能的实施方式中,所述第二确定模块330,可以包括:
第一计算单元,可以被配置为对于第i个可用核心,计算所述第i个可用核心处于第n个频点的时长与所述第n个频点的频率第一乘积;i∈A,A为所述目标进程的可用核心集合,n∈N*;
第二计算单元,可以被配置为计算每个所述第一乘积与所述第i个可用核心对应的权重的第二乘积;
第三计算单元,可以被配置为计算所有第二乘积的和,得到所述CPU使用信息。
在一种可能的实施方式中,所述第三确定模块340,可以包括:
第一确定单元,可以被配置为确定CPU所有核心中每个所述核心对应的最大频率;
第四计算单元,可以被配置为计算所述CPU总时长、所述CPU所有核心中每个所述核心对应的最大频率、所述CPU所有核心中每个所述核心对应的权重的乘积,得到所述CPU最大处理能力。
在一种可能的实施方式中,所述第四确定模块350,可以包括:
第五计算单元,可以被配置为计算所述CPU执行时长与所述CPU总时长的商,得到CPU执行时间占用率;
第六计算单元,可以被配置为计算所述CPU使用信息与所述CPU最大处理能力的商,得到CPU核心占用率;
第七计算单元,可以被配置为计算所述CPU执行时间占用率与所述CPU核心占用率的乘积,得到所述进程对应的CPU使用率。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图4示出了可以用来实施本公开的实施例的示例电子设备400的示意性框图。电子设备400旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图4所示,电子设备400包括计算单元401,其可以根据存储在只读存储器(ROM)402中的计算机程序或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序,来执行各种适当的动作和处理。在RAM 403中,还可存储设备400操作所需的各种程序和数据。计算单元401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
电子设备400中的多个部件连接至I/O接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许电子设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元401可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元401的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元401执行上文所描述的各个方法和处理,例如CPU使用率的计算方法。例如,在一些实施例中,CPU使用率的计算方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由ROM 402和/或通信单元409而被载入和/或安装到电子设备400上。当计算机程序加载到RAM 403并由计算单元401执行时,可以执行上文描述的CPU使用率的计算方法的一个或多个步骤。备选地,在其他实施例中,计算单元401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行CPU使用率的计算方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (10)
1.一种CPU使用率的计算方法,其特征在于,包括:
获取进程对应的CPU执行时长;其中,所述CPU执行时长为当前采样时刻与最近一次采样时刻的间隔时长;
根据所述CPU执行时长和所述进程的可用核心数量,确定所述进程对应的CPU总时长;其中,所述可用核心的数量为至少一个;
根据每个所述可用核心处于每个频点的时长,确定CPU使用信息;
根据所述CPU总时长、CPU所有核心中每个所述核心对应的频点,确定CPU最大处理能力;
根据所述CPU执行时长、所述CPU总时长、所述CPU使用信息、所述CPU最大处理能力,确定所述进程对应的CPU使用率。
2.根据权利要求1所述的CPU使用率的计算方法,其特征在于,所述根据所述CPU执行时长和所述进程的可用核心数量,确定所述进程对应的CPU总时长,包括:
计算所述CPU执行时长和所述进程的可用核心数量的乘积,得到所述进程对应的CPU总时长。
3.根据权利要求1所述的CPU使用率的计算方法,其特征在于,所述根据每个所述可用核心处于每个频点的时长,确定CPU使用信息,包括:
对于第i个可用核心,计算所述第i个可用核心处于第n个频点的时长与所述第n个频点的频率第一乘积;i∈A,A为所述目标进程的可用核心集合,n∈N*;
计算每个所述第一乘积与所述第i个可用核心对应的权重的第二乘积;
计算所有第二乘积的和,得到所述CPU使用信息。
4.根据权利要求1所述的CPU使用率的计算方法,其特征在于,所述根据所述CPU总时长、CPU所有核心中每个所述核心对应的频点,确定CPU最大处理能力,包括:
确定CPU所有核心中每个所述核心对应的最大频率;
计算所述CPU总时长、所述CPU所有核心中每个所述核心对应的最大频率、所述CPU所有核心中每个所述核心对应的权重的乘积,得到所述CPU最大处理能力。
5.根据权利要求1所述的CPU使用率的计算方法,其特征在于,所述根据所述CPU执行时长、所述CPU总时长、所述CPU使用信息、所述CPU最大处理能力,确定所述进程对应的CPU使用率,包括:
计算所述CPU执行时长与所述CPU总时长的商,得到CPU执行时间占用率;
计算所述CPU使用信息与所述CPU最大处理能力的商,得到CPU核心占用率;
计算所述CPU执行时间占用率与所述CPU核心占用率的乘积,得到所述进程对应的CPU使用率。
6.一种CPU使用率的计算装置,其特征在于,包括:
获取模块,被配置为获取进程对应的CPU执行时长;其中,所述CPU执行时长为当前采样时刻与最近一次采样时刻的间隔时长;
第一确定模块,被配置为根据所述CPU执行时长和所述进程的可用核心数量,确定所述进程对应的CPU总时长;其中,所述可用核心的数量为至少一个;
第二确定模块,被配置为根据每个所述可用核心处于每个频点的时长,确定CPU使用信息;
第三确定模块,被配置为根据所述CPU总时长、CPU所有核心中每个所述核心对应的频点,确定CPU最大处理能力;
第四确定模块,被配置为根据所述CPU执行时长、所述CPU总时长、所述CPU使用信息、所述CPU最大处理能力,确定所述进程对应的CPU使用率。
7.根据权利要求6所述的CPU使用率的计算装置,其特征在于,所述第二确定模块,包括:
第一计算单元,被配置为对于第i个可用核心,计算所述第i个可用核心处于第n个频点的时长与所述第n个频点的频率第一乘积;i∈A,A为所述目标进程的可用核心集合,n∈N*;
第二计算单元,被配置为计算每个所述第一乘积与所述第i个可用核心对应的权重的第二乘积;
第三计算单元,被配置为计算所有第二乘积的和,得到所述CPU使用信息。
8.根据权利要求6所述的CPU使用率的计算装置,其特征在于,所述第三确定模块,包括:
第一确定单元,被配置为确定CPU所有核心中每个所述核心对应的最大频率;
第四计算单元,被配置为计算所述CPU总时长、所述CPU所有核心中每个所述核心对应的最大频率、所述CPU所有核心中每个所述核心对应的权重的乘积,得到所述CPU最大处理能力。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至5中任一项所述的CPU使用率的计算方法。
10.一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至5中任一项所述的CPU使用率的计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210190526.5A CN114625620A (zh) | 2022-02-28 | 2022-02-28 | Cpu使用率的计算方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210190526.5A CN114625620A (zh) | 2022-02-28 | 2022-02-28 | Cpu使用率的计算方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114625620A true CN114625620A (zh) | 2022-06-14 |
Family
ID=81899997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210190526.5A Pending CN114625620A (zh) | 2022-02-28 | 2022-02-28 | Cpu使用率的计算方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114625620A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115078976A (zh) * | 2022-08-22 | 2022-09-20 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 核心数量的检测系统及方法 |
-
2022
- 2022-02-28 CN CN202210190526.5A patent/CN114625620A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115078976A (zh) * | 2022-08-22 | 2022-09-20 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 核心数量的检测系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114500339B (zh) | 一种节点带宽监测方法、装置、电子设备及存储介质 | |
CN114879948B (zh) | 基于WebAssembly的智能合约处理方法、装置、设备及存储介质 | |
CN114625620A (zh) | Cpu使用率的计算方法、装置、电子设备及存储介质 | |
CN113392984B (zh) | 用于训练模型的方法、装置、设备、介质和产品 | |
CN113254191A (zh) | 用于运行应用的方法、电子设备和计算机程序产品 | |
CN115269145A (zh) | 一种面向海上无人设备的高能效异构多核调度方法及装置 | |
CN114879832A (zh) | 用于运算装置的功耗控制方法、装置、芯片、设备及介质 | |
CN110955728A (zh) | 用电数据传输方法、服务器及存储介质 | |
CN113411390B (zh) | 内容分发网络的调度方法、装置及电子设备 | |
CN114579305B (zh) | 用于函数计算的资源控制方法、装置、设备和介质 | |
CN114610575B (zh) | 应用于计算分支的更新峰值的方法、装置、设备和介质 | |
CN112633683B (zh) | 资源使用量统计方法、装置、系统、电子设备及存储介质 | |
CN114003367B (zh) | 风险监控方法、装置、设备及存储介质 | |
CN114598705B (zh) | 消息负载均衡方法、装置、设备和介质 | |
CN112148550B (zh) | 用于管理服务的方法、设备和计算机程序产品 | |
CN118227287A (zh) | 一种工作负载分配方法及电子设备 | |
CN110298742B (zh) | 数据处理方法和装置 | |
CN115129462A (zh) | 处理器负载的确定方法及装置 | |
CN117608753A (zh) | 一种虚拟机调度方法、装置、电子设备及存储介质 | |
CN115357188A (zh) | 一种基于动态感知寿命均衡的fpga重构方法及相关装置 | |
CN116961188A (zh) | 基站电源的调度方法、装置、电子设备和可读存储介质 | |
CN113220233A (zh) | 数据读取方法、装置及系统 | |
CN114201708A (zh) | 一种资源处理方法、装置、电子设备和存储介质 | |
CN117850566A (zh) | 一种IaaS云平台中宿主机电源动态管理算法 | |
CN115454847A (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 |