【问题标题】:Bytecode size of with brackets vs without brackets in Java [closed]Java中带括号的字节码大小与不带括号的字节码大小[关闭]
【发布时间】:2021-02-18 19:47:05
【问题描述】:

Java 中哪个字节码更大或相同?

if (a > b) a = b;

if (a > b) {
    a = b;
}

【问题讨论】:

标签: java jvm bytecode jvm-bytecode javacompiler


【解决方案1】:

这些编译成完全相同的东西。

【讨论】:

  • 可能不是同一个字节码。几乎可以肯定性能完全相同。
  • @webelf000 您可以通过运行javap -c path/to/MyClass.class 自行查找
  • @webelf000 ideone.com/sCGcit
  • 就像我说的,“更小”和“更快”不是一回事。字节码大小作为性能衡量标准几乎没有意义。
  • @webelf000 方法大小并没有说明性能。大多数环境都有一个优化的即时编译器,无论如何都消除了这些差异。但是,即使我们假设最简单的解释器按原样执行这些指令,执行的指令 也没有什么不同。选择任一场景,a > ba <= b,并逐步检查代码,以检查实际执行了哪些指令。您会看到,对于每个变体,执行相同的指令,顺序只有一个细微差别,istore_2, gotogoto, istore_2。总是一样的工作……
猜你喜欢
  • 2016-10-03
  • 1970-01-01
  • 1970-01-01
  • 2019-07-01
  • 2022-11-18
  • 1970-01-01
  • 2021-01-11
  • 2018-02-22
  • 1970-01-01
相关资源
最近更新 更多