补习了一下jvm的内存管理知识,有以下心得分享:

1、jvm的内存分区分级大粒度管理相较memcache的固定单元小粒度内存管理,拥有更高的内存利用率,但带来内存碎片的问题。

2、为了解决内存碎片问题,jvm采取了碎片整理的方式,但碎片整理是很耗时的。

3、为了提高碎片整理的效率,因此引入了周期性的GC,而且分区分级的方式也控制了每次GC和碎片整理的范围。

4、由于jvm使用堆内存来存储局部变量,而局部变量具有生存周期短,先申请的后释放的特点,因此在低级别的分区中进行GC是效率最高的方式。 感觉环环相扣,有点奇妙。

再补充GC的一个作用:寻找回路的孤立存储,并释放其占用的空间。这更要求GC的非实时、周期性

 

同系列文章:

java虚拟机内存管理机制(一):http://blog.csdn.net/lengyuhong/archive/2010/10/20/5953544.aspx

java虚拟机内存管理机制(二):http://blog.csdn.net/lengyuhong/archive/2010/10/20/5953594.aspx

java虚拟机内存管理机制(三):http://blog.csdn.net/lengyuhong/archive/2010/10/19/5952008.aspx

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