为什么例外对性能有害?

时间:2015-08-05 23:10:54

标签: java performance exception

请参阅this question,其中每个人都在谈论“性能”会如何受到影响,或者在性能问题时应避免例外等。

但是我没有看到一个很好的解释为什么抛出异常对性能不利,这个问题中的每个人似乎都认为这是理所当然的。

我问这个的原因是,我正在尝试优化应用程序,并注意到在某些操作上抛出并吞下了几百个异常,例如单击按钮来加载新页面。

1 个答案:

答案 0 :(得分:5)

首先,当然,它只是糟糕的设计,因为"例外"具有语义含义("某些情况阻止了这种方法履行其合同"),并且以一种令人惊讶的方式滥用该功能。

对于Java,创建异常对象(特别是填充堆栈跟踪)非常昂贵,因为它涉及遍历堆栈,大量对象分配和字符串操作等等。实际上抛出异常并不是主要性能损失的地方。