jdk的优化

一 jdk

1.1 查看jdk的版本

1.2 jdk的模式

1.-xint 为解释模式

2.-xcomp 为编译模式

3.xmixed为混合模式

1.3 设置初始堆大小和最大堆大小

 -xms:设置jvm的堆内存的初始大小

-xmx:设置jvm的堆内存的最大大小

-xmx2048m;等价于-xx:MaxHeapSize,设置为2g

-xms512; 等价于-xx:InitialHeapSize;设置为512m;

适当的调整jvm的内存大小,可以充分利用服务器的资源,让程序跑的更快。

例如: java  -jar   -xms512m -xmx2048m  testjar.jar

1.4 查看java进程

    jps     -l

1.5 查看正在运行程序的参数

jinfo  -flags   进程id

1.6 jdk的内存模型

1.6.1 jdk1.7的内存模型

堆内存分为年轻代,年老代,永久代

其中年轻代又分为两个等量且较小空间的survivor空间和一个Eden空间

1.6.2 jdk1.8的内存模型

年轻代:eden+survivor*2

老年代:OldGen

1.6.3 jdk1.7与1.8的区别

1.jdk1.8不再设置永久区,改为metaspace(元数据空间),metaspace所使用的内存空间是本地内存空间,而不是虚拟机内部空间。

1.6.4 为何要使用metaspace代替永久区

永久代经常不够用会报出内存泄漏,报出异常:java.lang.outofmemoryError:PermGen;基于此将永久区废弃,改为用元空间,改为了使用本地内存空间。

1.7 通过jstat命令进行查看堆内存使用情况

jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下:

jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]

1.7.1  统计class的加载情况

[root@node01 ~]# jstat -class 6219
Loaded  Bytes  Unloaded  Bytes     Time   
  3273  7122.3        0     0.0       3.98

说明:  

Loaded:加载class的数量

 Bytes:所占用空间大小

 Unloaded:未加载数量

 Bytes:未加载占用空间  

Time:时间

1.7.2  垃圾回收的统计

说明: 

 - S0C:第一个Survivor区的大小(KB)

- S1C:第二个Survivor区的大小(KB)

- S0U:第一个Survivor区的使用大小(KB)

- S1U:第二个Survivor区的使用大小(KB)

- EC:Eden区的大小(KB)

- EU:Eden区的使用大小(KB)

- OC:Old区大小(KB)

- OU:Old使用大小(KB) - M

- MC:方法区大小(KB)

- MU:方法区使用大小(KB)

- CCSC:压缩类空间大小(KB)

- CCSU:压缩类空间使用大小(KB)

- YGC:年轻代垃圾回收次数

- YGCT:年轻代垃圾回收消耗时间

- FGC:老年代垃圾回收次数

- FGCT:老年代垃圾回收消耗时间

- GCT:垃圾回收消耗总时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值