相关疑难解决方法(0)

C++异常处理添加了多少占用空间

这个问题对于嵌入式开发尤为重要.异常处理为生成的二进制输出增加了一些空间.另一方面,没有例外,错误需要以其他方式处理,这需要额外的代码,这最终也会增加二进制大小.

我对你的经历很感兴趣,特别是:

  1. 编译器为异常处理添加的平均占用空间是多少(如果有这样的测量)?
  2. 在二进制输出大小方面,异常处理是否真的比其他错误处理策略更昂贵(很多人说)?
  3. 你会为嵌入式开发建议什么样的错误处理策略?

请仅以我的问题为指导.欢迎任何输入.

附录:对于特定的C++对象/可执行文件,是否有任何人具有具体的方法/脚本/工具,它将显示由编译器生成的代码和专用于异常处理的数据结构占用的已加载内存占用的百分比?

c++ embedded exception-handling exception footprint

53
推荐指数
4
解决办法
2万
查看次数

测量C++中的异常处理开销

在C++中测量异常处理开销/性能的最佳方法是什么?

请提供独立的代码示例.

我的目标是Microsoft Visual C++ 2008和gcc.

我需要从以下案例中获得结果:

  1. 没有try/catch块时的开销
  2. 有try/catch块时的开销但不抛出异常
  3. 抛出异常时的开销

c++ performance gcc exception visual-c++

15
推荐指数
3
解决办法
1万
查看次数

在C++中使用try/catch块

一般来说,我倾向于使用try/catch代码,这些代码具有多个故障点,故障具有公共处理程序.

根据我的经验,这通常是在执行某些操作后执行某些操作或输出之前限定输入或上下文的代码.

我收到了文献和同事的建议,以尽量减少这些块中的代码,我接受这一点作为一般的好建议.

我想更多地了解上述建议的基础:

  • 开销的性质是什么?
  • 是否有最新的开发指南解决了try/catch块的建议用法(或避免)?
  • 更快的处理器和更现代的编译器可以缓解try/catch的问题?

在此先感谢您的帮助,

AJ

c++ exception-handling try-catch

15
推荐指数
4
解决办法
1万
查看次数

不抛出异常时的性能(C++)

我已经阅读了很多关于C++异常和我看到的内容,特别是异常性能是一个难题.我甚至试图在g ++的内幕下看看如何在汇编中表示异常.

我是C程序员,因为我更喜欢低级语言.前段时间我决定使用C++而不是C,因为它的成本很低,它可以让我的生活更轻松(类比结构,模板等).

回到我的问题,因为我看到异常只会在它们发生生成开销,因为它需要一长串的跳转和比较指令才能找到合适的异常处理程序.在正常的程序执行中(没有错误),异常开销等于正常的返回代码检查.我对吗?

c++ exception

12
推荐指数
2
解决办法
1699
查看次数