VS Profiler使用中的两个常见问题

1)sampling模式和instrumentation模式的区别

两者的区别:

在sampling模式中,profiler以固定的间隔对运行中的程序进行采样,根据采样结果统计出程序中各个部分的开销。

在instrumentation模式中,profiler对运行中的程序所执行的每一个指令都进行记录,最后根据这份记录生成程序中各个部分的开销。

在实际使用中:

sampling模式速度快,记录产生的数据量小,但是统计结果并不十分精确,适合于对程序全局性能进行初步的分析,找出程序瓶颈大致的“区间”。

instrumentation模式能精确记录程序各个部分的开销,但是速度慢,记录产生的数据量大,适合于对程序局部进行精细分析,精确定位瓶颈位置。

2)inclusive和exclusive的区别

不论是sampling和instrumentation模式,统计结果均包含inclusive项和exclusive项。下面以函数执行时间为例。

函数执行时间的inclusive项表示从进入该函数到退出该函数总共花费的时间,既包含了所调用的函数的inclusive执行时间。

函数执行时间的exclusive项仅仅包含函数自身的语句执行所花费的时间,并不包含其所调用的函数的时间开销。

posted @ 2010-01-12 15:41  chyojn  阅读(650)  评论(0编辑  收藏  举报