原文地址:http://blog.csdn.net/kingofworld/article/details/17718587 一、JVM内存模型总体架构图 运行时数据区 JVM定义了不同运行时数据区,他们是用来执行应用程序的。某些区域随着JVM启动及销毁,另外一些区域的数据是线程性独立的,随着线程创 ...
分类:
编程语言 时间:
2017-04-06 09:34:57
阅读次数:
293
上图就是JVM的分代模型,JVM根据Object的生命周期长短,将其分为上述的三个层次(也称代)。不同的层次,其GC(收集回收)算法不一样 Young Generation(年轻代、young代) Young Generation(年轻代、young代) 对象的初次创建就会在young代,大部分对象 ...
分类:
其他好文 时间:
2017-04-05 23:47:26
阅读次数:
211
书接上文,在了解JVM的分代模型后,接着来简单聊聊JVM中GC算法和不同的GC收集器【求关注】 GC回收算法 一个GC回收算法通常会做这么几件事: 1、遍历内存,找到被引用的对象 2、清理掉这些未被标记对象的内存 3、被清理掉的内存放回内存中,供其他地方使用 上文也提及过,目前JVM中的搜索引用对象 ...
分类:
其他好文 时间:
2017-04-05 23:44:55
阅读次数:
281
JVM调优总结 一、相关概念 基本回收算法 引用计数(Reference Counting)比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。 标记-清除(Mark-Sweep)此算法执 ...
分类:
其他好文 时间:
2017-04-05 01:01:10
阅读次数:
176
引用计数法对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1,当引用失效时,引用计数器就减1.只要A对象的引用计数器的值为0,则对象A就不可能再被使用。实现也很简单,只需要为每个对象配备一个整型的计数器即可。缺点:1.无法处理循环引用的情况2.引用计算器要求在每次引用产生和消除的时候... ...
分类:
编程语言 时间:
2017-04-04 00:53:30
阅读次数:
226
分代垃圾回收,基于的是“大部分的对象,在生成后马上就会变成垃圾”这一经验上的事实为设计出发点。此前讨论过基于引事实的另一个垃圾回收算法,引用计数出的一些优化思路。 分代的关键是: 分代垃圾回收的典型是Ungar的分代垃圾回收。 它将堆分成如下形式: 如上,分成新生代与老年代。 在新生代内,又分成了生 ...
分类:
编程语言 时间:
2017-04-02 22:01:03
阅读次数:
310
内存分配与回收策略 Java技术体系中的自动内存管理最终可以归结为自动化地解决两个问题:给对象分配内存和回收分配给对象的内存。关于内存回收这一点,我们在Java垃圾收集机制中详细介绍了各种回收算法以及JVM中常见的收集器。接下来我们主要看看JVM是如何给对象分配内存的。 对象的内存分配,往大的方向上 ...
分类:
其他好文 时间:
2017-03-31 16:53:29
阅读次数:
210
1)垃圾回收的两个关键要素: 发现无用对象。 回收无用对象的内存空间。 2)6种垃圾回收算法 引用计数法,tracing 算法,compacting算法,copying 算法,generation算法,adaptive算法。 3)detail: 引用计数法(Reference Counting Co ...
分类:
编程语言 时间:
2017-03-22 17:38:07
阅读次数:
205
许多文章会介绍F2FS,对于入门者来说能够了解个F2FS全貌,但是真正了解这个年轻的文件系统还是要看源码的。网上F2fs源码导读的文章,我到现在还是没看过,所以就用这几篇博客来介绍下f2fs,以期对f2fs有更加深入的认识,甚至对整个IO路径的认知有所启发。 下面 文件系统的包括文件系统在磁盘上的布 ...
分类:
其他好文 时间:
2017-03-22 01:10:11
阅读次数:
1477
以下配置主要针对分代垃圾回收算法而言。 堆大小设置 年轻代的设置很关键 JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。在Windows Se ...
分类:
其他好文 时间:
2017-03-14 12:18:53
阅读次数:
161