首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分析C++多线程应用程序

分析C++多线程应用程序
EN

Stack Overflow用户
提问于 2009-03-12 10:50:14
回答 7查看 16.7K关注 0票数 10

您是否使用过英特尔Vtune分析器等评测工具?

你对Linux和windows上的C++多线程应用程序有什么建议?我主要对缓存未命中、内存使用、内存泄漏和CPU使用情况感兴趣。

我使用valgrind (仅在UNIX上),但主要用于查找内存错误和泄漏。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-03-12 11:04:49

以下是多线程应用程序的优秀工具。您可以尝试评估副本。

  1. 运行时健全性检查工具
    • 线程检查器--英特尔线程检查器/ VTune,here

内存一致性检查工具(内存使用,内存泄漏)-内存验证器,here

  • Performance
  1. 。(CPU使用率)- here

、AQTime

EDIT:英特尔线程检查器可用于诊断数据争用、死锁、线程停滞、被放弃的锁等。请耐心分析结果,因为它很容易混淆。

几个小贴士:

  1. 禁用不需要的功能。(在识别死锁的情况下,可以禁用数据竞争,反之亦然。)
  2. 根据您的需要使用规范级别。像“所有函数”和“完整图像”这样的级别用于数据竞争,其中"API Imports“可用于死锁detection)
  3. use上下文相关菜单”诊断帮助“。
票数 10
EN

Stack Overflow用户

发布于 2009-03-12 13:36:34

在Linux上,试试oprofile。它支持各种性能计数器。

在Windows上,AMD的CodeAnalyst (与VTune不同,是免费的)值得一看。它只支持AMD硬件上的事件分析(在Intel CPU上,它只是一个方便的基于定时器的分析器)。

一位同事最近尝试了Intel Parallel Studio (测试版),并给它打了个好评(它在一些代码中发现了一些有趣的与并行相关的问题)。

票数 5
EN

Stack Overflow用户

发布于 2009-03-12 11:14:04

VTune给了你很多关于处理器正在做什么的细节,有时我发现很难看到树的实际情况。VTune不会报告内存泄漏。为此,您将需要purify plus,或者如果您可以在Linux机器上运行,那么valgrind对于内存泄漏来说是非常好的,而且价格也很高。

VTune显示了两个视图,一个是有用的表格视图,另一个我认为只是供销售人员用来给人们留下深刻印象,但没有那么有用。

如果想要更快更便宜的选择,我会选择valgrind。Valgrind也有一个缓存研磨部分,但我没有用过它,但我怀疑它也很好。

干杯,马丁。

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

https://stackoverflow.com/questions/638090

复制
相关文章

相似问题

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