• godtrue
    2018-09-12
    感觉跟不上了,先过吧!
    已经拉下两节了,日后回头再看看。
    现在仅明白,方法内联-是编译器的一种代码优化手段,会根据不同代码调用方式有不同的优化方式,目的都是为了提高JVM的效率,根本方式,我认为就是采用取巧的方式,提前判断出来可以少做一些事情,然后先提前做一些准备,整体的时间和空间成本会降下来。
    另外,提供小建议,雨迪能否对于这种比较比较抽象的知识,来点生动形象的比喻以便帮助消化,之前在知乎看到一篇关于锁的文章,全篇通过生动形象的比喻讲解锁的本质、分类、各种锁的特点,读起来一下子就明白了。
    展开
     1
     14
  • 永烁星光
    2018-09-10
    IR 图分析看了这三篇,好几次,现在还是不甚明白,

    作者回复: 如果都看懂了,可以考虑来我司,或者阿里的JIT专家职位 :)

    一般来说,了解这些优化针对怎样的代码模式,会转化为怎样的代码就可以啦。至于IR图,主要是用来辅助理解具体的优化过程。

    
     7
  • 一少爷
    2019-02-27
    为什么后面留言的人越来越少了,我觉得后面这些也很关键很有趣呀。对思想的提升很有帮助的。
    
     4
  • 随心而至
    2019-10-25
    免费的才是最贵的,享受便利的同时,想搞明白确实不容易,我只有个大的概念。感觉这可以类比CPU里面的冒险与预测来理解,都是基于某种方式来优化,让程序跑的更快些。
    
     2
  • Joker
    2019-08-16
    漫漫长路,这JAVA一门语言就要如此深究,真特么知无涯
    
     2
  • 李亮亮
    2019-04-11
    后面两张图是不是还应该有Deopt NullCheckException 这条红色的路径?
    
     2
  • 饭粒
    2019-12-24
    基于类型推导的完全去虚化
    基于类层次分析的完全去虚化
    条件虚拟化
    目录挺清楚的,极客时间的文章出个标题侧栏就更好了。
    
     1
  • hqg
    2018-09-07
    遇到jvm崩溃,可否帮分析下
    
     1
  • 饭粒
    2019-12-24
    可以结合05篇看。
    
    
  • 星星个是大太阳丶
    2018-09-25
    节点上的P(0)是否是代表方法的参数,C(1)这些代表常量,各个节点的线的颜色是否有什么含义呢?老师能不能指导一下
    
    
  • Scott
    2018-09-10
    是每个对象有type profile的限制么?

    作者回复: 每条类型相关字节码,如invokeinterface invokevirtual checkcast instanceof等

    
    
  • Scott
    2018-09-09
    是C1在不同的编译层次么?
    
    
  • Scott
    2018-09-09
    我也不清楚,什么时候可以有完整的profile,什么时候是不完整的

    作者回复: 回了原提问,这里复制一下:

    每个字节码的type profile有数量限制,比如默认情况下只能存两个不同的动态类型。如果收集profile过程中来了三个不同的动态类型,那么JVM不能全部记下来,因此即时编译器看到的type profile是不完整的。

    
    
  • Void_seT
    2018-09-08
    老师,想请教一下,“类型Profile”完整还是不完整,是如何判断的?

    作者回复: 每个字节码的type profile有数量限制,比如默认情况下只能存两个不同的动态类型。如果收集profile过程中来了三个不同的动态类型,那么JVM不能全部记下来,因此即时编译器看到的type profile是不完整的。

    
    
我们在线,来聊聊吧