【问题标题】:Profiling code with or without optimizations分析代码有或没有优化
【发布时间】:2011-01-20 21:39:26
【问题描述】:

显然,您必须包含调试符号才能解码配置文件会话,但您是使用 -O0 还是使用更高的优化级别进行配置文件?用 -O0 配置文件不会是 heisenprofiling 吗?

【问题讨论】:

  • 我可能会在未优化的构建上运行 secondary 分析传递——如果没有别的原因的话。请记住,重要的是分发的产品

标签: c++ c optimization profile


【解决方案1】:

您应该使用计划在生产中使用的优化设置进行概要分析。做其他事也没意义。

【讨论】:

  • 除非您正在分析计算在给定运行中每个函数被调用的次数。优化可以内联函数并使其从分析中消失。
  • 了解分析会改变被检查程序的时间也很重要,因此与优化的发布版本总是存在一些偏差。
  • 所以 disagree :)
  • 原因如下:假设您的代码在 new 中花费了大量时间,这可以通过回收使用过的对象来解决。假设它用相同的参数重复调用相同的函数,并且需要记忆。假设它调用了一个通用系统函数,该函数位于堆栈的 10 层,执行一些 知道您不需要的 I/O。名单还在继续。当然,剖析优化的代码可以让您远离底部馈线(如果它们是您的代码),但它能否更清楚地说明那些问题?它所能做的就是让他们更难找到。
【解决方案2】:

应该在同一台机器上通过分析比较不同的代码,使用相同的编译器和最高的优化设置。任何其他配置文件都没有意义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-22
    • 2011-01-24
    • 2020-11-14
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    • 2015-11-20
    相关资源
    最近更新 更多