一种CPU占用率测量方法及装置制造方法及图纸

技术编号:2820841 阅读:327 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种CPU占用率的测量方法及装置,涉及计算机操作系统领域。本发明专利技术方法包括:利用硬件定时器产生定时中断,采样被中断函数的程序计数器记录的值并存储;根据存储的数据进行函数名解析,统计函数使用次数并分析系统各函数的执行率情况。本发明专利技术给出了更为精确的CPU占用率测量途径,为把握系统执行效率提供了更为有效的依据。

【技术实现步骤摘要】

本专利技术涉及计算机操作系统领域,特别涉及一种CPU占用率测量方法及装置。
技术介绍
在计算机操作系统中,CPU使用率是一项衡量系统性能的重要指标。 传统的CPU占用率是进程(嵌入式操作系统领域也称为任务)级別的,统 计的是一个进程在最近一段时间内的CPU的使用率情况,在这种统计方法 中所有任务的占用率之和应该为100%不考虑操作系统本身开销的情况。通 过对各个进程CPU占用率的观察,可以对系统当前的运行状态有一个大致的把握,例如某一任务进入死循环状态,那么这种故障会直接体现在该进程的CPU使用率上。程序员通过对CPU使用率的^r查,可以方便的定位出 哪一个进程出现了问题,使用操作系统相关的调试指令可以进一步将故障 定位到具体函数。但是在实际的工程项目中,问题并不总是和上述死循环 故障一样易于发现。衡量一个软件系统的总体效率,光靠某一时段的系统进程CPU占用率 并不能说明问题。当软件系统在引入了某一新模块(或功能)导致整个系 统的执行效率有所下降,此时1又仅凭进程CPU占用率几乎很难发现问题的 产生,因为一个进程会调用很多的函数,同一个函数也可能被很多进程所 调用,所以,只有精确的获取到每个函数的CPU利用率,才能够有针对性 的对CPU利用率高的函数进行优化,从而对这些函数进行优化,这样才能够迅速解决软件系统的性能瓶颈。可见,现有技术存在一定的问题,有待进一步地改进。
技术实现思路
本专利技术目的在于提供一种CPU占用率测量方法及装置,其能提供函数 级别的CPU占用率情况,为把握系统执行效率提供更为有效的依据。 为了实现上述目的,.本专利技术釆用如下技术方案 本专利技术提供了一种CPU占用率测量方法,该方法包括以下步骤A、 利用硬件定时器产生定时中断,采样被中断函数的程序计数器记录 的值并存储;B、 根据存储的数据进行函数名解析,统计所有函数的使用次数并得出 系统各函数的执行率情况。所述的方法,其中,所述步骤A包括以下步骤 Al、硬件定时器产生定时中断;A2、采样被中断函数的程序计数器记录的值,并将该值存入一全局变量;A3、判断当前中断是否是^_件定时器产生的用来采样的定时中断,若 是,则执行步骤A4;A4、根据一緩冲数据池索引值以及该池内索引值确定的当前存储位置, 将所述全局变量存入所述緩冲数据池中。所述的方法,其中,所述步骤A还包括以下步骤A5、判断所述緩冲数据池内索引值是否超过该緩冲数据池的最大緩沖 大小,若超过,则执行步骤A6;A6、唤醒一用于向宿主机发送数据的发送代理进程,将所述緩冲数据 池索引值发送给所述发送代理进程,并查找下一个空闲的緩冲数据池用来 存放采样的数据;A7、所述发送代理进程获取相应緩冲池索引值后,将该緩冲池数据发送到宿主才几;A8、数据发送完成后,将该緩冲数据池标记为空闲可用。 所述的方法,其中,所述步骤B包括以下步骤Bl、所述宿主机接收所述緩冲数据池中存储的数据,并将该数据写入 数据记录文件中,该数据记录文件用于记录緩沖数据池中的数据及相关进 程信息。所述的方法,其中,所述步骤B还包括以下步骤 B2、根据函数CPU占用率查询指令,所述宿主机停止接收数据; B3、读取版本符号表,建立基于地址大小的线性索引表; B4、打开所述it据记录文件,对所述数据记录文件中的数据进行所属 函数名解析;B5、统计所有函数的调用计数值,并计算各函数的执行率,将所述执 行率作为各函数的CPU占用率进行输出。本专利技术还提供了一种CPU占用率测量装置,所述装置包括定时中断 模块,用于利用硬件定时器产生定时中断,采样被中断函数的程序计数器 记录的值并存储;数据发送模块,用于将存储的数据发送到数据处理模块 中;及数据处理模块,用于根据存储的数据进行函数名解析,统计所有函 数的使用次数,并得出系统各函数的执行率情况。所述的装置,其中,所述定时中断模块包括定时中断发生单元,用 于利用硬件定时器产生定时中断;及提取单元,用于采样被中断函数的程 序计数器记录的值,并将该值存储在存储介质中。所述的装置,其中,所述存储介质包括至少一个緩冲数据池,所述緩 冲数据池的索引值指向所述被中断函数的程序计数器记录值的存储位置。所述的装置,其中,所述定时中断模块还包括 一数据池维护单元, 用于监测所述緩冲数据^的状态,当一緩冲数据池中存储的数据达到一预 设数量时,获取该緩冲数据池的索引值,并向数据代理发送模块上报该索引值;且,所述数据代理发送模块用于根据所述索引值,将相应的緩冲数 据池中存储的数据发送到所述数据处理模块。所述的装置,其中,数据接收单元,用于接收所述緩冲数据池中存储 的数据,并将该数据写入一数据记录文件中,该数据记录文件用于记录緩 冲数据池中的数据及相关进程信息;及数据分析单元,用于根据函数CPU 占用率查询指令,使所述数据接收单元停止接收数据,并根据基于地址大 小的线性索引表,对所述数据记录文件中的数据进行所属函数名解析,统 计所有函数的调用计数值,并计算各函数的执行率,将所述执行率作为各 函数的CPU占用率进行输出。有益效果:相比传统的进程CPU占用率,本专利技术能给出更为精确的CPU 占用率测量方法,为把握系统执行效率提供更为有效的依据。本专利技术可以 获得与各个函数名相对应的系统CPU的执行情况,这种直接与函数名相对 应的CPU占用率表现方式,更加直观的表现了系统当前的运行状态,更加 有利于用户发现系统的性能瓶颈的所在,^使于用户对CPU利用率较高的函 数进行优化,解决软件系统出现的问题,能很好地改善系统的性能。附图说明图1为硬件定时器的中断执行流程图2为发送代理进程的执行流程图3为宿主机数据接收流程示意图4为宿主机对数据进行函数级CPU占有率分析的流程示意图5为本专利技术的装置结构示意图。具体实施例方式本专利技术的主要构思是,通过硬件定时器产生定时中断,对被中断函数 的程序计数器记录的值(即该函数执行位置的PC值)进行提取与储存,然后根据存储结果进行函数名解析,统计所有函数的使用次数并分析得出系 统各函数的执行率情况。这一方法中,可以通过建立一定时器中断执行程序来完成PC值的读取和存储,并将PC值存储到特定的緩沖数据池中,当緩冲池被写满的时候,定时器中断执行程序激活相应的发送进程,将緩冲 数据池的采样值发送至i>c机的相关处理单元进行数据的处理。在对上述PC值数据进行发送处理时,还可以建立一个专门用于向宿主 机(比如PC机)发送PC值数据的发送代理进程,当定时器中断执行程序 中发现緩冲数据池满时,唤醒该发送代理进程,发送代理进程获取相应緩 冲池索引号后,将该緩沖池数据发送到宿主机的相关处理单元中。以下结合附图详细说明本专利技术技术方案的实现过程。本专利技术在执行上述pc值的提取及存储过程时,可建立如图i所示的定时器中断执行程序,如下所示步骤110:进入中断;步骤120:采样被中断函数的PC值,将被中断函数的PC值存入全局 变量PcTemp;步骤130:判断当前中断是不是硬件定时器产生的用来采样的中断,如果不是进入普通中断流程,如果是进入步骤140;步骤140:根据当前緩冲数据池索引值以及池内索引值确定当前存储位 置,将PcTemp存入,緩冲数据池内索引值加l;步骤150:判断.当前緩冲池内索引值是否超过最大緩沖大小,如果不本文档来自技高网...

【技术保护点】
一种CPU占用率测量方法,其特征在于,该方法包括以下步骤: A、利用硬件定时器产生定时中断,采样被中断函数的程序计数器记录的值并存储; B、根据存储的数据进行函数名解析,统计所有函数的使用次数并得出系统各函数的执行率情况。

【技术特征摘要】

【专利技术属性】
技术研发人员:曾照恒徐军
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1