Java从诞生之初就一直被诟病性能不如C/C++。究其原因,最主要是因为Java程序是运行在JVM虚拟机之上,而C/C++是运行在物理机之上。对于Java程序而言,哪怕是最简单的 HelloWorld 程序都需要先运行一个JVM程序。这意味着要它至少要多出一个类加载程序、字节码解析执行程序以及GC程序等。不过,虽然牺牲了一些运行效率,但是Java通过 JVM 实现了其 “Write Once, Run Anywhere” 的伟大构想。
与物理机相比,虚拟机是通过软件实现的,意味着它有更大的“可调”空间。也因此才有 JVM 性能调优这一课题。简单讲就是为具体的Java程序,调配一台最适合它跑的机器。对C/C++工程师来说,编译优化是必修的内功。同样地,对Java工程师而言,JVM调优也是必修的内功。另外值得一提的是,JVM作为一台虚拟机可不是只能运行Java程序。其他语言如Kotlin、Scala、Clojure、Groovy也都运行在JVM之上。所以JVM调优也是使用这些语言的工程师们的必修技能。
选择JVM
其实没什么好选择的,服务端Java应用一般都运行在 HotSpot VM之上。但还是有必要了解一下 JVM 族谱(如下图所示),这有助我们提升Java内功。如果从事其他领域的 Java 开发很可能就会面临 JVM 的选择。详细内容可阅读《JVM简介》。

最低0.47元/天 解锁文章
1942

被折叠的 条评论
为什么被折叠?



