- 虚拟机内部机制不透明:从架构师视角剖析虚拟机核心组件,让读者理解执行引擎、内存管理器和线程调度器的设计原理。
- 垃圾回收算法理解不深:系统讲解针对吞吐量、可扩展性和响应性的GC优化策略,以及并发移动式回收的实现。
- 本地接口与栈展开知识缺失:涵盖同类文献中较少涉及的运行时辅助、栈展开和本地接口等高级主题。
- 理论与实践脱节:用图示充分解释算法,用可理解的代码片段实现抽象概念,让系统软件工程师能够学以致用。
- 缺乏跨虚拟机设计的通用视角:以JVM为主要案例,兼顾其他虚拟机,帮助读者为任意语言虚拟机的设计开发打下基础。
★★★
中级
入门初级中级进阶高级
- 系统软件工程师:从事运行时系统、编译器或操作系统开发,需要深入理解虚拟机内部机制以优化系统性能。
- JVM调优与性能工程师:日常工作中需要分析GC日志、调优JVM参数,本书帮助理解这些参数背后的设计原理。
- 编程语言设计与实现者:正在设计或实现一门语言的运行时系统,需要参考虚拟机架构的通用技术和权衡决策。
- 计算机专业研究生与研究人员:研究方向涉及编程语言、编译技术或系统软件,需要一本兼顾理论与实践的参考书。
- 先通读第一部分建立框架:前三章介绍虚拟机类型、核心组件和数据结构,是理解后续设计内容的基础。
- 重点研读执行引擎与GC章节:第4至第8章是虚拟机的核心,建议结合JVM源码或开源实现对照阅读。
- 关注设计决策背后的原因:本书不仅说明是什么,更讨论为什么,阅读时注意体会每种技术选择背后的权衡。
- 结合代码片段动手验证:书中的代码片段虽然精简,但建议在本地环境中运行和修改,加深对算法的理解。
- 对比不同虚拟机的实现:阅读时可将JVM的设计与其他虚拟机(如CLR、V8)进行对比,拓宽技术视野。
- 理解虚拟机核心架构:掌握加载器、执行引擎、内存管理器和线程调度器等核心组件的设计原理与协作方式。
- 精通垃圾回收技术:理解不同GC算法的适用场景和优化策略,能够针对具体需求选择合适的回收方案。
- 掌握执行引擎设计:了解解释器、JIT编译和基于踪迹的编译等执行引擎实现技术及其性能特征。
- 熟悉高级运行时主题:掌握本地接口、栈展开和运行时辅助等通常被忽略但至关重要的虚拟机技术。
- 具备虚拟机设计能力:能够为任意一种语言虚拟机的设计开发打下坚实基础,做出合理的技术选型与架构决策。
📖 书籍简介
产品特色

