(二)java虚拟机——常用java虚拟机参数

读懂GC日志

(1)代码:

public class Main {
  public static void main(String[] args) {
    TestClass testClass = new TestClass();
    testClass.localvar1();
    testClass.localvar2();
  }
}

class TestClass {
  public void localvar1() {
    byte[] a = new byte[6*1024*1024];
    System.gc();
  }
  public void localvar2() {
    byte[] a = new byte[6*1024*1024];
    a = null;
    System.gc();
  }
}

(2)编译代码生成class文件,使用java -XX:PrintGC Main 参看垃圾回收情况
注:使用参数-Xloggc:log/gc.log可将gc日志保存到log/gc.log
在这里插入图片描述
以上每行代表一次垃圾回收,GC代表部分收集(比如只对新生代收集);Full GC代表收集整个堆。
[GC (System.gc()) 8140K->6904K(125952K), 0.0074996 secs]
GC前堆使用的内存大小是8140K;GC后堆使用的内存大小是6904K;即释放的内存大小为8140K - 6904K;当前可用的堆空间总和为125952K.

类加载/卸载的跟踪

使用java -verbose:class Main查看类的加载和卸载;等价于java -XX:+TraceClassLoading Main和java -XX:+TraceClassUnloading Main
在这里插入图片描述

虚拟机参数设置

(1)堆内存
-Xms :初始堆内存大小
-Xmx :最大堆内存大小
(2)栈内存
-Xss:线程栈大小
(3)直接内存
-XX:MaxDirectMemory:直接内存的最大值(默认最大等于堆内存的最大值)

虚拟机的工作模式:Client和Server

Server启动慢,但是该模式的执行速度远远快于Client模式;
两种模式的默认jvm参数有所不同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值