• ^_^
    2018-09-10
    我个人觉得老师讲的非常好,这些东西更像是讲解一个系统似的,让我们更懂他们的运行机制,推算出我们系统每个类、方法和属性在jvm上的运作模式。这课程真的对于我们java开发的真的是太有帮助了,不想某某些课程占着实践经验的名义混。感谢老师辛苦啦!

    作者回复: 多谢支持!

    
     9
  • godtrue
    2018-09-13
    嗯,JVM的重要性自不必言,学好是进阶的台阶,否则就是屏障。不知道运行原理和机制,怎么理解OOM?怎么优化性能?怎么分析和定位一些奇怪的问题?

    老师讲的相当好了,只是知识储备不够的话,学习曲线是比较陡峭的,比如IR图,那个是第一次听,来龙去脉都不清楚自然会懵逼。还好大部分都能听明白和吸收,只是以后面试能判断出面试官的水平。

    懂JVM我感觉就好像了解地球是圆的以及围绕太阳公转一样,好像平时生活上也没什么用,不过如果想要征服星辰大海,以及迷失方向时还是挺有用的。

    嗯,总之,老师讲的非常好,毕竟只是一个专栏的入门教程,已经如此深入了,相当有用,这也是我付费了第一个专栏,由于老师讲的好,我在极客时间又订阅的好多,现在已看不过来了,不过这个专栏我一直没断,每天必听必看,感觉学到不少知识。

    嗯,今天讲解的 intrinsic ,我感觉也听明白了,总结一下:
    1:intrinsic-可认为也是一种hotspot虚拟机,为提高JVM性能的优化机制或技巧

    2:使用注解的方式来和Java代码结合

    3:本质上适配出对应系统体系架构,然后直接使用和系统体系架构强关联的高效指令来执行对应的功能

    4:针对不同的类具体的高效指令亦不同

    疑问❓
    1:intrinsic 是只有hotspot虚拟机支持吗?

    2:系统的体系架构适配是唯一的吗?主要是x86_64?按照这个思路是不是可以有多个类似的注视,针对多种的系统体系架构来优化呢?毕竟计算机系统的体系架构是有限的
    展开
     1
     4
  • Geek_09d838
    2018-09-10
    我觉得有些功能你要先知道,再去考虑能否会用到这些功能。

    作者回复: 嗯嗯!
    我的想法是,在这个专栏中介绍JVM各个组件的设计与实现。之后当开发人员在遇到性能问题时,能够联想到具体是哪个组件可能出了问题,从而针对性地去做调优。

    
     3
  • 随心而至
    2019-10-25
    赞,之前学习了深入理解计算机原理这门课,再联系这一节就知道intrinsic想做什么了。
    JVM 自身不是跨平台的,Windows,Linux都有各自的安装包,也就是JVM帮我们做了不同操作系统及底层体系结构的兼容;但是针对每一个具体的CPU,其自身提供的指令,寄存器,以及SIMD等优化机制并没有得到利用,而intrinsic的产生正是为了利用这些。
    个人理解,有不对之处,请老师和各位同学指出。

    作者回复: 对的,许多intrinsics 都会依赖特殊的CPU指令来优化执行效率的。

    说个趣闻,Intel曾经向OpenJDK提交了一大堆浮点数算法作为java.lang.Math中部分方法的intrinsic,比如sin cos这些,除了他们没人看的懂。结果在某些情况下算出来的结果是错的。。后来他们又提交了一堆更正过的天书代码,希望是对的吧,哈哈

    
     2
  • Scott
    2018-09-10
    我还是看得蛮过瘾的,周一三五早上起来第一件事就是看更新,的确可能不是很实用,但是对于对虚拟机感兴趣的同学来讲,是满足了好奇心

    作者回复: 谢谢支持!

    
     2
  • ahern88
    2018-09-10
    我觉得这份虚拟机教程写的知识有点偏,不够实用,大家觉得呢

    作者回复: 多谢建议!

    JVM对用户来说是透明的,可调优的参数也在逐渐减少,总体朝着自适配前进。所以把本专栏当成工具书来看的话,确实没有多少实用性。

    不过就算是自适配的虚拟机,也有覆盖不到的场景。专栏前面这两部分,正是在介绍JVM各个模块的设计与实现,以便开发人员在发现性能问题时能够联想到可能出问题的具体模块。

    接下来的第三部分会介绍一些性能监控分析工具,希望会对你有所帮助。

    
     2
  • 饭粒
    2019-12-24
    文中说 @HotSpotIntrinsicCandidate 如果不是 HotSpot 的虚拟机就退化使用 JDK 源码的方式。但如果某个 @HotSpotIntrinsicCandidate 注解的方法 X86_64 有指令可以优化,但其他架构体系比如 AMD64 没有相应的指令或者指令不同这个过程是怎样的?

    作者回复: 其他架构没有的话就沿用Java实现。另x86_64和amd64是同一个架构

     1
     1
  • bradsun
    2018-09-12
    不好意思,昨天没写清楚。就是intrinsic,只有少部分可以直接被解释器应用,而大部分只能被编译器应用。为什么不都可以被解释器调用,这样解释执行的时候不会更高效吗
    
     1
  • Len
    2018-09-10
    我觉得老师讲的非常好,尤其是上两讲讲方法内联,结合老师讲的,在课后我又恶补了一下 IR 方面的知识,收获很大。
    尽管目前我的工作不会直接用到这方面的知识,但我相信这些底层机制、原理性的知识点,对成长为一名优秀的工程师是必备的。

    作者回复: 多谢支持!

    
     1
  • NullPointer
    2019-09-30
    这些东西听着挺过瘾的,虽然大部分时间用不上。但是理解原理,在你查找疑难问题的时候却是有奇效
    
    
  • 雪人
    2019-02-09
    这些东西,尽管现在可能看起来不会都懂,但留着以后无论什么时候再看,都会有或多或少的收获,而这个收获,对以后的前进之路,是有非常大的帮助,感谢老师,希望老师有空能再出一份专栏吧
    
    
  • 白三岁
    2018-09-27
    我看了下java8中没有找到这个注解。调用从源码复制出来的方法和直接调用源码的方法没有性能上的差别。是java8没有加入这种优化吗

    作者回复: Java8已经有一些intrinsic,但不多。

    这个注解应该是Java 9引入的,它的意思其实是用来提醒JDK开发人员注意虚拟机里有对应的intrinsic,改动的话需要通知我们

    
    
  • JZ
    2018-09-23
    Java8中并没有看到相应的注解,如String类的indexOf方法,Java8中没有类似的优化?

    作者回复: 记得是9之后才大量加入的

    
    
  • 四阿哥
    2018-09-12
    第三部分,利用工具进行调优,非常期待,其实像PrintCompile这类参数也是十分实用的
    
    
  • bradsun
    2018-09-11
    这个为什么不都是独立的形式。而且只有少部分是独立的。谢谢

    作者回复: 不好意思没明白你的问题。什么是独立的?

    
    
我们在线,来聊聊吧