Java 虚拟机启动

发布时间:2022-07-05 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Java 虚拟机启动脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

Java 虚拟机

JVM的启动参数

运行一个java程序,在命令行中输入命令F1a;

jps: 显示当前运行在虚拟机上的进程,可以查看我们自己的程序的进程号:3272

Java 虚拟机启动

然后输入下面命令:该命令会打印当前进程运行的 虚拟机的参数配置信息,这些参数是虚拟机启动时自己的默认参数

jinfo -flags 3272

Java 虚拟机启动

查看一下这些参数代表的是什么意思:可以到下面的链接中去查找

https://docs.oracle.COM/javase/8/docs/technotes/tools/unix/java.htML

-XX:CICompilerCount=4:设置用于编译的编译器线程数。当然这个参数在服务端上跟客户端上可能会不一样,还有机器的配置也会影响到虚拟机的该默认参数的值,在我的设备上是4.

-XX:InITialHeapSize=31457280:设置内存分配池的初始大小(以字节为单位)。此值必须是 0 或 1024 的倍数且大于 1 MB。附加字母kK以指示千字节,mM指示兆字节,gG指示千兆字节。默认值是在运行时根据系统配置选择的。我的电脑上显示的没有指定单位,说明它是以字节为单位的,占用了31457280个字节

-XX:MaxHeapSize=31457280:设置内存分配池的最大大小(以字节为单位)。此值必须是 1024 的倍数且大于 2 MB。附加字母和上面的-XX:InitialHeapSize代表的含义是一样的。默认值是在运行时根据系统配置选择的。它与-XX:InitialHeapSize这个值 一般设置成一样的。

-XX:MaXMetaspaceSize=31457280:设置可为类元数据分配的最大本机内存量。默认情况下,大小不受限制。应用程序的元数据量取决于应用程序本身、其他正在运行的应用程序以及系统上可用的内存量。

-XX:MaxNewSize=10485760:为年轻代 设置堆的最大大小(以字节为单位)

-XX:MaxTenuringThreshold=6:设置用于自适应 GC 大小调整的最大任期阈值。最大值为 15。并行(吞吐量)收集器的默认值为 15,CMS 收集器的默认值为 6。垃圾回收一次,没有被回收掉的对象,它的GC年龄会加1,这个阈值的意思就是经过6次回收,对象仍然存活,这时就要将对象从年轻代,移动到老年代了。

-XX:MinHeapDeltaBytes=196608:这个值竟然没有在上面的文档中找到

-XX:NewSize=10485760:为年轻代 设置堆的初始大小(以字节为单位),与上面的-XX:MaxNewSize设置年轻代的最大大小是相对应的。堆的年轻代区域用于新对象。GC 在该区域执行的频率高于其他区域。如果年轻代的大小太小,则会执行大量的minor GC。如果大小太大,则只会执行完整的 GC,这可能需要很长时间才能完成。Oracle 建议您将年轻代的大小保持在整个堆大小的一到四分之一之间。

-XX:OldPLABSize=16:

-XX:OldSize=20971520:

-XX:-UseComPressedOops:禁用压缩指针的使用。默认情况下启用此选项,当 Java 堆大小小于 32 GB 时使用压缩指针。启用此选项后,对象引用表示为 32 位偏移量而不是 64 位指针,这通常会在运行 Java 堆大小小于 32 GB 的应用程序时提高性能。此选项仅适用于 64 位 JVM。当 Java 堆大小大于 32GB 时,也可以使用压缩指针。

为老年代启用 CMS 垃圾收集器。Oracle 建议您在吞吐量 ( -XX:+UseParallelGC) 垃圾收集器无法满足应用程序延迟要求时使用 CMS 垃圾收集器。G1 垃圾收集器 ( -XX:+UseG1GC) 是另一种选择。

-XX:+UseConcMarkSweepGC:默认情况下,此选项处于禁用状态,并根据机器的配置和 JVM 的类型自动选择收集器。当启用该选项时,-XX:+UseParNewGC选项将自动设置,你不应该禁用它,因为下面的选项组合已经在JDK 8被弃用:-XX:+UseConcMarkSweepGC -XX:-UseParNewGC

-XX:+UseParNewGC:启用在年轻代中使用并行线程进行收集。默认情况下,此选项处于禁用状态。当您设置该-XX:+UseConcMarkSweepGC选项时,它会自动启用, 它与上面的 个是配对使用的。

-XX:+UseFastUnorderedTimeStamps:

-XX:-UseLargePagesIndividualAllocation:

-Xms30m:设置堆的最小值和初始大小(以字节为单位)。此值必须是 1024 的倍数且大于 1 MB。附加字母kK以指示千字节,mM指示兆字节,gG指示千兆字节。-Xms与上面的-XX:InitalHeapSize是等效的。

-Xmx30m:以字节为单位指定内存分配池的最大大小(以字节为单位)。此值必须是 1024 的倍数且大于 2 MB。附加字母kK以指示千字节,mM指示兆字节,gG指示千兆字节。默认值是在运行时根据系统配置选择的。-Xmx与上面的-XX:MaxHeapSize参数配置是等效的。

上面的这些参数也可以在java程序启动时手动修改:

  1. 如果是在IDE中运行程序的话,可以在VM Options配置中修改我们想要设置的参数;
  2. 如果是用java命令执行的话,可以在java命令后面跟上这些参数,并以空格分开。

脚本宝典总结

以上是脚本宝典为你收集整理的Java 虚拟机启动全部内容,希望文章能够帮你解决Java 虚拟机启动所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。