CN106708709A - Cpu占用率检测方法及装置 - Google Patents
Cpu占用率检测方法及装置 Download PDFInfo
- Publication number
- CN106708709A CN106708709A CN201510460096.4A CN201510460096A CN106708709A CN 106708709 A CN106708709 A CN 106708709A CN 201510460096 A CN201510460096 A CN 201510460096A CN 106708709 A CN106708709 A CN 106708709A
- Authority
- CN
- China
- Prior art keywords
- duration
- cpu
- execution
- preset task
- interruption
- 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.)
- Withdrawn
Links
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
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占用率的精确度。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种CPU占用率检测方法及装置。
背景技术
在嵌入式系统和其它对实时性和性能要求较高的操作系统领域,CPU(Central Processing Unit,中央处理器)占用率是评估系统,特别是系统性能和实时性评估的关键指标,例如,在Linux系统中,CPU占用率是系统性能监控,性能调优以及故障定位等不可或缺的基础数据。
标准Linux系统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占用率的精确度。
附图说明
图1为本发明CPU占用率检测方法第一实施例的流程示意图;
图2为本发明CPU占用率检测装置第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种CPU占用率检测方法,参照图1,在本发明CPU占用率检测方法的第一实施例中,所述CPU占用率检测方法包括:
S10,获取当前检测周期内预设任务在CPU的第一执行时长以及第一中断时长;
本实施例提供的CPU占用率检测方法可以应用于Linux系统中,例如,可用于精确检测预设任务在CPU的执行占用率。以下以本CPU占用率检测方法应用于Linux系统进行说明。
本实施例中,所述检测周期是预先设置的,用于周期性的测量与CPU相关的各种占用率。需要说明的是,在Linux系统中,CPU占用率分为系统级(CPU级)和任务级(进程/线程级)的占用率检测。其中,系统级占用率检测是指每CPU的占用率情况,常见的系统级占用率统计的时间构成包括每CPU的空闲时间,用户态运行时间,内核态运行时间,I/O等待时间,软中断和硬中断执行时间;任务(进程/线程)级占用率检测是指进程/线程在CPU的执行占用率。本实施例主要以任务级CPU占用率的检测进行说明。
具体地,在当前检测周期到达时,获取所述预设任务在CPU的第一执行时长,即所述CPU在检测周期内执行所述预设任务的执行时间长度。本领域技术人员可以理解的是,CPU在执行任务的过程中,当中断到达时,CPU会暂停正在执行的任务,而跳转去执行相应的中断例程,在中断例程执行完成后,再跳转至任务继续执行,导致任务的执行时长中叠加了中断例程的执行时长,影响任务在CPU的执行占用率检测。有鉴于此,本实施例还获取所述预设任务在所述CPU的第一中断时长,即所述CPU在检测周期内因执行中断例程而暂停执行所述预设任务的时间长度。其中,所述预设任务可以是任何可以被CPU执行的任务,包括工作任务和空闲任务。当所述预设任务为工作任务时,对应任务级CPU占用率的检测;当所述预设任务为空闲任务时,对应系统级CPU占用率的检测。
S20,在获取到所述第一执行时长以及第一中断时长时,将所述第一执行时长和所述第一中断时长的差值,作为当前检测周期内所述预设任务在所述CPU的第一实际执行时长;
基于前述技术方案的描述,本领域技术人员容易理解的是,所述第一执行时长减去所述第一中断时长的差值即为所述预设任务在检测周期内被所述CPU实际执行的时长,将其作为当前检测周期内所述预设任务在所述CPU的第一实际执行时长。需要说明的是,在执行所述第一执行时长与所述第一中断时长的相减操作时,将相减结果的绝对值作为所述第一执行时长与所述第一中断时长的差值。
S30,获取上一检测周期内所述预设任务在所述CPU的第二实际执行时长,并基于所述第一实际执行时长、所述第二实际执行时长以及所述检测周期,计算所述预设任务在所述CPU的执行占用率。
本实施例中,获取上一检测周期内所述预设任务在所述CPU的第二实际执行时长可参照前述技术方案施行,此处不再赘述。
在获取到所述第一实际执行时长以及所述第二实际执行时长之后,将所述第一实际执行时长与所述第二实际执行时长的差值(取绝对值)作为所述预设任务在当前检测周期内在所述CPU的实际执行时长,并将所述实际执行时长与检测周期的比值作为所述预设任务在所述CPU的执行占用率。
进一步地,在本实施例中,上述步骤S30之后,还包括:
显示所述预设任务在所述CPU的执行占用率。
容易理解的是,进行CPU占用率检测的目的在于,提供系统性能监控、性能调优以及故障定位等不可或缺的基础数据,本实施例中,在计算出所述预设任务在所述CPU的执行占用率后,显示所述预设任务在所述CPU的执行占用率,以供用户进行相应的操作。
本实施例提出的CPU占用率检测方法,通过分别对待检测任务在两个检测周期内在CPU的实际执行时长进行统计,剔除了CPU因执行中断例程而导致的执行时长误差,并进一步基于统计的实际执行时长以及检测周期,计算所述预设任务在CPU的执行占用率。相较于现有技术,本发明能够提高检测CPU占用率的精确度。
进一步地,基于第一实施例,提出本发明CPU占用率检测方法的第二实施例,在本实施例中,步骤S10包括:
在当前检测周期内,基于所述预设任务每次切入所述CPU以及每次切出所述CPU的时间点计算所述预设任务的每次执行时长,将当前检测周期内所述预设任务的每次执行时长进行累加,并将累加的结果作为所述第一执行时长;
基于所述预设任务每次到中断例程的入口以及每次中断例程到所述预设任务的出口的时间点计算中断例程的每次执行时长,将当前检测周期内中断例程的每次执行时长进行累加,并将累加的结果作为所述第一中断时长。
需要说明的是,在本实施例中,各时间点的记录是通过读取所述CPU的时间戳计数器(Time Stamp Counter,TSC)记录的。其中,TSC是CPU中的一个计数器,它记录自CPU启动以来消耗的时钟周期数。TSC提供了非常高的计时精度,TSC记录的时钟周期数可以被转化为秒,方法是将其除以CPU的主频。例如,目前主流CPU的主频为1.5-3.5GHz,其TSC的精度可达纳秒级。
具体地,在当前检测周期内,侦测到预设任务切入到CPU执行时,记录切入时间点,侦测到所述预设任务切出所述CPU时,记录切出时间点,相邻的所述切入时间点和所述切出时间点的差值即为所述预设任务的一次执行时长,将所述预设任务的每次执行时长进行累加,并将累加的结果作为所述第一执行时长,即所述预设任务在当前检测周期内,切入CPU的总执行时长。本领域技术人员可以理解的是,在CPU执行任务的过程中,当中断到达时,CPU会暂停正在执行的任务,而跳转去执行相应的中断例程,在中断例程执行完成后,再跳转至任务继续执行,导致任务的执行时长中叠加了中断例程的执行时长。有鉴于此,在本实施例中,同时还基于所述预设任务每次到中断例程的入口以及每次中断例程到所述预设任务的出口的时间点计算中断例程的每次执行时长,将当前检测周期内中断例程的每次执行时长进行累加,并将累加的结果作为所述第一中断时长,即当前检测周期内,所述CPU因执行中断例程而暂停执行所述预设任务的时间长度。
需要说明的是,前述统计所述第一中断时长时,在所有中断例程的共同入口的开始处和结束处读取TSC的计数值,以记录中断例程的开始时间点和结束时间点,相邻的所述开始时间点和所述结束时间点的差值即为中断例程的一次执行时长,这个执行时长可能包含了该中断例程嵌套了其它中断例程的情况,本实施例只记录所述预设任务到中断例程的入口以及该中断例程到所述预设任务的出口的时间点,而不区分该时长是哪个中断例程的执行时长。
进一步地,由于任务在CPU的执行是以进程的形式体现的,而进程包括至少一个线程,CPU在某一时刻只能执行一个线程。本实施例中,在统计任务的实际执行时长时,需要遍历任务对应进程(线程组)中各线程进行时间统计。具体地,当线程调度运行时,将线程此次调度期间的运行时间累加至对应进程的总执行时长中,以及将线程此次调度期间的中断时长累加至对应进程的总中断时长中;将累加的总执行时长减去累加的总中断时长,即进程(任务)的实际执行时长。
本实施例基于CPU的TSC进行计时统计,能够进一步地提升检测CPU占用率的精确度。
进一步地,基于第一或第二实施例,提出本发明CPU占用率检测方法的第三实施例,在本实施例中,上述S20之后,还包括:
获取上一检测周期内所述预设任务在所述CPU的第二执行时长以及第二中断时长;
基于所述第一中断时长、第二中断时长以及所述检测周期,计算所述预设任务在所述CPU的中断占用率。
本实施例中,在获取到所述第一中断时长以及所述第二中断时长之后,将所述第一中断时长和所述第二中断时长的差值(取绝对值)作为所述预设任务在当前检测周期内在所述CPU的中断时长,并将所述中断时长与检测周期的比值作为所述预设任务在所述CPU的中断占用率。
进一步地,基于第三实施例,提出本发明CPU占用率检测方法的第四实施例,在本实施例中,所述基于所述第一中断时长、第二中断时长以及所述检测周期,计算所述预设任务在所述CPU的中断占用率的步骤之后,还包括:
累加各所述预设任务在所述CPU的中断占用率,并将累加的结果作为中断例程在所述CPU的执行占用率。
本实施例中,所述预设任务包括所述CPU执行的所有工作任务和空闲任务,通过累加各所述预设任务在所述CPU的中断占用率,即累加所述CPU在执行任务过程中,执行的各中断例程在所述CPU的执行占用率,将累加的结果作为中断例程在所述CPU的执行占用率,实现系统级CPU占用率检测。
需要说明的是,在本实施例中,统计的中断时长包括硬中断时长和软中断时长之和。基于本实施例提出的技术方案,本领域技术人员可以理解的是,还可仅对CPU执行的硬中断进行统计,以实现硬中断在CPU的执行占用率的检测。
本发明还提供一种CPU占用率检测装置,参照图2,在本发明CPU占用率检测装置的第一实施例中,所述CPU占用率检测装置包括:
获取模块10,用于获取当前检测周期内预设任务在CPU的第一执行时长以及第一中断时长;
本实施例提供的CPU占用率检测装置可以应用于Linux系统中,例如,可用于精确检测预设任务在CPU的执行占用率。以下以本CPU占用率检测装置应用于Linux系统进行说明。
本实施例中,所述检测周期是预先设置的,用于周期性的测量与CPU相关的各种占用率。需要说明的是,在Linux系统中,CPU占用率分为系统级(CPU级)和任务级(进程/线程级)的占用率检测。其中,系统级占用率检测是指每CPU的占用率情况,常见的系统级占用率统计的时间构成包括每CPU的空闲时间,用户态运行时间,内核态运行时间,I/O等待时间,软中断和硬中断执行时间;任务(进程/线程)级占用率检测是指进程/线程在CPU的执行占用率。本实施例主要以任务级CPU占用率的检测进行说明。
具体地,在当前检测周期到达时,获取模块10获取所述预设任务在CPU的第一执行时长,即所述CPU在检测周期内执行所述预设任务的执行时间长度。本领域技术人员可以理解的是,CPU在执行任务的过程中,当中断到达时,CPU会暂停正在执行的任务,而跳转去执行相应的中断例程,在中断例程执行完成后,再跳转至任务继续执行,导致任务的执行时长中叠加了中断例程的执行时长,影响任务在CPU的执行占用率检测。有鉴于此,本实施例获取模块10还获取所述预设任务在所述CPU的第一中断时长,即所述CPU在检测周期内因执行中断例程而暂停执行所述预设任务的时间长度。其中,所述预设任务可以是任何可以被CPU执行的任务,包括工作任务和空闲任务。当所述预设任务为工作任务时,对应任务级CPU占用率的检测;当所述预设任务为空闲任务时,对应系统级CPU占用率的检测。
计算模块20,用于在获取到所述第一执行时长以及第一中断时长时,将所述第一执行时长和所述第一中断时长的差值,作为当前检测周期内所述预设任务在所述CPU的第一实际执行时长;
基于前述技术方案的描述,本领域技术人员容易理解的是,所述第一执行时长减去所述第一中断时长的差值即为所述预设任务在检测周期内被所述CPU实际执行的时长,计算模块20将其作为当前检测周期内所述预设任务在所述CPU的第一实际执行时长。需要说明的是,所述计算模块20在执行所述第一执行时长与所述第一中断时长的相减操作时,将相减结果的绝对值作为所述第一执行时长与所述第一中断时长的差值。
所述计算模块20还用于获取上一检测周期内所述预设任务在所述CPU的第二实际执行时长,并基于所述第一实际执行时长、所述第二实际执行时长以及所述检测周期,计算所述预设任务在所述CPU的执行占用率。
本实施例中,所述计算模块20获取上一检测周期内所述预设任务在所述CPU的第二实际执行时长可参照前述技术方案施行,此处不再赘述。
在获取到所述第一实际执行时长以及所述第二实际执行时长之后,计算模块20将所述第一实际执行时长与所述第二实际执行时长的差值(取绝对值)作为所述预设任务在当前检测周期内在所述CPU的实际执行时长,并将所述实际执行时长与检测周期的比值作为所述预设任务在所述CPU的执行占用率。
进一步地,在本实施例中,所述CPU占用率检测装置还包括显示模块,用于显示所述预设任务在所述CPU的执行占用率。
容易理解的是,进行CPU占用率检测的目的在于,提供系统性能监控、性能调优以及故障定位等不可或缺的基础数据,本实施例中,在计算模块20计算出所述预设任务在所述CPU的执行占用率后,显示模块显示所述预设任务在所述CPU的执行占用率,以供用户进行相应的操作。
本实施例提出的CPU占用率检测装置,通过分别对待检测任务在两个检测周期内在CPU的实际执行时长进行统计,剔除了CPU因执行中断例程而导致的执行时长误差,并进一步基于统计的实际执行时长以及检测周期,计算所述预设任务在CPU的执行占用率。相较于现有技术,本发明能够提高检测CPU占用率的精确度。
进一步地,基于第一实施例,提出本发明CPU占用率检测装置的第二实施例,在本实施例中,所述获取模块10还用于在当前检测周期内,基于所述预设任务每次切入所述CPU以及每次切出所述CPU的时间点计算所述预设任务的每次执行时长,将当前检测周期内所述预设任务的每次执行时长进行累加,并将累加的结果作为所述第一执行时长;以及基于所述预设任务每次到中断例程的入口以及每次中断例程到所述预设任务的出口的时间点计算中断例程的每次执行时长,将当前检测周期内中断例程的每次执行时长进行累加,并将累加的结果作为所述第一中断时长。
需要说明的是,在本实施例中,各时间点的记录是通过读取所述CPU的时间戳计数器(Time Stamp Counter,TSC)记录的。其中,TSC是CPU中的一个计数器,它记录自CPU启动以来消耗的时钟周期数。TSC提供了非常高的计时精度,TSC记录的时钟周期数可以被转化为秒,方法是将其除以CPU的主频。例如,目前主流CPU的主频为1.5-3.5GHz,其TSC的精度可达纳秒级。
具体地,在当前检测周期内,获取模块10侦测到预设任务切入到CPU执行时,记录切入时间点,侦测到所述预设任务切出所述CPU时,记录切出时间点,相邻的所述切入时间点和所述切出时间点的差值即为所述预设任务的一次执行时长,将所述预设任务的每次执行时长进行累加,并将累加的结果作为所述第一执行时长,即所述预设任务在当前检测周期内,切入CPU的总执行时长。本领域技术人员可以理解的是,在CPU执行任务的过程中,当中断到达时,CPU会暂停正在执行的任务,而跳转去执行相应的中断例程,在中断例程执行完成后,再跳转至任务继续执行,导致任务的执行时长中叠加了中断例程的执行时长。有鉴于此,在本实施例中,获取模块10同时还基于所述预设任务每次到中断例程的入口以及每次中断例程到所述预设任务的出口的时间点计算中断例程的每次执行时长,将当前检测周期内中断例程的每次执行时长进行累加,并将累加的结果作为所述第一中断时长,即当前检测周期内,所述CPU因执行中断例程而暂停执行所述预设任务的时间长度。
需要说明的是,前述获取模块10统计所述第一中断时长时,在所有中断例程的共同入口的开始处和结束处读取TSC的计数值,以记录中断例程的开始时间点和结束时间点,相邻的所述开始时间点和所述结束时间点的差值即为中断例程的一次执行时长,这个执行时长可能包含了该中断例程嵌套了其它中断例程的情况,本实施例获取模块10只记录所述预设任务到中断例程的入口以及该中断例程到所述预设任务的出口的时间点,而不区分该时长是哪个中断例程的执行时长。
进一步地,由于任务在CPU的执行是以进程的形式体现的,而进程包括至少一个线程,CPU在某一时刻只能执行一个线程。本实施例中,在统计任务的实际执行时长时,获取模块10需要遍历任务对应进程(线程组)中各线程进行时间统计。具体地,当线程调度运行时,获取模块10将线程此次调度期间的运行时间累加至对应进程的总执行时长中,以及将线程此次调度期间的中断时长累加至对应进程的总中断时长中;将累加的总执行时长减去累加的总中断时长,即进程(任务)的实际执行时长。
本实施例获取模块10基于CPU的TSC进行计时统计,能够进一步地提升检测CPU占用率的精确度。
进一步地,基于第一或第二实施例,提出本发明CPU占用率检测装置的第三实施例,在本实施例中,所述获取模块10还用于获取上一检测周期内所述预设任务在所述CPU的第二执行时长以及第二中断时长;
所述计算模块20还用于基于所述第一中断时长、第二中断时长以及所述检测周期,计算所述预设任务在所述CPU的中断占用率。
本实施例中,在获取模块10获取到所述第一中断时长以及所述第二中断时长之后,计算模块20将所述第一中断时长和所述第二中断时长的差值(取绝对值)作为所述预设任务在当前检测周期内在所述CPU的中断时长,并将所述中断时长与检测周期的比值作为所述预设任务在所述CPU的中断占用率。
进一步地,基于第三实施例,提出本发明CPU占用率检测装置的第四实施例,在本实施例中,所述计算模块20还用于累加各所述预设任务在所述CPU的中断占用率,并将累加的结果作为中断例程在所述CPU的执行占用率。
本实施例中,所述预设任务包括所述CPU执行的所有工作任务和空闲任务,计算模块20通过累加各所述预设任务在所述CPU的中断占用率,即累加所述CPU在执行任务过程中,执行的各中断例程在所述CPU的执行占用率,将累加的结果作为中断例程在所述CPU的执行占用率,实现系统级CPU占用率检测。
需要说明的是,在本实施例中,获取模块10统计的中断时长包括硬中断时长和软中断时长之和。基于本实施例提出的技术方案,本领域技术人员可以理解的是,获取模块10还可仅对CPU执行的硬中断进行统计,以实现硬中断在CPU的执行占用率的检测。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种CPU占用率检测方法,其特征在于,所述CPU占用率检测方法包括:
获取当前检测周期内预设任务在CPU的第一执行时长以及第一中断时长;
在获取到所述第一执行时长以及第一中断时长时,将所述第一执行时长和所述第一中断时长的差值,作为当前检测周期内所述预设任务在所述CPU的第一实际执行时长;
获取上一检测周期内所述预设任务在所述CPU的第二实际执行时长,并基于所述第一实际执行时长、所述第二实际执行时长以及所述检测周期,计算所述预设任务在所述CPU的执行占用率。
2.如权利要求1所述的CPU占用率检测方法,其特征在于,所述获取当前检测周期内预设任务在CPU的第一执行时长以及第一中断时长的步骤包括:
在当前检测周期内,基于所述预设任务每次切入所述CPU以及每次切出所述CPU的时间点计算所述预设任务的每次执行时长,将当前检测周期内所述预设任务的每次执行时长进行累加,并将累加的结果作为所述第一执行时长;
基于所述预设任务每次到中断例程的入口以及每次中断例程到所述预设任务的出口的时间点计算中断例程的每次执行时长,将当前检测周期内中断例程的每次执行时长进行累加,并将累加的结果作为所述第一中断时长。
3.如权利要求2所述的CPU占用率检测方法,其特征在于,各时间点通过读取所述CPU的时间戳计数器记录。
4.如权利要求1或2所述的CPU占用率检测方法,其特征在于,所述在获取到所述第一执行时长以及第一中断时长时,将所述第一执行时长和所述第一中断时长的差值,作为当前检测周期内所述预设任务在所述CPU的第一实际执行时长的步骤之后,还包括:
获取上一检测周期内所述预设任务在所述CPU的第二执行时长以及第二中断时长;
基于所述第一中断时长、第二中断时长以及所述检测周期,计算所述预设任务在所述CPU的中断占用率。
5.如权利要求4所述的CPU占用率检测方法,其特征在于,所述基于所述第一中断时长、第二中断时长以及所述检测周期,计算所述预设任务在所述CPU的中断占用率的步骤之后,还包括:
累加各所述预设任务在所述CPU的中断占用率,并将累加的结果作为中断例程在所述CPU的执行占用率。
6.一种CPU占用率检测装置,其特征在于,所述CPU占用率检测装置包括:
获取模块,用于获取当前检测周期内预设任务在CPU的第一执行时长以及第一中断时长;
计算模块,用于在获取到所述第一执行时长以及第一中断时长时,将所述第一执行时长和所述第一中断时长的差值,作为当前检测周期内所述预设任务在所述CPU的第一实际执行时长;
所述计算模块还用于获取上一检测周期内所述预设任务在所述CPU的第二实际执行时长,并基于所述第一实际执行时长、所述第二实际执行时长以及所述检测周期,计算所述预设任务在所述CPU的执行占用率。
7.如权利要求6所述的CPU占用率检测装置,其特征在于,所述获取模块还用于在当前检测周期内,基于所述预设任务每次切入所述CPU以及每次切出所述CPU的时间点计算所述预设任务的每次执行时长,将当前检测周期内所述预设任务的每次执行时长进行累加,并将累加的结果作为所述第一执行时长;以及基于所述预设任务每次到中断例程的入口以及每次中断例程到所述预设任务的出口的时间点计算中断例程的每次执行时长,将当前检测周期内中断例程的每次执行时长进行累加,并将累加的结果作为所述第一中断时长。
8.如权利要求7所述的CPU占用率检测装置,其特征在于,各时间点通过读取所述CPU的时间戳计数器记录。
9.如权利要求6或7所述的CPU占用率检测装置,其特征在于,所述获取模块还用于获取上一检测周期内所述预设任务在所述CPU的第二执行时长以及第二中断时长;
所述计算模块还用于基于所述第一中断时长、第二中断时长以及所述检测周期,计算所述预设任务在所述CPU的中断占用率。
10.如权利要求9所述的CPU占用率检测装置,其特征在于,所述计算模块还用于累加各所述预设任务在所述CPU的中断占用率,并将累加的结果作为中断例程在所述CPU的执行占用率。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510460096.4A CN106708709A (zh) | 2015-07-30 | 2015-07-30 | Cpu占用率检测方法及装置 |
PCT/CN2015/092222 WO2017016074A1 (zh) | 2015-07-30 | 2015-10-19 | Cpu占用率检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510460096.4A CN106708709A (zh) | 2015-07-30 | 2015-07-30 | Cpu占用率检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106708709A true CN106708709A (zh) | 2017-05-24 |
Family
ID=57885123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510460096.4A Withdrawn CN106708709A (zh) | 2015-07-30 | 2015-07-30 | Cpu占用率检测方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106708709A (zh) |
WO (1) | WO2017016074A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491378A (zh) * | 2017-08-31 | 2017-12-19 | 杭州迪普科技股份有限公司 | 一种cpu占用率的确定方法及装置 |
CN109002377A (zh) * | 2018-07-26 | 2018-12-14 | 郑州云海信息技术有限公司 | 一种处理器检测方法、处理器检测装置以及计算机设备 |
CN109614305A (zh) * | 2018-12-11 | 2019-04-12 | 广东省新代通信与网络创新研究院 | 处理器的占用率获取方法、装置及计算机可读存储介质 |
CN111176869A (zh) * | 2019-08-01 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 超时检测方法、装置、设备及存储介质 |
CN111414295A (zh) * | 2020-03-09 | 2020-07-14 | 浙江大华技术股份有限公司 | 一种cpu占用率的统计方法、装置、设备及介质 |
CN111913805A (zh) * | 2020-07-31 | 2020-11-10 | 北京天融信网络安全技术有限公司 | 一种cpu利用率计算方法及装置 |
CN112162820A (zh) * | 2020-09-23 | 2021-01-01 | 广州六环信息科技有限公司 | 计时器的计时方法和装置 |
CN113419917A (zh) * | 2021-06-23 | 2021-09-21 | 蔚然(南京)动力科技有限公司 | 一种嵌入式操作系统任务和中断的cpu负载率计算方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324512A (zh) * | 2020-02-25 | 2020-06-23 | 北京云途腾科技有限责任公司 | 用于生成文本的方法、装置、电子设备和计算机可读介质 |
CN111427758A (zh) * | 2020-03-17 | 2020-07-17 | 北京百度网讯科技有限公司 | 任务计算量确定方法、装置和电子设备 |
US11281474B2 (en) | 2020-03-31 | 2022-03-22 | International Business Machines Corporation | Partial computer processor core shutoff |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1664789A (zh) * | 2004-03-04 | 2005-09-07 | 中兴通讯股份有限公司 | 一种检测实时操作系统cpu占用率的方法 |
CN101344865A (zh) * | 2008-08-15 | 2009-01-14 | 中兴通讯股份有限公司 | 一种cpu占用率测量方法及装置 |
CN103164321A (zh) * | 2013-03-20 | 2013-06-19 | 华为技术有限公司 | 中央处理器占用率测量方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100613201B1 (ko) * | 2000-08-28 | 2006-08-18 | 마이크로코넥트 엘엘씨 | 씨피유 사용량 측정 방법 |
CN100504808C (zh) * | 2006-09-11 | 2009-06-24 | 中兴通讯股份有限公司 | 一种测量多任务操作系统任务cpu占用率的方法 |
CN100474265C (zh) * | 2006-10-16 | 2009-04-01 | 大唐移动通信设备有限公司 | 微处理器占用率的统计方法 |
CN103455407A (zh) * | 2013-09-03 | 2013-12-18 | 小米科技有限责任公司 | 一种移动终端cpu占用率监测方法、装置及移动终端 |
-
2015
- 2015-07-30 CN CN201510460096.4A patent/CN106708709A/zh not_active Withdrawn
- 2015-10-19 WO PCT/CN2015/092222 patent/WO2017016074A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1664789A (zh) * | 2004-03-04 | 2005-09-07 | 中兴通讯股份有限公司 | 一种检测实时操作系统cpu占用率的方法 |
CN101344865A (zh) * | 2008-08-15 | 2009-01-14 | 中兴通讯股份有限公司 | 一种cpu占用率测量方法及装置 |
CN103164321A (zh) * | 2013-03-20 | 2013-06-19 | 华为技术有限公司 | 中央处理器占用率测量方法及装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491378A (zh) * | 2017-08-31 | 2017-12-19 | 杭州迪普科技股份有限公司 | 一种cpu占用率的确定方法及装置 |
CN109002377A (zh) * | 2018-07-26 | 2018-12-14 | 郑州云海信息技术有限公司 | 一种处理器检测方法、处理器检测装置以及计算机设备 |
CN109614305A (zh) * | 2018-12-11 | 2019-04-12 | 广东省新代通信与网络创新研究院 | 处理器的占用率获取方法、装置及计算机可读存储介质 |
CN111176869A (zh) * | 2019-08-01 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 超时检测方法、装置、设备及存储介质 |
CN111176869B (zh) * | 2019-08-01 | 2022-05-10 | 腾讯云计算(北京)有限责任公司 | 超时检测方法、装置、设备及存储介质 |
CN111414295A (zh) * | 2020-03-09 | 2020-07-14 | 浙江大华技术股份有限公司 | 一种cpu占用率的统计方法、装置、设备及介质 |
CN111913805A (zh) * | 2020-07-31 | 2020-11-10 | 北京天融信网络安全技术有限公司 | 一种cpu利用率计算方法及装置 |
CN111913805B (zh) * | 2020-07-31 | 2023-11-28 | 北京天融信网络安全技术有限公司 | 一种cpu利用率计算方法及装置 |
CN112162820A (zh) * | 2020-09-23 | 2021-01-01 | 广州六环信息科技有限公司 | 计时器的计时方法和装置 |
CN113419917A (zh) * | 2021-06-23 | 2021-09-21 | 蔚然(南京)动力科技有限公司 | 一种嵌入式操作系统任务和中断的cpu负载率计算方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2017016074A1 (zh) | 2017-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106708709A (zh) | Cpu占用率检测方法及装置 | |
JP5299161B2 (ja) | 計算機装置および消費電力のサンプリング方法 | |
Ricos et al. | Quality indicators and specifications for the extra-analytical phases in clinical laboratory management | |
JP5077711B2 (ja) | 時系列分析装置、時系列分析方法、及びプログラム | |
CN106597096B (zh) | 一种时钟频率监测方法 | |
CN100504808C (zh) | 一种测量多任务操作系统任务cpu占用率的方法 | |
CN106796678B (zh) | 在包装流水线中的质量监控 | |
CN108154252A (zh) | 用于预估流程完成时间的方法和装置 | |
CN100501694C (zh) | 处理器利用率的测量装置及方法 | |
CN109298929A (zh) | 定时任务执行时间推荐方法、装置、设备和存储介质 | |
CN102622300A (zh) | 多任务系统中死循环或类死循环的检测方法 | |
Peguero et al. | Assessing jitter in sensor time series from android mobile devices | |
US20140207504A1 (en) | System and method of calculating task efforts and applying the results for resource planning | |
US11244235B2 (en) | Data analysis device and analysis method | |
CN108999902A (zh) | 一种提高起重机制动下滑量精度的测量方法及装置 | |
Hankinson | Beyond the peak flow meter: newer technologies for determining and documenting changes in lung function in the workplace. | |
US9015718B1 (en) | Identifying task instances that interfere with processor performance | |
CN208669907U (zh) | 一种提高起重机制动下滑量精度的测量装置 | |
Paris | A framework for non-intrusive load monitoring and diagnostics | |
Stafoggia et al. | Long-term health effects of air pollution: results of the European project ESCAPE | |
CN104469495B (zh) | 用于视频播放的点击行为监测方法和装置 | |
CN106201750A (zh) | 一种基于linux内存错误的处理方法及装置 | |
US8949862B2 (en) | Rate of operation progress reporting | |
US7971190B2 (en) | Machine learning performance analysis tool | |
CN110427294A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20170524 |
|
WW01 | Invention patent application withdrawn after publication |