Java性能优化-慎用异常

当建立一个异常时,须要收集一个栈跟踪(stack track),这个栈跟踪用于描述异常是在何处建立的。构建这些栈跟踪时须要为运行时栈作一份快照,正是这一部分开销很大。编程

当须要建立一个 Exception 时,JVM 不得不说:先别动,我想就您如今的样子存一份快照,因此暂时中止入栈和出栈操做。栈跟踪不仅包含运行时栈中的一两个元素,而是包含这个栈中的每个元素。性能

若是您建立一个 Exception ,就得付出代价,好在捕获异常开销不大,所以可使用 try-catch 将核心内容包起来。从技术上讲,你甚至能够随意地抛出异常,而不用花费很大的代价。设计

招致性能损失的并非 throw 操做——尽管在没有预先建立异常的状况下就抛出异常是有点不寻常。真正要花代价的是建立异常,幸运的是,好的编程习惯已教会咱们,不该该无论三七二十一就抛出异常。异常是为异常的状况而设计的,使用时也应该牢记这一原则。io

相关文章
相关标签/搜索