使用IF语句而不是异常处理更便宜?

时间:2013-03-22 22:55:31

标签: c++ performance optimization

异常处理会产生开销成本(据我所知)....我很欣赏IF语句/分支可能会导致代码变慢。但是,假设您的程序在99.9%的时间内正确运行,分支预测器会在大多数情况下正确猜测,并且您不需要整个程序中的异常处理开销......

因此,在性能关键型应用程序中,使用IF语句而不是传统的异常处理来检测错误会更好吗?

1 个答案:

答案 0 :(得分:6)

异常处理的典型实现不会增加主要执行流的开销(就速度而言)而不是if语句(甚至可能会少一些)。通过合理谨慎的使用,它还可以减少代码混乱,提高可读性。

IOW,对于完全有意义的代码,它通常是一个相当可观的胜利,非常有点缺点。主要的潜在缺点是较大的可执行文件,以及对运行时支持的要求,因此它不适合设备驱动程序(至少通常)。