您是否使用过诸如 Intel Vtune 分析器之类的分析工具?
您对 Linux 和 Windows 上的 C++ 多线程应用程序有何建议?我主要对缓存未命中、内存使用、内存泄漏和 CPU 使用感兴趣。
我使用 valgrind(仅在 UNIX 上),但主要用于查找内存错误和泄漏。
以下是多线程应用程序的好工具。您可以尝试评估副本。
- Runtime sanity check tool
- 线程检查器——英特尔线程检查器/VTune,here
- 内存一致性检查工具(内存使用、内存泄漏)
- 内存验证器,here
- 性能分析。 (CPU使用率)
- AQ时间,here
EDIT:英特尔线程检查器可用于诊断数据争用、死锁、停滞线程、废弃锁等。请耐心分析结果,因为很容易混淆。
一些提示:
- 禁用不需要的功能。(如果发现死锁,可以禁用数据竞争,反之亦然。)
- 根据您的需要使用仪器级别。 “所有功能”和“完整图像”等级别用于数据竞争,其中“API 导入”可用于死锁检测)
- 经常使用上下文相关菜单“诊断帮助”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)