原则15:了解异常处理的系统开销

首先明确的是异常机制的确是需要系统开销的。
它的开销表现在以下几个方面:
1、跟踪记录。你要知道无论是哪里出现了异常,C++都会处理异常,当然这是在你确实写了try……catch之类的东西的前提下。那么系统为什么会自动采取行动呢?那是因为C++记录了你程序的行踪和行为。
2、即使你不使用异常,也要为异常付出代价。因为现在的C++编译器都支持异常,异常机制已经是C++的一部分。当然如果你不使用支持异常机制的编译器可以避免此开销。此外,有些编译器有选项可以让你开关异常机制。不过关闭异常机制可能导致你无法重定义程序库中生命的虚拟函数和客户自定义的回调函数,虽然我并不太懂它俩与异常之间的关系,但是还是记下来吧。
3、try块。只要你使用try就得付出代价,如果确实抛出了异常付出的代价更大。
4、异常规格声明与try块生成的代码一样多,所以没必要不要写异常声明。
5、确实抛出了异常,那系统开销会非常大。
基于以上几点原因,除非有必要,请关闭异常机制。

多谢捧场

如果您觉得我的文章有价值,那么赏脸打赏一个,鄙人感激不尽。不过,不打赏看看也是好的,如果有不对的地方,还请您多多指正。


原则15:了解异常处理的系统开销_第1张图片

你可能感兴趣的:(原则15:了解异常处理的系统开销)