当前位置:  开发笔记 > 编程语言 > 正文

分析C++多线程应用程序

如何解决《分析C++多线程应用程序》经验,为你挑选了2个好方法。

您是否使用过英特尔Vtune分析仪等任何分析工具?

您对Linux和Windows上的C++多线程应用程序有什么建议?我主要对缓存未命中,内存使用,内存泄漏和CPU使用率感兴趣.

我使用valgrind(仅在UNIX上),但主要用于查找内存错误和泄漏.



1> aJ...:

以下是多线程应用程序的好工具.您可以尝试评估副本.

    运行时健全性检查工具

    线程检查器 - 英特尔线程检查器/ VTune,在这里

    内存一致性检查工具(内存使用,内存泄漏) - 内存验证器,这里

    绩效分析.(CPU使用率) - AQTime,这里

编辑:英特尔线程检查器可用于诊断数据竞争,死锁,停滞的线程,废弃的锁等.请分析结果有很多耐心,因为它很容易混淆.

几点提示:

    禁用不需要的功能.(如果识别死锁,可以禁用数据竞争,反之亦然.)

    根据您的需要使用仪器级别.像"All Function"和"Full Image"这样的级别用于数据竞争,其中"API Imports"可用于死锁检测)

    经常使用上下文相关菜单"诊断帮助".



2> timday..:

在Linux上,尝试oprofile.它支持各种性能计数器.

在Windows上,AMD的CodeAnalyst(免费,与VTune不同)值得一看.它仅支持AMD硬件上的事件分析(在Intel CPU上它只是一个方便的基于计时器的分析器).

一位同事最近尝试了英特尔Parallel Studio(测试版)并对其进行了评价(它在某些代码中发现了一些有趣的并行性相关问题).

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有