当我输入perf list命令时,我发现有两种事件:Hardware event和Hardware cache Event.两者有什么区别 ?
cache-misses和之间有什么区别LLC-misses?缓存未命中是否包括LLC未命中?
perf在测试程序时,工具是否会降低总体性能?
根据系统调用 的手册页perf_event_open(由用户级实用程序内部使用perf):
更重要的是,我想知道这是否与 [Intel\xc2\xae 64 和 IA-32 架构软件开发人员\xe2\x80\x99s 手册 3B]Intel\xc2\xae 64 和 中所谓的非架构和架构事件有某种联系IA-32 架构软件开发人员\xe2\x80\x99s 手册 3B 2 .
\n\n无论此分类的确切含义如何,如上一个问题cache-misses和我上面提到的手册页中所述,表示任何缓存都无法提供服务的内存访问次数。换句话说,就是末级缓存中缓存未命中的次数。因此,我猜这与 相同,不幸的是我无法在我的笔记本电脑上确认这一点,因为不受支持。LLC-missesLLC-misses
关于你的最后一个问题,性能监控产生的开销应该非常低。事实上,开销主要是由于读取计数器值,并且使用perf stat我猜想这种读取应该在执行结束时只执行一次(考虑到计数器不会溢出)