【问题标题】:g++, cost of exceptions when I don't use exceptionsg++,我不使用异常时的异常成本
【发布时间】:2011-02-09 19:16:30
【问题描述】:

我有一些不使用异常处理的 C++ 项目。

添加 -fno-exceptions 有什么好处,或者 gcc 是否会自行判断我不使用异常(也没有任何使用异常的库)?

【问题讨论】:

    标签: c++ gcc g++


    【解决方案1】:

    主要区别可能在于生成代码的大小而不是执行速度。您显然可以对其进行测试,看看它有什么不同,但如果您的兴趣主要在于执行速度,那么它可能不会产生足够的差异来引起注意或关心。

    【讨论】:

    • OTOH,工作集大小确实会影响速度。但我同意,最终,只有测量才能显示出来。 所有优化问题的常见免责声明: 您对算法及其实现的选择比这些问题的影响要大得多。
    • @sbi:虽然你是对的,但额外的代码 可以 被(尽管并不总是)隔离,所以只要没有抛出异常,它只是位于磁盘上,对工作集大小几乎没有影响。
    • 是的,可能是这样。或者它可能会有所不同。因此,我支持衡量建议。
    【解决方案2】:

    可能是最小的 - 如果实际抛出异常,则会产生异常的成本。然而,像往常一样,答案是尝试并计时,在这种情况下,这似乎很容易。关于这个主题有相当多的现有问题,例如How much footprint does C++ exception handling add

    【讨论】:

      猜你喜欢
      • 2016-05-07
      • 2014-03-26
      • 2018-02-04
      • 2016-02-17
      • 2017-06-03
      • 2014-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多