JVM内存

1.Java管理内存可分为两大类:线程共享内存和线程私有内存
2.线程共享内存:
(1).方法区:存储jvm加载的class文件/常量/静态变量/即时编译器编译后的代码.
(2).java堆:存储java的所有实例对象/数组等
3.线程私有内存:
(1).程序的计数器:每个线程都有自己的计数寄存器,存储当前线程执行字节码的地址.
(2).jvm栈:jvm会为每个运行线程分配一个栈区,线程调用方法时和方法返回时会进行进栈和出栈操作.
(3).本地方法区:与JVM STACK 类似,只不过此区域是为调用本地方法服务.
4.查看启动该进程时使用的一些选项
jinfo -flags pid
jinfo -h
jstat -h 打印JVM的状态信息
jstat -gc PID:当前进程的垃圾回收器管理的相关数据
jstat -gc PID 1S:当前进程的垃圾回收器管理的相关数据,每1秒显示一次
jstat -gc PID 1S 5:当前进程的垃圾回收器管理的相关数据,每1秒显示一次,显示5次
S0C: 第一存活区已使用
S1C: 第二存活区已使用
S0U: 第一存活区未使用
S1U: 第二存活区未使用
EC: Eden区已使用
EU: Eden未使用
OC: 老年代区已使用
OU: 老年代区未使用
PC: 持久代区已使用
PU: 持久代区未使用
jps
java性能查看工具:jconsole,visualvm,jprofiler,janalyer
5.JVM内存分区
(1).新生代(往往刚刚新创建的对象) yong generation
a. to (幸存区 ) –> 会进入old
b. from (幸存区 ) –> 会进入to
c. eden (刚刚新创建的对象) –> 会进入from
(2).老年代 old generation
(3).持久代(创建以后不会被回收) permanent generation
6.JVM相关参数
-Xms:堆内存初始化大小(基本上等于新生代+老年代内存大小)
-Xmx:堆内存最大值
-XX:NewSize 新生代初始化值
-XX:MaxNewSize 新生代运行的最大值
新生代预留空间=新生代运行的最大值-新生代初始化值
-XX:PermSize:持久代初始化值
-XX:MaxPermSize:持久代最大值
-XX:SurviviorRatio:eden与存活区的比例
-XX:MaxHeapFreeRatio:最大堆内存的空闲比例
-XX:MinHeapFreeRatio:最小堆内存的空闲比例

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值