了解 JVM 实现的佳作
豁人耳目之作,解周志明《深入理解 JVM》隔靴之痒。
借着本书,弄明白了 JVM 中许多概念,如「读写屏障」,如锁膨胀。也理解了 JIT 编译为什么比解释执行快(毕竟书里说初期 JVM 是用 C++ switch 语句解释执行 Java 字节码的)。之前读《Java 并发编程实战》《Java 并发编程的艺术》,始终没搞明白 Java 内存模型,比如 volatile 语义,看了本书也豁然而解。有打通奇经八脉之感。
作者是 JRockit VM(一种高性能纯 JIT JVM)实现者,针对 JVM 如何执行运行时优化策略,JVM 如何保证 Java 内存模型语义,JVM 如何做 GC 优化,JVM 有哪些局限和困境、该如何突破等话题,徐徐道来,由浅入深,见解独到。最妙在于,很多概念附近作者贴了不少 C++ 代码,一看你会发现,原来那些晦涩翻译名词是这么回事。终究,大多 JVM 不过是一款 C++ 程序而已。
本书总共 300 页,前半部分在讲 JVM 的书中是我目前见过最好的,值得一读再读。
后半部分主要介绍 JRockitMission Control(JMC) ,不少已经过时了。Oracle 收购 BEA 公司后,也获得了 JRockitVM,大部分 JRocket VM 的理念都被整合进了如今的 HotSpot 虚拟机 (Java7之后),JRocket Mission Control 如今叫做 JDK Mission Control,很多命令也被整合进了 jcmd。MC 部分快速翻翻 ,自己照着操作 jcmd 和 JDK Mission Control,可以掌握不少 JVM Profile 技巧,2-3 小时即可看完。
© 本文版权归作者 自码自乐 所有,任何形式转载请联系作者。
有关键情节透露