【问题标题】:Alternative to -pg with Clang?使用 Clang 替代 -pg?
【发布时间】:2023-04-10 21:08:01
【问题描述】:

我希望对使用 Clang 编译的二进制文件进行性能分析(如果可能的话),对性能的影响尽可能小(因此类似于 GCC 的 -pg)。是否有替代方法使用代码检测,或产生类似于 gprof 的输出?

【问题讨论】:

  • 你最好在 clang 的开发者名单上问这个,不是吗?
  • 你真的想要类似于 gprof 的输出吗?
  • 是的,为什么不呢?它清晰而全面。我从来没有找到一个可用的替代品,valgrind 是最接近的。
  • 这些页面上到处都是试图理解 gprof 输出的人。 1) 对阻塞时间视而不见,就像 IO。 2)你需要训练自己忽略“自我时间”,它几乎没用。 3) 对所有调用计数和函数计时都类似。 4) 没有行级信息。 5)调用图很好,形式上很有趣,而且几乎没用。当你必须过河时,我会承认它是可用的,就像一辆可靠的汽车。
  • @Mike Dunlavey:我知道 1、2 以及 3 和 4 你错了。至于5,你为什么认为我在使用C? gprof 生成组合输出,对性能的影响最小。我试图找到一种替代方法来处理阻塞时间等没有运气的事情。有其缺点的 gprof 仍然更胜一筹。

标签: c gcc profiling clang gprof


【解决方案1】:

我在Clang mailing list 上收到了good answer。总而言之,使用Google Performance Tools 是最合适的。

【讨论】:

  • 这仍然是 6 年后的最后一句话吗?
  • @kynan:Donno,我已经转到 Go 了。
  • gperftools 有moved to github
  • clang 有一个 -fprofile-instr-generate 编译器+链接器标志。它不测量 CPU,但它为执行的代码中的每一行提供行计数器。它可以帮助您找到运行最多的代码并帮助优化。 cmdlinelinux.blogspot.com/2018/04/…
  • Clang 似乎接受“-pg”,但没有链接说“未定义对 mcount 的引用”
【解决方案2】:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-29
    • 1970-01-01
    • 2015-01-13
    • 1970-01-01
    • 1970-01-01
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多