C++中的异常是很多人不推荐使用的机制,但其中有很多玄学,不妨来讲一讲。
C++ 异常的开销
C++ 将异常视为特殊路径。编译器优化时倾向于对 try-catch 包裹中的代码按照不抛异常进行优化。反之,如果执行到异常代码,则会伴随着很高的惩罚。
1 |
|
以上面的代码为例,执行结果如下,可以发现,如果全抛异常的执行时间达到一百多倍之多。
1 | 1619 |
C++中的异常是很多人不推荐使用的机制,但其中有很多玄学,不妨来讲一讲。
C++ 将异常视为特殊路径。编译器优化时倾向于对 try-catch 包裹中的代码按照不抛异常进行优化。反之,如果执行到异常代码,则会伴随着很高的惩罚。
1 | #include <iostream> |
以上面的代码为例,执行结果如下,可以发现,如果全抛异常的执行时间达到一百多倍之多。
1 | 1619 |
微信打赏
支付宝打赏