【问题标题】:how to know my program speed, which parts of the code are bottlenecks?如何知道我的程序速度,代码的哪些部分是瓶颈?
【发布时间】:2011-06-17 18:11:31
【问题描述】:

大家好。我正在使用 Bloodshed devc++ 作为 ide,我相信它使用 mingw 作为编译器。我一直在阅读很多关于代码优化和瓶颈的文章,这让我想尝试他们推荐的技术:))。所以问题是:

  1. 如何衡量我的代码运行的效率或差值?
  2. 我如何知道我的代码的哪些部分是“瓶颈”(我使用的术语是否正确?)

谢谢!

【问题讨论】:

    标签: c


    【解决方案1】:

    您可以使用分析器。当您使用 MinGW 编译器时,请使用 gprof。

    【讨论】:

    • 谢谢先生。这个分析器有能力测量程序运行时间吗?
    【解决方案2】:

    您可以使用分析器来查看代码的哪些部分花费的时间最多。

    很难说您的代码是否整体高效。尝试将其完成时间与类似的应用程序进行比较。您应该定义所需的性能并尝试优化代码以低于您的阈值。

    【讨论】:

    • 感谢您的回复。这是一个单独的程序还是 devc++ 包的一部分?
    • @user571099:我不知道 dev-c++ 是否提供分析器,无论如何你可以找到很多分析器(作为单独的程序):例如,参见 this post
    • 如果您的代码可以在其他系统上正常编译并且您可以访问其中一个,那么带有oprofile 的 Linux 机器可能会提供更好的结果。 gprof 的可用性极低,但由于在代码中插入了额外的分析代码,一旦添加了分析开销,它可以轻松地使通常快速而无需分析的微小函数看起来像瓶颈。 oprofile 只是通过对指令指针进行采样来避免这种观察干扰。不幸的是,我不知道任何适用于 Windows 的等效分析工具。
    【解决方案3】:

    你试过gprof for ming吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-16
      • 1970-01-01
      • 2012-12-03
      • 1970-01-01
      • 2021-07-08
      • 1970-01-01
      • 1970-01-01
      • 2013-03-13
      相关资源
      最近更新 更多