您是否使用过英特尔 Vtune 分析器等分析工具?
对于 Linux 和 Windows 上的 C++ 多线程应用程序,您有何建议?我主要对缓存未命中、内存使用、内存泄漏和 CPU 使用感兴趣。
我使用 valgrind(仅在 UNIX 上),但主要用于查找内存错误和泄漏。
最佳答案
以下是多线程应用程序的好工具。您可以试用评估版。
- 运行时完整性检查工具
- 线程检查器——英特尔线程检查器/VTune,here
- 内存一致性检查工具(内存使用情况、内存泄漏) - 内存验证器,here
- 性能分析。 (CPU使用率) - AQTime , here
编辑:英特尔线程检查器可用于诊断数据竞争、死锁、停滞线程、废弃锁等。请耐心分析结果,因为很容易混淆。
一些提示:
- 禁用不需要的功能。(如果发现死锁,可以禁用数据竞争,反之亦然。)
- 根据您的需要使用 Instrumentation 级别。 “所有功能”和“完整图像”等级别用于数据竞争,而“API 导入”可用于死锁检测)
- 经常使用上下文相关菜单“诊断帮助”。
关于c++ - 分析 C++ 多线程应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/638090/