微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

valgrind 的 cachegrind 仍然是 2021 年的首选工具吗?

如何解决valgrind 的 cachegrind 仍然是 2021 年的首选工具吗?

我长期使用 cachegrind 进行程序分析,最近又回去查看官方文档:https://valgrind.org/docs/manual/cg-manual.html

其中多次引用了 cpu 模型、实现决策和仿真模型,这些模型都是 2000 年代中期的,并且还声明了“现代”处理器上的某些行为发生了变化:

LL 缓存通常复制 L1 缓存的所有条目 [...] 这是 Pentium 芯片的标准配置,但 AMD Opterons、Athlons 和 Durons 使用独占的 LL 缓存 [...]

Cachegrind 模拟了 2004 年左右主流桌面/服务器处理器的典型分支预测器。

最近的处理器具有更好的分支预测器 [...] Cachegrind 的预测器设计是故意保守的,以便代表在更复杂的间接分支预测器广泛部署之前的大型处理器安装基础。特别是后期模型 Pentium 4s (Prescott)、Pentium M、Core 和 Core 2 比 Cachegrind 模型具有更复杂的间接分支预测器。

现在我想知道

  • 在最新一代 cpu 上进行开发时,这些选择中有多少仍然适用于 2021 年,
  • cachegrind 的实现是否已更新以反映最新的 cpu,但手册已过时,
  • cachegrind 在现代 cpu 上是否由于其对旧行为的模拟而显示偏斜的结果。

非常感谢任何见解!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?