当前位置: 首页 > 知识库问答 >
问题:

try catch块的成本是多少?

秋煌
2023-03-14

有多好:

 if (condition) {
  try {
   //something
  } catch(SomeEx ex) {}
 }
 try {
   if (condition) {
     //something
   }
 } catch(SomeEx ex) {}

共有1个答案

有耀
2023-03-14

在运行时执行明智,只要没有异常,try就不会花费任何费用。它只在异常发生时消耗运行时间。在这种情况下,if评估的速度要慢得多。

在JVM规范中,您可以看到在执行路径http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-3.html#jvms-3.12上没有生成额外的字节代码

 类似资料:
  • 问题内容: 有什么更好的: 代替这个: 当我输入try块时,JVM实际上会做什么? 编辑:我不想知道在第二个示例中总是要尝试…请回答问题。 问题答案: 在运行时明智地执行,只要没有例外,尝试不会花费您任何费用。只有在发生异常时才花费运行时间。在这种情况下,进行if评估要慢得多。 在JVM规范中,您看到执行路径上没有生成额外的字节码:http : //docs.oracle.com/javase/s

  • 问题内容: 在我们的应用程序中将for循环更新为for-each循环时,我遇到了很多这样的“模式”: 代替 我可以看到你获得了集合的性能,因为你不需要在每个循环中调用size()方法。但是有了数组? 因此出现了一个问题:比常规变量贵吗? 问题答案: 否,呼叫或固定时间操作。 由于(的行为类似于)的成员,因此访问它的速度不会比局部变量慢。(这与对的方法的调用非常不同) 无论如何,现代的JIT编译器很

  • 我想在上面运行代码。但在下面显示消息不起作用。 预测错误(拟合,h=52):未找到对象“拟合” 我的意图是...如果第一个函数有错误(

  • 问题内容: 我有一张有60列的桌子。其中的20个是“ NotEmpty”和6个“ NotNull”。 我有空值和空值(在我的情况下,它们始终表示“无数据”)。我想只用一种约束来统一列。 我已读取null值很便宜(以字节为单位)。那么也许使用NotEmpty约束?但是,也许NotNull约束的执行效果更好?或者在检索数据时最好同时拥有值和用途? 什么是成本的制约和Postgres里9.x中?您的经历

  • 我试图编写一个函数来处理批处理作业的执行,记录作业结果的错误和统计信息。 是否有方法从finally块引用expr块的返回值?

  • 我想全面了解一个Docker容器的运行时性能成本。我发现网络的参考文献要慢大约100µs。 我还发现对运行时成本的引用“可以忽略不计”和“接近于零”,但我想更准确地了解这些成本是什么。理想情况下,我想知道Docker抽象的是什么,但需要付出性能代价,以及抽象出来的东西不需要付出性能代价。联网、CPU、内存等。 此外,如果存在抽象成本,是否有方法绕过抽象成本。例如,也许我可以直接挂载磁盘,而不是在D