was java虚拟机内存_二,JVM的内存模型,(GC)垃圾处理,调优监控(基于HotSpot VM,JDK1.5+)【JAVA内存模型】...

一,JVM内存模型概括

0e6ae5dc27f75948439e27981d16da32.png

还有一个寄存器,线程运行于其上面

1.程序计数器

记录线程的执行位置,线程私有内存,唯一一个在Java虚拟机规范中没有规定任何OutOfMemoryError情况的区域

2.线程栈(VM stack)

3c09416d1f3da34b525085fa6c98145d.png

栈的默认大小是1M

-Xss2m 这样设置成2M

异常 :Fatal: Stack size too small

异常的引起一般是线程数目太多

3.本地方法栈(native stack)

即为一些Native方法分配的stack

异常:java.lang.OutOfMemoryError: unable to create new native thread

一般也是由线程太多引起,增加栈空间,同上方法

4.堆(heap),程序可用堆

932bf489246ad4c4d936ab1e519482db.png

截图自JConsole

每个线程的栈都是该线程私有的,堆则是所有线程共享的

这里说的堆,主要指程序能控制的,包括

079ab29d8cb41aaa1e3b34fca660606f.png

The New Generational Heap,默认4M,此区域一般为JVM内存的1/15大小

此代分为Eden space区,Survivo space区可以看成emptySurvivo区,Survivor区,

当new 一个对象时,首先是在Eden space区,当Eden space区满时,Survivor space区进行垃圾回收(此处复制算法),当对象在Survivo space区经过几次回收Tenured Generation

复制算法,每次算法开始都得停止当前所有的线程,然后把Survivor区的所有活跃的对象复制到emptySurvivo区,然后对Survivor区空间进行清除变成emptySurvivo,以前的emptySurvivo成为了Survivor区。(互换)

Tenured Generat

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值