`
cloudtech
  • 浏览: 4611574 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

JIT优化策略摘录

 
阅读更多
以上内容摘自《Java Program in Action》(Kris Mok)
一。选择性的优化
择要优化的代码
其中,择要优化癿代码路径择优化癿程度.
追求交互性的时候只选用效费比高的优化算法。
追求顶峰性能时选择合适的代码进行高度优化。
传统的编译器优化算法都可以有选择性得到应用

二。为常见情况而优化
避开非常见情况,留下“逃生门”。
三。固有函数(intrinsics)
有些Java方法在HotSpot中直接用硬件的特殊指令来实现。
如Math.sin()、Unsafe.compareAndSwapInt()之类。
调用这些方法,在解释模式有可能还是调用了本地方法,而在被JIT编译的代码中则直接把其中的操作内联进来。
四。由解释转为编译
由计数器触发JIT编译。
方法调用读数器,回边读数器,OSR编译,读数器衰减,profiling。
五。隐式异常处理
对空指针、栈溢出等异常情况不显式检查,而是直接生成不检查错误的代码。
1.在正常执行时不会因为要检查异常条件而带来任何开销
2.在异常发生时速度比显式检查异常条件慢
3.若检测到异常经常发生则重新编译,生成显式检查异常条件代码。

六。逃逸分析(escape analysis)
检查某个对象的使用是否只在某个受限范围内(方法内/线程内)。
可以为其它优化提供机会。
1.标量替换
2.栈上分配
3.锁削除
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics