一、堆内存分布:
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

最新文章

  1. Lind.DDD.ILogicDeleteBehavor~逻辑删除的实现
  2. python中%和format
  3. Linux I2C总线设备驱动模型分析(ov7740)
  4. .Net Framework 4.5.2 on Windows 10
  5. android几种定时器机制及区别
  6. python staticmethod classmethod
  7. CC2530 PWM波形产生。
  8. MVC源码解析 - Http Pipeline 解析(下)
  9. nio简介
  10. MyBatis介绍
  11. tf.contrib.seq2seq.sequence_loss example:seqence loss 实例代码
  12. python图片和字符串的转换
  13. Office自动生成目录步骤(非常实用)(图文详解)
  14. canvas 入门
  15. Mirror--镜像断开的解决办法
  16. 几种常见的Windows 服务器无法联网/无法连接远程桌面等故障解决方案
  17. java的四舍五入
  18. VMwareWorkstation与Device/CredentialGuard不兼容
  19. 与FPGA相关的独热码
  20. what is diff. b/w app state &amp; session state

热门文章

  1. OpneCv2.x 模块结构
  2. trie树模型
  3. 【maven】pom.xml报错:Cannot detect Web Project version.
  4. 使用命令行+ideal 工具实现本地代码项目提交
  5. files list file for package &#39;xxx&#39; is missing final newline
  6. linux 下使用配置文件
  7. 使用canal分析binlog(二) canal源码分析
  8. JQ 常见demo
  9. MSSQL数据库表加锁
  10. 更改机器名后,打开TFS提示工作区错误的处理