首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用OpenJDK时,默认情况下运行哪个JVM?

在使用OpenJDK时,默认情况下运行哪个JVM?
EN

Stack Overflow用户
提问于 2021-08-07 23:45:13
回答 2查看 685关注 0票数 0

我必须在我们的应用程序API中做一些性能调优,并且我一直在研究关于堆大小和Gargabe集合的JVM标志。然而,我经常发现自己在许多不同的文档中,有时我会以WebLogic服务器、文档或其他企业版的java docs系统告终。

我考虑过测试所有JVM的通用标志,我看到其中一些标志更常见,几乎在所有JVM中都存在,而有些标志更具体,比如-XX标记,更具有JVM的特性。

我的猜测是这个https://openjdk.java.net/groups/hotspot/是答案,但我想知道是否有更多的具体信息。我在家里运行了一个命令(不是我工作时的应用程序,但结果似乎是一样的,除了java版本),以便在一个进程中在家里获得一些信息,只是比较一下:

代码语言:javascript
复制
root@xxxx:/home/xxxx# jcmd 6134 VM.system_properties > log.out
root@xxxx:/home/xxxx# cat log.out | grep vm
java.vm.vendor=Ubuntu
java.vm.specification.version=11
sun.boot.library.path=/usr/lib/jvm/java-11-openjdk-amd64/lib
java.home=/usr/lib/jvm/java-11-openjdk-amd64
java.vm.compressedOopsMode=Zero based
java.vm.specification.vendor=Oracle Corporation
java.vm.name=OpenJDK 64-Bit Server VM
java.vm.specification.name=Java Virtual Machine Specification
java.vm.info=mixed mode, sharing
java.vm.version=11.0.11+9-Ubuntu-0ubuntu2.18.04
root@xxxx:/home/xxx# 

正如您所看到的,它只是声明OpenJDK 64位服务器VM,作为jvm名称。如果我试图在谷歌上搜索这些标志,它就会回到HotSpot,因此我对此表示怀疑。

我已经使用了列出所有JVM标志的命令来查看选项,所以这已经是一件好事。不过,官方文档也不错,我一直在使用不同的JVM规范,希望标志的含义是一样的,但它确实让我感到我不知道自己在做什么。

所以,也许是TL:DR: OpenJDK 64位服务器VM可以解释为HotSpot JVM,还是应该在其他地方查找它的文档?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-08 00:26:05

tl;dr

  • OpenJ9命令行选项是记录在这里.
  • HotSpot命令行选项是在此讨论,但没有列出.
  • Java7和更早版本的HotSpot命令行选项是记录在这里

JDK有不同的JVM实现(HotSpot、OpenJ9、GraalVM),以及具有不同调优选项的不同垃圾收集器实现(Z垃圾收集器(ZGC)垃圾优先(G1)谢南多并发标记扫描(CMS)串行收集器并联收集器等)。

HotSpot & OpenJ9

有两种用于通用Java工作的JVM实现:

这两种JVM都很优秀,而且都得到了很好的证明。至于比较,评论员经常提到OpenJ9在初始内存需求较少的情况下启动速度更快,而随着时间的推移,HotSpot可能更适合于执行。但是做你自己的研究来选择。记住,你在比较苹果和苹果,而不是苹果和桔子

许多JDK发行版可以从几家供应商获得,包括Azul系统、Red /IBM、SAP、微软、甲骨文、Pivotal、BellSoft、亚马逊等。有些供应商使用HotSpot,有些使用OpenJ9。有些人两者兼而有之,允许你做出选择。例如,下面是来自AdoptOpenJDK a.k.a的屏幕截图。提供HotSpot或OpenJ9的选择。

至于如何识别运行时使用的内容,我无法帮助。

OpenJDK项目

顺便说一句,请理解OpenJDK项目涵盖了许多子项目。HotSpot只是几个子项目之一。我们所知道的Java的核心图书馆的一个实现是另一个子项目。其他子项目正在准备技术,如巴拿马项目工程织机

提供JDK构建/安装程序的供应商可以自由选择这些部件。供应商可以选择使用OpenJDK子项目的核心库,以及的OpenJ9 JVM。

还要了解,OpenJDK项目只为JDK的这些部分提供了原始源代码。OpenJDK项目不提供构建/安装程序。查看上面提到的其他供应商的版本/安装程序。

Oracle限制访问“Java”的名称和徽标的商标。相反,Oracle提供了对术语“OpenJDK”的简单访问,用于命名基于OpenJDK代码基的构建和安装程序。许多由不同供应商发布的JDK产品的名称中都有" OpenJDK“,但这意味着它们是基于OpenJDK代码基的,而不是OpenJDK项目- a提供的构建/安装程序微妙但重要的区别。

GraalVM

现在进入自己的JVM的另一个是https://en.wikipedia.org/wiki/GraalVM。这个JVM是特殊的。功能包括:

票数 3
EN

Stack Overflow用户

发布于 2021-08-12 13:37:40

对于许多JVM,chriswhocodes.com上有一个非常全面的选项列表。例如,Hotspot是从版本6到18覆盖的,这是一个非常好的一站式网站。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68696827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档