- 3
- 0
- 约1万字
- 约 35页
- 2019-01-01 发布于福建
- 举报
jvm内人存模型和垃圾收集
JVM内存模型和垃圾收集 fanzhang 2009.08.31 意义何在 内存和垃圾收集对Java程序的性能起着至关重要的作用,特别是对服务器程序。 遭遇OOM?响应速度慢?并发上不去?吞吐量不够? 内存和垃圾收集是Java程序的OS。 遍布问号的底层 堆?:根集合?、链结构、老的居底、从顶分配、可达性、活跃对象 栈在哪里?:主内存和工作内存?栈空间也要配置? 引用:强引用和弱引用?垃圾收集不用引用计数用什么(无法回收:树、子指向父)?引用值会被改变?对象哈希值何时与之相关? 堆(Heap) JVM管理的内存叫堆(Heap);32位Linux最大3G;64位无限制 初始-Xms:默认1/64但小于1G。最大-Xmx:默认1/4但小于1G。 -Xms与-Xms设置相同值,对服务端应用来说要给足空间(重要) 最小空余-XX:MinHeapFreeRatio=40%。 最大空余-XX:MaxHeapFreeRatio=70%。 堆的分代(Generation) 堆分为三个代:Young、Old和Permanent,不同代采用不同的垃圾收集算法,以提升性能。(注:Permanent空间在大小上并没有计算在Heap空间之内)如下图: 年轻代(Young) 年轻代采取复制收集算法。分为3个区域:一个Eden,所有新建对象;两个Survivor区,用来实施复制算法。 -XX:N
原创力文档

文档评论(0)