有没有像 Haskell 的 Threadscope 这样的 C/C++ 线程跟踪器?

2024-04-17

有没有像这样的免费开源工具线程范围 http://research.microsoft.com/en-us/projects/threadscope/(并且比NPTL 追踪工具 http://nptltracetool.sourceforge.net/)来分析CPU利用率/线程错误?


CPU利用率分析和线程错误检查器可以不在同一个工具中。为了找到线程错误,需要对内存访问进行大量分析。我可以命名 valngrind 的 helgrindhttp://valgrind.org/docs/manual/hg-manual.html http://valgrind.org/docs/manual/hg-manual.html和 google threadSanitizer、tsan(基于 helgrind)http://code.google.com/p/data-race-test/wiki/ThreadSanitizer http://code.google.com/p/data-race-test/wiki/ThreadSanitizer。这两个工具都通过 valgrind 的 libVEX 动态代码修改框架对代码进行运行时检测。这会导致速度大幅下降,例如对于 Helgrind(来自 hg 手册):

性能可能会很差。减速程度为100:1并不罕见。性能改进的空间有限。

对于 CPU 利用率,您应该使用分析器,它对应用程序的性能影响很小(最多 5-10%),例如oprofile或者linux的性能https://perf.wiki.kernel.org/index.php/Main_Page https://perf.wiki.kernel.org/index.php/Main_Page

如果您的应用程序中的线程是使用 OpenMP 添加的,则有一些解决方案可以分析 OMP 线程平衡,例如英特尔的 openMP 实现可以记录一些信息,如下所示.gvs(GuideView openmp 统计数据)文件格式 https://stackoverflow.com/questions/3983818/gvs-guideview-openmp-statistics-file-format

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有像 Haskell 的 Threadscope 这样的 C/C++ 线程跟踪器? 的相关文章

随机推荐