JVM 备注
一、堆内存分布:
JAVA 分为堆内存和栈内存,GC主要针对堆内存
1)Young: 存放新生内存对象
1.1)Eden JVM 刚开始分配的对象
1.2)Survivor1(from)
1.3)Survivor2(to)两个区域一样大,Eden没有回收掉的对象会在两个区域来回拷贝,达到一定次数后移到Old。
即该对象在Young中存留的时间。
2)Old: 存放声明周期较长的内存对象
3)Permanent:永久保存区,存放class和meta信息
二、垃圾回收的时机:
1)当Eden代内存满时,会引发一次普通GC(Minor GC),该GC仅回收年轻代
2)当年老代满时会引发Full GC,Full GC将会同时回收年轻代、年老代
3)当永久代满时也会引发Full GC,会导致Class、Method元信息的卸载
Full GC 消耗的时间较长,要尽量减少。
三、JVM 主要参数:
-Xms<size> 设置JVM初始化堆内存大小
-Xmx<size> 设置JVM最大的堆内存大小
-Xss<size> 设置JVM栈内存大
-Xmn<size> 设置JVM年轻代大小
-XX:NewRatio 设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)
-XX:SurvivorRatio= 设置年轻代中Eden区与Survivor区的大小比值
-XX:MaxPermSize= 设置持久代大小
四、配置优化:
参考:http://www.cnblogs.com/likehua/p/3369823.html
最新文章
- Lind.DDD.ILogicDeleteBehavor~逻辑删除的实现
- python中%和format
- Linux I2C总线设备驱动模型分析(ov7740)
- .Net Framework 4.5.2 on Windows 10
- android几种定时器机制及区别
- python staticmethod classmethod
- CC2530 PWM波形产生。
- MVC源码解析 - Http Pipeline 解析(下)
- nio简介
- MyBatis介绍
- tf.contrib.seq2seq.sequence_loss example:seqence loss 实例代码
- python图片和字符串的转换
- Office自动生成目录步骤(非常实用)(图文详解)
- canvas 入门
- Mirror--镜像断开的解决办法
- 几种常见的Windows 服务器无法联网/无法连接远程桌面等故障解决方案
- java的四舍五入
- VMwareWorkstation与Device/CredentialGuard不兼容
- 与FPGA相关的独热码
- what is diff. b/w app state &; session state
热门文章
- OpneCv2.x 模块结构
- trie树模型
- 【maven】pom.xml报错:Cannot detect Web Project version.
- 使用命令行+ideal 工具实现本地代码项目提交
- files list file for package &#39;xxx&#39; is missing final newline
- linux 下使用配置文件
- 使用canal分析binlog(二) canal源码分析
- JQ 常见demo
- MSSQL数据库表加锁
- 更改机器名后,打开TFS提示工作区错误的处理