相关疑难解决方法(0)

C++中的异常是否真的很慢

我正在观看C++中的系统错误处理 - Andrei Alexandrescu他声称这Exceptions in C++非常非常慢.

我想知道这是否仍然适用 C++98

c++

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

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

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

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

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

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

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

c++ embedded exception-handling exception footprint

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

try-catch阻止会降低性能吗?

这个链接指出,

为了捕获异常,我们必须将一部分代码置于异常检查之下.这是通过将该部分代码包含在try块中来完成的.当在该块内出现异常情况时,抛出异常将控制转移到异常处理程序.如果没有抛出异常,代码将继续正常运行并忽略所有处理程序.

这是否意味着由于在运行时"检查"的额外任务,使用try块会降低性能?

c++ performance exception-handling exception try-catch

33
推荐指数
2
解决办法
3万
查看次数

C++ - 返回代码异常的参数

我正在讨论在新的C++项目中采用哪种方式.由于以下原因,我赞成对返回代码的异常(仅限特殊情况) -

  1. 构造函数无法提供返回代码
  2. 将故障路径(应该非常罕见)与更清晰的逻辑代码分离
  3. 在非特殊情况下更快(不检查是否/否则数十万次)
  4. 如果有人搞砸了返回代码设置(忘记返回FAIL),可能需要很长时间才能追踪.
  5. 来自错误中包含的消息的更好信息.(有人向我指出,返回枚举可以对错误代码执行相同的操作)
  6. 从Jare​​d Par不可能忽略没有代码专门设计来处理它

这些是我从思考它和谷歌搜索中得出的要点.我必须承认,在过去的几年中,我倾向于使用C#工作的例外情况.请在退货代码上发布使用例外的进一步原因.对于那些喜欢返回代码的人,我也愿意倾听你的推理.谢谢

c++ exception

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

抛出C++ 0x异常的代价

在C++ 0x中抛出异常有什么性能影响?这个编译器依赖多少?这与询问输入try块的成本是不一样的,即使没有抛出异常.

我们是否应该期望更多地使用异常来处理Java中的常规逻辑处理?

c++ performance exception

14
推荐指数
5
解决办法
5890
查看次数

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

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

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

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

c++ exception

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

如果在抛出异常时我无法承受缓慢的性能,我可以使用STL吗?

例如,我正在编写一个多线程时间关键型应用程序,可以实时处理和流式传输音频.音频中断是完全不可接受的.这是否意味着我不能使用STL,因为抛出异常时可能会减慢速度?

c++ performance exception

8
推荐指数
3
解决办法
1561
查看次数

C++返回值与异常性能

某处我已阅读,现代的Intel处理器具有低级别的硬件实现异常和大多数编译器利用它,到例外变得比使用返回变量结果状态较快的影响.

这是真的吗?就返回状态/响应状态而言,是否比变量更快?读取堆栈溢出的话题似乎与此相矛盾.

谢谢

c++ performance exception

5
推荐指数
2
解决办法
928
查看次数