Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
下面是Java字节码,
0: iconst_1 1: istore_1 2: iload_1 3: ...
我可以优化它
0: iconst_1 1: ...
但是,我想知道这是否总是安全的,或者我们什么时候可以确保这种优化是安全的?
如果方法代码中的某处存在另一条指令,则此优化是不安全的。iload_1
iload_1
更重要的是,这种手动优化毫无意义。JIT 编译器本身很容易清除过多的数据分配,因此原始代码和“优化”代码在编译后会产生相同的机器代码。
JIT 查找编译器生成的集合模式并对其进行优化。如果您手动生成或更改代码,您必须确保您生成的代码对您来说看起来更简单,但无法通过 JIT 轻松优化,即导致执行速度变慢。
正如@Alexei 所说,它不安全,我怀疑它不会更快但可能会更慢。