PMU性能分析系列1 - 相关事件的理解 - Basic Performance Tuning Events

原创 2012年03月22日 21:59:16

以Intel(R) Microarchitecture Code Name Nehalem系列的CPU为例,以VTune工具作为测试手段来理解(因为我的CPU是这个系列的。)


基本的性能调优事件

使用这些事件能了解代码中最耗时和执行最多指令的部分
其中三个事件是fixed counter(固定计数器,参考18.4.1 Fixed-function Performance Counters了解其概念),简单理解它们用于计数对应的预定义的一些事件。


1. CPU_CLK_UNHALTED

Programable counter version of the unhalted cycle counter

表示非停机状态的机器周期数。

很显然,对于一个程序,这个事件的数目越少越好,表明其运行状态(非停机状态)消耗的机器周期少,即耗时少。其有三个扩展:

THREAD_P:非停机状态下线程的机器周期。线程在运行HLT指令的时候进入halt state(停机状态)。由于CPU核的频率会不断变化,这个事件数目和时间的比例是变化的。

TOTAL_CYCLES:CPU机器周期数目的总和,halted+unhalted(除了处于深度睡眠状态)。

REF_P:线程在非停机状态下,计数base clock(133Mhz)的参考机器周期数目。很显然,这个事件不会被频率影响,就好象是线程运行一直运行在一个最大的频率一样。


2. CPU_CLK_UNHALTED.REF

Reference cycles when thread is not halted (fixed counter)

和上面的CPU_CLK_UNHALTED的REF_P的含义相同。


3. CPU_CLK_UNHALTED.THREAD

Cycles when thread is not halted (fixed counter)

和上面的CPU_CLK_UNHALTED的THREAD_P的含义相同。


4. INST_RETIRED.ANY

Instructions retired ( fixed counter ) 

表示消耗的指令数,计数执行过程中消耗的指令数。

说明:关于retire,一般表示退休什么的意思,这里其实其含义就是“消耗”,retirement表示指令隐退,或者可以理解为其技术指令从执行到退出的那个退出的次数,自然,其实就表示消耗的指令数了。:)

对于包含多个微操作(micro-op)的指令,其只对最后一个微操作的指令引退进行计数,即只计数一次。


5. THREAD_ACTIVE

Cycles thread is active

线程处于active状态下的机器周期数。



性能指标之CPI:

Clockticks per Instructions Retired (CPI)

即Cycles per Instructions,表示每一条指令消耗的时钟周期。这是一个基础的性能指标之一,在进行性能分析时,其一般是首先会分析的一个指标。

很显然,CPI的值越小越好,CPI的计算为:Clockticks / Instructions Retired。如:

CPI=CPU_CLK_UNHALTED.THREAD/INST_RETIRED.ANY

说明:如果要计算一个函数的CPI,就使用相应的事件计算,这里的例子是计算整个thread的CPI。

根据经验值,如果CPI小于0.75,那么认为其性能是不错的。如果大于0.75,就需要考虑进行优化了。

PMU性能分析系列1 - 相关概念

类似文章: http://blog.sina.com.cn/s/blog_6cfddec10100mck9.html http://bbs.lmtw.com/dispbbs.asp?boardid...

PMU性能分析系列1 - 相关概念

类似文章: http://blog.sina.com.cn/s/blog_6cfddec10100mck9.html http://bbs.lmtw.com/dispbbs.asp?boardid...

Zabbix 3.0 部署监控 [三]

Zabbix 3.0 部署监控 [三]标签(空格分隔): zabbix 时间:2016年9月22日 **笔者QQ:381493251 Abcdocker交流群:454666672 如果遇到什么...

PMU性能分析系列1 - 相关概念

http://blog.csdn.net/gengshenghong/article/details/7383438?1345050035   类似文章: http://blog.sin...

Oracle Performance Tuning Overview 翻译(Oracle性能优化概述 自己的中英文比对翻译)

Oracle® Database Performance Tuning Guide 10g Release 2 (10.2) B14211-03 Home Book List ...

Mule Tuning Performance Mule性能调优

一个Mule应用就是一个service集合的协作体,service按以下3个阶段处理消息: Connector连接器 接收阶段Service component组件 处理阶段Connector连...

hadoop性能优化指南《Hadoop Performance Tuning Guide》

3.0性能优化

游标脚本性能问题解决与分析 (1) - Cursor Performance Analysis

第一部分:游标类型对性能影响的实例引出 下面的两个游标脚本分别创建并执行了dynamic和fast forward only两种类型的游标: 不理想的游标类型:(dynamic游标...
  • apgcdsd
  • apgcdsd
  • 2011年08月20日 18:12
  • 512
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PMU性能分析系列1 - 相关事件的理解 - Basic Performance Tuning Events
举报原因:
原因补充:

(最多只允许输入30个字)