JVM的自动内存管理要自动化地解决两个问题:对象分配内存以及回收分配给对象的内存。回收内存前几篇已经讲了,现在说内存分配。对象的内存分配一般分配在堆内存中,也可能经过JIT 编译后被拆散为标量类型间接地在栈上分配。对象主要分配在新生代的Eden 区上,如果启动了本地线程分配缓存,将按线程优先在TLAB (本地线程分配缓存)上分配。少数情况下也可能会直接分配在老年代中,分配的规则不是固定的,与使用哪一种垃圾收集器组合,还与虚拟机中内存相关参数设置有关。...
分类:
其他好文 时间:
2015-03-20 09:21:08
阅读次数:
123
本节小汪重点介绍下java内存,首先提问:
1.jvm内存如何分配
2.为什么要划分新生代和老年代,实践中究竟哪些属于新哪些属于旧
3.简要介绍一下jstat -gc 如何...
分类:
其他好文 时间:
2015-02-27 10:08:52
阅读次数:
125
我们得到了活跃数据大小,就可以根据活跃数据的情况,配置我们的初始化空间。
下面是我们的应用在稳定阶段的一段FULLGC。生成的代码在最后。
1、活跃数据示例
[Full GC[PSYoungGen: 64K->0K(4416K)] [PSOldGen: 51352K->51352K(56768K)]51416K->51352K(61184K) [PSPermGen: 2085K->2085K...
分类:
其他好文 时间:
2015-01-27 16:24:33
阅读次数:
388
http://www.cnblogs.com/springsource/archive/2013/01/11/2856968.html这个是360图书馆中的那篇!介绍堆内存老年代和新生代很详细http://www.360doc.com/content/13/1001/14/15643_3183819...
分类:
编程语言 时间:
2015-01-26 20:56:35
阅读次数:
215
摘要:当前商业虚拟机的垃圾收集都采用“分代收集”(Generational Collection)算法,这种算法并没有什么新的思想,只是根据对象的存活周期的不同将内存划分为几块。一般是把Java堆分为新生代和老年代,这样就可以根据各个年代的特点采用最适当的收集算法。在新生代中,每次垃圾收集时都发现有大批对象死去,只有少量存活,那就选用复制算法,只需要付出少量存活对象的复制成本就可以完成收集。而老年...
分类:
编程语言 时间:
2015-01-23 11:13:30
阅读次数:
219
Parallel Old收集器是JAVA虚拟机中垃圾收集器的一种。和Serial Old收集器一样,工作在JAV虚拟机的老年代。这种垃圾收集器使用多线程和“标记-整理”算法。它在JDK
1.6中才开始提供。
在注重吞吐量及CPU资源敏感的场合,都可以优先考虑Parallel Scavenge加Parallel
Old收集器。
1、运行代码
package com.gc;
im...
分类:
编程语言 时间:
2015-01-19 17:20:48
阅读次数:
668
1、特点
CMS收集器是JAVA虚拟机中垃圾收集器的一种。它运行在JAVA虚拟机的老年代中。CMS是(Concurrent
MarkSweep)的首字母缩写。CMS收集器是一种以获取最短回收停顿时间为目标的收集器。比较适用于互联网等场合,可能是互联网中最重要的收集器模式;
2、优点
由于整个过程中耗时最长的并发标记和并发清除过程中,收集器线程都可以与用户线程一起工作,所以总体上来说,CM...
分类:
编程语言 时间:
2015-01-19 17:19:50
阅读次数:
236
Serial Old收集器是JAVA虚拟机中垃圾收集器的一种,它是Serial收集器的老年代版本,它同样是一个单线程收集器,使用“标记-整理”算法。这个收集器的主要也是在目前的JAVA的Client模式下的虚拟机使用。如果在Server模式下,它主要还有两大用途:一个是在JDK
1.5及之前的版本中与Parallel Scavenge收集器搭配使用,另外一个就是作为CMS收集器的后备预案。如果...
分类:
编程语言 时间:
2015-01-19 17:19:07
阅读次数:
253
前言:垃圾回收 和内存分配是jvm中重要的两个部分,这个笔记,记载的是JVM的内存分配策略。 1、对象优先在新生代的Edon区分配。 2、大对象直接进入老年代。 3、长期存活的对象进入老年代。
分类:
其他好文 时间:
2015-01-09 19:17:49
阅读次数:
167
因为以前用默认的GC,,老年代经常在占比超过99%才发生一个GC行为,感觉不爽。。。尽管每次FULL GC只要0.5S。结合上次听中华构架师大会,一哥们分享的G1 GC。。。试试。。就在TOMCAT的catania.sh里JAVA的启动参数加一段吧。。JAVA_OPTS=' -Xms512m -Xm...
分类:
其他好文 时间:
2015-01-09 12:04:58
阅读次数:
272