zoukankan      html  css  js  c++  java
  • [JVM-2]常用JVM命令参数

    (1)-Xms20M

    表示设置JVM堆内存的最小值为20M,必须以M为单位

    (2)-Xmx20M

    表示设置JVM堆内存的最大值为20M,必须以M为单位。将-Xmx和-Xms设置为一样可以避免JVM内存自动扩展。大的项目-Xmx和-Xms一般都要设置到10G、20G甚至还要高

    (3)-verbose:gc

    表示输出虚拟机中GC的详细情况

    (4)-Xss128k

    表示可以设置虚拟机栈的大小为128k

    (5)-Xoss128k

    表示设置本地方法栈的大小为128k。不过HotSpot并不区分虚拟机栈和本地方法栈,因此对于HotSpot来说这个参数是无效的

    (6)-XX:PermSize=10M    方法区内存分配(JDK8以前的版本使用,JDK8以后没有持久代了,使用的MetaSpace)

    表示JVM初始分配的永久代的容量,必须以M为单位

    (7)-XX:MaxPermSize=10M      方法区内存分配(JDK8以前的版本使用,JDK8以后没有持久代了,使用的MetaSpace)

    表示JVM允许分配的永久代的最大容量,必须以M为单位,大部分情况下这个参数默认为64M

    (8)-Xnoclassgc

    表示关闭JVM对类的垃圾回收

    (9)-XX:+TraceClassLoading

    表示查看类的加载信息

    (10)-XX:+TraceClassUnLoading

    表示查看类的卸载信息

    (11)-XX:NewRatio=4

    表示设置年轻代:老年代的大小比值为1:4,这意味着年轻代占整个堆的1/5

    (12)-XX:SurvivorRatio=8

    表示设置2个Survivor区:1个Eden区的大小比值为2:8,这意味着Survivor区占整个年轻代的1/5,这个参数默认为8

    (13)-Xmn20M

    表示设置年轻代的大小为20M

    (14)-XX:+HeapDumpOnOutOfMemoryError

    表示可以让虚拟机在出现内存溢出异常时Dump出当前的堆内存转储快照

    (15)-XX:+UseG1GC

    表示让JVM使用G1垃圾收集器

    (16)-XX:+PrintGCDetails

    表示在控制台上打印出GC具体细节

    (17)-XX:+PrintGC

    表示在控制台上打印出GC信息

    (18)-XX:PretenureSizeThreshold=3145728

    表示对象大于3145728(3M)时直接进入老年代分配,这里只能以字节作为单位

    (19)-XX:MaxTenuringThreshold=1

    表示对象年龄大于1,自动进入老年代

    (20)-XX:CompileThreshold=1000

    表示一个方法被调用1000次之后,会被认为是热点代码,并触发即时编译

    (21)-XX:+PrintHeapAtGC

    表示可以看到每次GC前后堆内存布局

    (22)-XX:+PrintTLAB

    表示可以看到TLAB的使用情况

    (23)-XX:+UseSpining

    开启自旋锁

    (24)-XX:PreBlockSpin

    更改自旋锁的自旋次数,使用这个参数必须先开启自旋锁

    (25)-XX:MaxDirectMemorySize

    表示设置直接内存大小,此参数的含义是当Direct ByteBuffer分配的堆外内存到达指定大小后,即触发Full GC。注意该值是有上限的,默认是64M,最大为sun.misc.VM.maxDirectMemory(),在程序中中可以获得-XX:MaxDirectMemorySize设置的值。使用NIO的api可以使用直接内存。

    后记

    Metaspace(元空间)内存大小设置(JDK8)

    元空间存在操作系统内存中,可以垃圾回收。JDK8的元空间几乎可用完机器的所有内存,同样设一个128M的初始值,512M的最大值保护一下。
    -XX:MetaspaceSize=128m

    -XX:MaxMetaspaceSize=512m

    1、默认情况下,类元数据分配受到可用的本机内存容量的限制(容量依然取决于你使用32位JVM还是64位操作系统的虚拟内存的可用性)。

    2、一个新的参数 (MaxMetaspaceSize)可以使用。允许你来限制用于类元数据的本地内存。如果没有特别指定,元空间将会根据应用程序在运行时的需求动态设置大小。

  • 相关阅读:
    Java之Jacob调用COM接口DLL-----------------------------------dm。dll
    mac版idea报错:Information:java: javacTask: 源发行版 1.8 需要目标发行版 1.8
    Spring-data-jpa 学习笔记
    Mac下IntelliJ IDEA快捷键大全
    mac怎么快速回到桌面 隐藏所有窗口
    Idea下安装Lombok插件
    spring注解第05课 FactoryBean
    apt 软件安装问题
    常用软件和库安装
    openMP---第一篇
  • 原文地址:https://www.cnblogs.com/Joy-Hu/p/10574341.html
Copyright © 2011-2022 走看看