首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于计算操作系统访问次数的硬件性能计数器

用于计算操作系统访问次数的硬件性能计数器
EN

Stack Overflow用户
提问于 2012-05-12 12:44:00
回答 1查看 748关注 0票数 2

我想在运行一些工作负载时收集性能计数器号。使用现有的LAPI性能计数器基础结构可以轻松地完成这一任务。但是,我想要更多的统计数据,比如

  1. 环级0、1、2、3的指令数
  2. 按不同环级别对l1缓存的加载请求数
  3. 环形开关的长度

因此,实际上,我想要区分操作系统和应用程序的内存访问。

有人能指点我怎么做吗?PS :我以前没有使用过性能计数器。所以,对你来说有些琐碎的事情可能真的对我有帮助。谢谢

PS :有没有任何方法可以在不改变应用程序行为的情况下获得系统的执行跟踪和内存访问跟踪。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-20 11:09:37

您可以使用硬件性能计数器(如perf )。

现代硬件提供硬件性能计数器,因此您的机器具有此功能的可能性很大。此外,您可能需要为它添加内核驱动程序。(对ubuntu来说,sudo apt是神奇的)。

对perf的一点描述(从上面的链接中导入)

Perf是一个用于基于Linux的系统的分析器工具,它抽象出2.6+性能度量中的CPU硬件差异,并提供了一个简单的命令行接口。Perf基于最近版本的Linux内核导出的perf_events接口。 perf工具支持可测量事件的列表。

在上面的链接中列出了这些事件。

假设在许多事件中,您希望获得下面的cycles事件的状态

perf stat -e cycles:u -e cycles:k -e cycles dd if=/dev/zero of=/dev/null count=100000,其中uk分别是用户和内核。还可以使用逗号分隔所有事件。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10563848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档