不用vtune中default的设定,自定义几个设定
1. 新建一个Activity --> Sampling WIzard --> 点击OK
选择Win32与之前《一》中的步骤相同,之后,再打开matrix.exe文件,在Application to的空白处出现了matrix.exe
由于要添加自己的设定,所以点击下一步,直到如下界面,
在图中红线勾画的地方 打钩,
2. 点击完成,之后会出现下图,选中Configuration
如下图,选中Calibrate Sample After Value for all the selected events
之后是修改events , 点击events选项卡, 进入下面页面,选中蓝色部分两个vtune默认的event, 然后点击remove
选中下图中的row, 然后该项被add进入selected events中
最后改一个参数, 改为1000
之后修改一下测试时间,改为10秒
3 运行的过程中, 此时的结果如下,
发现MEM_LOAD_RETIRED.DTLB_MISS samples为135154 偏离1000 较大
4 上述结果是选择了Don't Calibrate Sample after Value ,接下来做一点改动,测试一下如果没有选择Don't 会是什么样的结果
右击,上面新建的那个Activity, 点击modify activity
勾选中上面这个,点击OK
5. 之后点击Configure, 选择Don't Calibrate Sample After value
6. 点击确定 - 确定, 然后点击Run Activity 发现这个程序在这里跑了两次,
结果为1942, 更加接近1000
为什么Sample After的设定为1000之后, 使用Calibrate与否会得到不同的结论呢?
首先, Sample After的意思是: 每个逻辑CPU每秒的采样值,如果当时选择的是Don't Calibrate Sample After Value,则得到的是用缺省值或估计值开始的测试
对于这个matrix.exe程序的结果做点分析,
1. 结果是1942 接近1000
2. 相比于Don't Calibrate的结果135154,calibrerate过的结果1943笑了10的2个数量级
3. 时间如下图,耗时0.94 second
4. 测试一下100组Sample After的结果, 过程不变copy一个但是修改一下Sample After的值
耗时0.91