您推荐哪些线程分析工具?

时间:2010-03-15 02:41:36

标签: c++ multithreading

我的主要IDE是Visual Studio 2005,我有一个大型的C / C ++项目。我对推荐的线程分析工具感兴趣。我的意思是,我想要一个静态或动态的工具来帮助找到竞争条件,死锁等。

到目前为止,我随便研究了以下内容: 1.英特尔线程检查器:我不相信它与VS 2005有关吗? 2. Valgrind / Helgrind:免费。 3.封面:如果我理解正确,这是一个昂贵的工具。

任何人都有这些或其他任何经验吗?我非常感谢任何建议。谢谢。

7 个答案:

答案 0 :(得分:2)

Visual Studio 2010中新的“Concurrency Visualizer”我认为是一个很好的线程分析工具。

答案 1 :(得分:2)

检查英特尔Parallel Studio。它支持VS2005。

答案 2 :(得分:1)

你看过CHESS了吗?:

  

CHESS是一种寻找和发现的工具   同时复制Heisenbugs   程式。 CHESS反复跑了一个   并发测试确保每一个   run需要不同的交错。如果   交错会导致错误,   CHESS可以重现交错   用于改进调试。 CHESS是   可用于托管和本机   程序

答案 3 :(得分:1)

英特尔的VTune Thread Profiler非常好。

答案 4 :(得分:1)

答案 5 :(得分:1)

我正在研究一个最初使用Windows线程和同步库编写的高线程应用程序。我将它移植到Linux / pthreads并且valgrind在检测和修复各种内存泄漏方面立即被证明是非常宝贵的。

我正在使用DRD&其余的valgrind套房,到目前为止一直很棒。它几乎没有学习曲线,非常容易使用。不幸的是,如果您的软件在Linux上运行,这只会对您有帮助。

答案 6 :(得分:0)

valgrind / racegrind只适用于linux(helgrind退役)。但是v很好并且是免费的

覆盖性很好但很昂贵 - 我不知道这是并发的东西。我们在大型高度线程化的代码库上运行它,它从不接受并发性的东西。现在可能是因为我们的代码是完美的(ha,如果只是),更可能是因为它没有找到它。但我要重申,这是一个很棒的静态分析器