![]() |
1
4
我只想添加两个链接来解释 Java's bytecode 很好,还有一些 various optimization 运行时的。 |
![]() |
2
3
我不认为那是真的。提升循环不变量和传播常量之类的优化永远不会受到伤害,即使JVM足够聪明,可以自己完成这些优化,只需简单地使代码工作更少。 |
![]() |
3
3
优化是使JVM作为长时间运行的应用程序的环境而可行的原因,您可以打赌Sun、IBM和朋友们正在尽最大努力确保他们能够以尽可能高效的方式优化您的字节码和JIT编译的代码。 这么说,如果你认为你可以预先优化你的字节码,那么它可能不会有太大的危害。 然而,值得注意的是,当JVMs只使用Java编译器倾向于构造的字节码时,它可以倾向于更好地执行(而不是崩溃)。当字节码的排列正确但与javac所产生的不同时,错过优化甚至是JVM崩溃都是未知的。希望这类事情在过去更为常见,但可能是值得注意的事情。 |
![]() |
4
2
像proguard这样的模糊器将为您在字节码上执行许多静态优化。 |
![]() |
5
1
Hotspot编译器将在运行时比编译时更好地优化代码,毕竟它有更多的信息要处理。唯一应该优化字节码而不仅仅是算法的时间是针对移动设备(如BlackBerry)的时候,因为该平台的JVM不够强大,无法在运行时优化代码,只能执行字节码。 |
![]() |
6
0
在大多数情况下,优化字节码可能是一种矛盾修饰。除非你控制了虚拟机,否则你不知道它做了什么来加速代码执行,如果有的话。为了生成优化的代码,编译器需要知道VM的细节。 |
![]() |
7
0
Aseraphim注意: 在某些有限的情况下,优化非嵌入式应用程序的字节码也很有用:
同样,一个好的乐观者/模糊者所执行的转换可能非常有用。 |