fan*_*sid 5 testing multithreading deadlock code-coverage call-graph
我想知道是否有工具可以
最终,我希望根据线程在运行时(多线程代码覆盖工具)之间如何相互交互来进行代码覆盖,以便找到潜在的多线程错误.
如果我没有清楚地解释我的问题,我很抱歉,我很乐意提供任何细节.
Intel 的VTune Profiler可以满足您的一些要求。来自 VTune 网站:
\n\n锁定和等待:使用 Intel\xc2\xae 性能分析工具快速找到并行程序中性能缓慢的常见原因:锁定等待时间过长,而等待期间内核未得到充分利用。
\n\n时间轴可视化线程行为:查看线程何时运行和等待,以及何时发生转换。
\n\n如果您正在寻找开源/免费的东西,那么Valgrind有一个名为 Helgrind 的实验工具,据说可以在多线程程序中查找竞争。我无法评论它,我没有使用过它。
\n\n我应该指出,我还没有成功地利用这些或其他分析器进行多线程调试和优化,相反,我开发了自己的技术。
\n\n为了识别锁争用,我的首选技术是使用扩展的 Mutex 类来记录在每个实例上完成的所有操作。我以非常轻量级的方式执行此操作,以便应用程序性能不会发生很大变化。
\n\n为了确定竞争条件,我发现蛮力方法是最好的。我只是设计一个可以运行很长一段时间的测试,有时需要几个小时或几天,具体取决于情况。我总是在至少两个不同的平台上运行测试(如果可以的话更多),因为不同的操作系统使用不同的调度程序,这可以提供更好的覆盖范围。
\n| 归档时间: |
|
| 查看次数: |
1536 次 |
| 最近记录: |