剖析C ++ multi
你有没有使用任何分析工具,如英特尔Vtune分析仪?
您对Linux和Windows上的C ++多线程应用程序有何建议? 我主要关心缓存未命中,内存使用情况,内存泄漏和CPU使用情况。
我使用valgrind(仅在UNIX上),但主要用于查找内存错误和泄漏。
以下是多线程应用程序的好工具。 您可以尝试评估副本。
编辑 :英特尔线程检查器可用于诊断数据竞争,死锁,停滞线程,被遗弃的锁等。请分析结果时有足够的耐心,因为它很容易混淆。
几点建议:
在Linux上,尝试oprofile。 它支持各种性能计数器。
在Windows上,AMD的CodeAnalyst(免费,不像VTune)值得一看。 它只支持在AMD硬件上进行事件分析(在Intel CPU上它只是一个方便的基于计时器的分析器)。
一位同事最近尝试了英特尔Parallel Studio(测试版),并对其进行了评价(在一些代码中发现了一些有趣的与并行相关的问题)。
VTune为您提供了很多关于处理器的细节,有时我发现很难看到树木。 VTune不会报告内存泄漏。 你需要purify plus,或者如果你可以在Linux上运行,Valgrind可以很好的价格处理内存泄漏。
VTune展示了两种观点,一种是表格式的,另一种我认为只是销售人员给人留下深刻印象,但没有那么有用。
对于快速和便宜的选择,我会用valgrind去。 Valgrind也有缓存研磨部分,但我没有使用它,但怀疑它也很好。
欢呼声,马丁。
链接地址: http://www.djcxy.com/p/40329.html上一篇: Profiling C++ multi