当前位置:首页 > 开发 > Web前端 > 前端 > 正文

jvm内存管理

发表于: 2015-07-10   作者:easterfly   来源:转载   浏览:
jvm
摘要: 一、JVM堆内存的划分 分为年轻代和年老代。年轻代又分为三部分:一个eden,两个survivor。 工作过程是这样的:e区空间满了后,执行minor gc,存活下来的对象放入s0, 对s0仍会进行minor gc,存活下来的的对象放入s1中,对s1同样执行minor gc,依旧存活的对象就放入年老代中; 年老代满了之后会执行major gc,这个是stop the word模式,执行
一、JVM堆内存的划分
分为年轻代和年老代。年轻代又分为三部分:一个eden,两个survivor。
工作过程是这样的:e区空间满了后,执行minor gc,存活下来的对象放入s0, 对s0仍会进行minor gc,存活下来的的对象放入s1中,对s1同样执行minor gc,依旧存活的对象就放入年老代中;
年老代满了之后会执行major gc,这个是stop the word模式,执行major gc时所有线程都要等待,对应用可能会有影响,如果频繁进行major gc的话,有可能会出现应用超时的情况;
-xms:初始堆内存大小       -xmx:最大堆内存大小
二、持久代
持久代(perm gen)不属于堆内存,执行的是full gc,full gc对应用的影响也较大
-xx:PermSize=持久代初始内存大小       -xx:MaxPermSize=最大持久代内存大小
三、栈内存
与堆内存不同,栈内存主要存放的是临时的变量、引用对象,遵循LIFO原则
四、监控
jstat -gc pid time     time指打印时间间隔
结果参数中:
s0c,s1c指2个s区空间大小
s0u,s1u指2个s区当前使用量
ec,eu指e区空间大小和当前使用量
oc,ou指年老代空间大小和当前使用量
pc,pu指持久代空间大小和当前使用量
ygc,ygct指年轻代gc次数和花费的时间
fgc,fgct指full gc次数和花费时间
gct指gc花费的总时间[align=left]
[/align]

jvm内存管理

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号