【问题标题】:Tracing pthread scheduling跟踪 pthread 调度
【发布时间】:2011-01-10 21:57:36
【问题描述】:

我想做的是创建某种图表,详细说明 Linux 中(两个)线程的执行情况。我不需要看线程做什么,只需要安排它们的时间和时间,基本上是一个时间线。

过去几个小时我一直在互联网上搜索跟踪 pthread 调度的方法。不幸的是,我发现的两个项目需要内核重新编译 (LTTng) 或 glibc 修补 (NPTL Trace Tool),这两者我都做不到(大型集中管理系统,我没有 sudo 权限)。

有没有其他方法可以做这样的事情,还是我必须求助于找到一台笔记本电脑,我可以在上面修补/重新编译我想要的任何东西?

最好的问候

PS:我会链接到这两个项目,但网站不允许我(声誉

【问题讨论】:

    标签: linux multithreading trace


    【解决方案1】:

    构建检测的 glibc/libpthread.so 不需要超级用户权限。属于NPTL Trace Tool 一部分的ptt_trace 程序将使用检测库运行您的程序。

    【讨论】:

    • 感谢您提及这一点。我又看了看 NPTL TT,但似乎该项目自 2006 年以来就没有进行过,并且修补新的 glibc 版本似乎不起作用。
    【解决方案2】:

    也许像英特尔的VTune

    【讨论】:

    • 这看起来很有希望,当我能负担得起那个软件包时,我会记住这一点。
    • 我刚刚尝试了评估版,除非我忽略了某些东西,否则无法在 Linux 版本中获得线程的图形跟踪,真的很遗憾。基本上,Linux 版本是 Helgrind (valgrind.org/docs/manual/hg-manual.html) 的昂贵版本。
    • 很遗憾——我从未尝试过,但觉得它看起来很有趣——图表很漂亮,但如果 Linux 版本无法生成它们,那就不是很有趣。
    【解决方案3】:

    还有一个叫做pthreadw的工具(在sourceforge上)

    它是一个包装库,它拦截对 pthread 库的常用函数的调用,并报告统计信息,例如使用锁、条件变量等的典型时间... 它目前无法导出跟踪,只能导出文本摘要报告。

    【讨论】:

      猜你喜欢
      • 2011-09-06
      • 1970-01-01
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      • 2014-06-23
      • 2016-10-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多