编辑推荐
在当今的计算系统中,虚拟机已经变得无处不在--从物联网节点到移动电话、个人计算机,再到云平台。因其所能赋予软件的一些重要属性,如安全性、高生产率和可移植性,虚拟机一直吸引着软件研究人员和开发者的兴趣和关注。
本书旨在通过循序渐进、通俗易懂的方式讲解虚拟机的通用技术,主要以JVM设计为例,并兼顾其他虚拟机。本书还包括一些同类文献中较少涉及的主题,例如运行时辅助、栈展开和本地接口。本书是虚拟机设计和工程实践方面的理想参考读物,读者若掌握书中的知识点,便能为任意一种语言虚拟机的设计开发打下坚实的基础。
● 虚拟机基础:类型、内部组成、数据结构
● 虚拟机设计:执行引擎设计、垃圾回收设计、线程设计
● 虚拟机内部支持:本地接口、栈展开、垃圾回收支持、运行时辅助,等等
● 垃圾回收(GC)优化:针对吞吐量的GC优化、针对可扩展性的GC优化、针对响应性的GC优化、并发移动式回收
● 线程交互优化:monitor性
“本书论述了关于虚拟机设计与实现的高级主题,已经成为我不可或缺的参考书。我向系统软件开发者,尤其是托管运行时系统的开发者,强烈推荐本书,因为本书能够清晰地解答他们在探索虚拟机相关话题时所产生的疑问。”——周志德,Futurewei Technologies首席科学家
“当前语言虚拟机的应用范围越来越广,各类新的语言虚拟机也层出不穷,虚拟机技术的专业图书却不多见。本书是作者多年研究与实践的心得与沉淀,值得一读。”——胡子昂,华为硅谷基础软件实验室主任、华为Fellow
“关于虚拟机架构的设计,本书不但阐明了是什么,而且讨论了为什么。作者从架构师的角度高屋建瓴地分析了技术选择背后的来龙去脉,相信读者一定会受益匪浅。”——慎熙鹏,北卡罗来纳州立大学计算机系教授
“虚拟机技术在编程语言、编译器、计算机架构、Web系统等领域均有深远的影响。作者具备这些领域的工作经历,本书的写作也扎根于其在虚拟机研究及开发过程中的一手资料。本书通过循序渐进的方式,将虚拟机技术融入丰富的示例与代码中,使得读者能够同时在理论和实践的层面充分理解虚拟机技术的精髓。”——朱子青,英伟达高级软件架构师
“本书作者来自工业界,有着丰富的工程实践经验。书中同时包含了学术界在虚拟机相关领域的研究成果。其中重要的技术讨论,既有代码示例,又有理论分析,能帮助读者透彻地理解虚拟机技术的要点、难点。”——林子超,美国高通研发总监
本书旨在通过循序渐进、通俗易懂的方式讲解虚拟机的通用技术,主要以JVM设计为例,并兼顾其他虚拟机。本书还包括一些同类文献中较少涉及的主题,例如运行时辅助、栈展开和本地接口。本书是虚拟机设计和工程实践方面的理想参考读物,读者若掌握书中的知识点,便能为任意一种语言虚拟机的设计开发打下坚实的基础。
● 虚拟机基础:类型、内部组成、数据结构
● 虚拟机设计:执行引擎设计、垃圾回收设计、线程设计
● 虚拟机内部支持:本地接口、栈展开、垃圾回收支持、运行时辅助,等等
● 垃圾回收(GC)优化:针对吞吐量的GC优化、针对可扩展性的GC优化、针对响应性的GC优化、并发移动式回收
● 线程交互优化:monitor性
“本书论述了关于虚拟机设计与实现的高级主题,已经成为我不可或缺的参考书。我向系统软件开发者,尤其是托管运行时系统的开发者,强烈推荐本书,因为本书能够清晰地解答他们在探索虚拟机相关话题时所产生的疑问。”——周志德,Futurewei Technologies首席科学家
“当前语言虚拟机的应用范围越来越广,各类新的语言虚拟机也层出不穷,虚拟机技术的专业图书却不多见。本书是作者多年研究与实践的心得与沉淀,值得一读。”——胡子昂,华为硅谷基础软件实验室主任、华为Fellow
“关于虚拟机架构的设计,本书不但阐明了是什么,而且讨论了为什么。作者从架构师的角度高屋建瓴地分析了技术选择背后的来龙去脉,相信读者一定会受益匪浅。”——慎熙鹏,北卡罗来纳州立大学计算机系教授
“虚拟机技术在编程语言、编译器、计算机架构、Web系统等领域均有深远的影响。作者具备这些领域的工作经历,本书的写作也扎根于其在虚拟机研究及开发过程中的一手资料。本书通过循序渐进的方式,将虚拟机技术融入丰富的示例与代码中,使得读者能够同时在理论和实践的层面充分理解虚拟机技术的精髓。”——朱子青,英伟达高级软件架构师
“本书作者来自工业界,有着丰富的工程实践经验。书中同时包含了学术界在虚拟机相关领域的研究成果。其中重要的技术讨论,既有代码示例,又有理论分析,能帮助读者透彻地理解虚拟机技术的要点、难点。”——林子超,美国高通研发总监
内容简介
本书从一位虚拟机(VM)架构师的角度,以易于理解、层层深入的方式介绍了各种主题和算法,尤其是不同VM通用的主要技术。这些算法用图示充分解释,用便于理解的代码片段实现,使得这些抽象概念对系统软件工程师而言具像化并可编程。书中还包括一些同类文献中较少涉及的主题,例如运行时辅助、栈展开和本地接口。本书集理论性与实践性于一身,不仅结合了高层设计功能与底层实现,而且还结合了高级主题与商业解决方案,是VM设计和工程实践方面的理想参考读物。
作者简介
【作者简介】
李晓峰(Xiao-Feng Li)
长期从事系统软件的研究与开发,在并行计算、操作系统、编译器和语言设计方面有着丰富的技术经验。Apache Harmony JVM的主要贡献者,所创建的一个微内核VM被发展为Intel Micro Runtime。目前在一家大型科技公司任技术副总裁,致力于定义和开发基于移动和智能设备的下一代分布式操作系统。拥有计算机科学博士学位,在闲暇时热衷于人机交互方式的探索。
【译者简介】
单业
计算机专业硕士,软件工程师,曾供职于多家软件公司,从事软件开发工作,现居于上海。译有《你不知道的JavaScript》中卷及下卷。
李晓峰(Xiao-Feng Li)
长期从事系统软件的研究与开发,在并行计算、操作系统、编译器和语言设计方面有着丰富的技术经验。Apache Harmony JVM的主要贡献者,所创建的一个微内核VM被发展为Intel Micro Runtime。目前在一家大型科技公司任技术副总裁,致力于定义和开发基于移动和智能设备的下一代分布式操作系统。拥有计算机科学博士学位,在闲暇时热衷于人机交互方式的探索。
【译者简介】
单业
计算机专业硕士,软件工程师,曾供职于多家软件公司,从事软件开发工作,现居于上海。译有《你不知道的JavaScript》中卷及下卷。
📑 章节目录
- 虚拟机简介与类型
- 虚拟机内部组成
- 虚拟机中的数据结构
- 执行引擎设计
- JIT编译技术
- 垃圾回收基础
- 垃圾回收优化策略
- 并发移动式回收
- 线程设计与线程交互优化
- 本地接口与栈展开
- 运行时辅助与语言扩展
- 虚拟机设计中的权衡与商业方案