是否有免费的开源工具,如Threadscope(并且比NPTL Trace tool更新)来分析CPU利用率/线程错误?
答案 0 :(得分:1)
CPU利用率分析和线程错误检查程序不能在同一工具中。要找到线程错误,需要对内存访问进行大量分析。我可以命名为valngrind的helgrind http://valgrind.org/docs/manual/hg-manual.html和google threadSanitizer,tsan(基于helgrind)http://code.google.com/p/data-race-test/wiki/ThreadSanitizer。这两个工具都通过valgrind的libVEX动态代码修改框架执行代码的运行时检测。这会导致巨大的减速,例如:对于Helgrind(来自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 statistics) file format
所示