您使用过像Intel Vtune analyzer这样的性能分析工具吗?
对于在Linux和Windows上运行的C++多线程应用程序,您有什么建议?我主要关注缓存未命中,内存使用,内存泄漏和CPU使用率。
我通常只在UNIX上使用valgrind来查找内存错误和泄漏。
您使用过像Intel Vtune analyzer这样的性能分析工具吗?
对于在Linux和Windows上运行的C++多线程应用程序,您有什么建议?我主要关注缓存未命中,内存使用,内存泄漏和CPU使用率。
我通常只在UNIX上使用valgrind来查找内存错误和泄漏。
以下是适用于多线程应用程序的优秀工具。您可以尝试评估副本。
编辑: Intel线程检查器可用于诊断数据竞争、死锁、停滞线程、放弃的锁等问题。请在分析结果时保持耐心,因为很容易感到困惑。
一些提示:
VTune可以为您提供处理器正在执行的详细信息,但有时我发现很难从中看到重点。 VTune不会报告内存泄漏。要查找内存泄漏,您需要使用Purify Plus,或者如果您可以在Linux上运行,Valgrind对于内存泄漏也是一个好的且价格实惠的选择。
VTune显示两个视图,一个有用的是表格视图,另一个我认为只是为了让销售人员给人留下印象,但没有多大用处。
对于快速和廉价的选项,我会选择Valgrind。 Valgrind还有一个CacheGrind部分,但我没有使用过,但认为它也非常好。
谢谢, 马丁。
Rational PurifyPlus 套件包括一个经过充分验证的泄漏检测器和相当不错的分析器。我不确定它是否能够到达缓存未命中的级别,你可能需要使用 VTune。
PurifyPlus 可在各种 Unix 和 Windows 上使用,因此它应该符合您的要求,但不幸的是,与 Valgrind 相比,它不是免费的。