实现jvm规范,编写jvm实现的那些人都是大牛。记录一下平时学习hotspot过程中的一些思考,没有看过hotspot源码,仅仅根据看文档来记录一下自己的思考。
除了hotspot,应该还有其他jvm规范的实现,oracle主要有两个jvm实现,分别是HotSpot JVM和JRockit JVM,JRockit JVM的文档比较少,以后有时间再了解,oracle以后可能会将这些jvm融合起来,不过hotspot是现在使用最广泛的jvm。
hotspot jvm包括两个实现,不同的实现适合不同的场景:
Java HotSpot Client VM:通过减少应用程序启动时间和内存占用,在客户端环境中运行应用程序时可以获得最佳性能。此经过专门调整,可缩短应用程序启动时间和内存占用,使其特别适合客户端环境。此jvm实现比较适合我们平时用作本地开发,平时的开发不需要很大的内存。
Java HotSpot Server VM:旨在最大程度地提高服务器环境中运行的应用程序的执行速度。此jvm实现经过专门调整,可能是特别调整堆大小、垃圾回收器、编译器那些。用于长时间运行的服务器程序,这些服务器程序需要尽可能快的运行速度,而不是快速启动时间。
心血来潮,看一下自己本机安装的是什么jvm?
JDK在发行版中包含这两个实现,oracle说可以使用-client或
-server这两个命令选择对应的实现。通过查阅资料,暂时没找到这两个命令的使用方法,以后再尝试。