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



是否有像Threadscope(比NPTL Trace工具更新)这样的免费开源工具来分析CPU利用率/线程错误?

CPU利用率分析和线程错误检查器可以不在同一个工具中。为了发现线程错误,需要对内存访问进行大量分析。我可以命名valngrind的helgrind http://valgrind.org/docs/manual/hg-manual.html和google threadsantizer, tsan(基于helgrind) http://code.google.com/p/data-race-test/wiki/ThreadSanitizer。这两个工具都通过valgrind的libVEX动态代码修改框架对代码进行运行时插装。这将导致巨大的减速,例如Helgrind (from hg-manual):

性能可能非常差。100:1的顺序减速并不罕见。性能改进的空间有限。

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

如果应用程序中的线程是通过使用OpenMP添加的,有一些解决方案可以分析OMP线程平衡,例如英特尔的OpenMP实现可以记录一些信息,如这里所示。gvs (GuideView OpenMP统计)文件格式

最新更新