堆内存设置 原理 JVM堆内存分为2块:Permanent Space 和 Heap Space。 Permanent 即 持久代(Permanent Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。 Heap = { Old + NEW = {Ed ...
分类:
其他好文 时间:
2016-09-15 17:53:11
阅读次数:
196
ruby的垃圾收集器 在ruby中,做的所有的事几乎都需要内存。 ruby垃圾收集器的工作就是管理内存,并最终释放那些不再使用的对象。但是这会牺牲一点性能,它工作的时候需要暂停人的程序。 它是如何工作的? 它使用一种被称为标记-清除(mark and sweep)的过程。首先,遍历对象图,能被访问到 ...
分类:
其他好文 时间:
2016-09-10 21:58:13
阅读次数:
244
名词解释: GC:垃圾收集器 Minor GC:新生代GC,指发生在新生代的垃圾收集动作,所有的Minor GC都会触发全世界的暂停(stop-the-world),停止应用程序的线程,不过这个过程非常短暂。 Major GC/Full GC:老年代GC,指发生在老年代的GC。 JVM:Java V ...
分类:
编程语言 时间:
2016-09-08 16:02:09
阅读次数:
261
Serial收集器:是一个单线程的收集器,使用一个CPU或一条收集线程。在进行垃圾收集时,必须暂停其他所有的工作线程,直到收集结束。在用户不可见的情况下,把正常工作的线程全部停止,对很多应用来说难以接受,所以虚拟机开发团队一直寻求消除或减少停顿时间的方法。它是虚拟机运行在Client模式下的默认新生 ...
分类:
其他好文 时间:
2016-09-06 10:26:04
阅读次数:
130
垃圾收集器与内存分配策略
1对象死亡
1.引用计数算法
2.可达性分析算法
2.垃圾收集算法
1.标记-清除算法
2.复制算法
3.标记-整理算法
4.分代收集算法
3.hotspot...
分类:
其他好文 时间:
2016-09-05 15:26:30
阅读次数:
246
对象的内存分配,大部分在堆上分配(少部分经过JIT编译后被拆散为标量类型并间接地栈上分配),对象主要分配在新生代的Eden,如果启动了本地线程分配缓存,将按线程优先在TLAB上分配,少数情况下也可能会分配在老年代中,分配的规则不固定,取决于使用哪一种垃圾收集器组合,还有虚拟机中与内存相关的参数的设置 ...
分类:
其他好文 时间:
2016-08-31 00:50:24
阅读次数:
137
JVM结构、内存分配、垃圾回收算法、垃圾收集器。下面我们一一来看。 一、JVM结构 根据《java虚拟机规范》规定,JVM的基本结构一般如下图所示: 从左图可知,JVM主要包括四个部分: 1.类加载器(ClassLoader):在JVM启动时或者在类运行时将需要的class加载到JVM中。(右图表示 ...
分类:
其他好文 时间:
2016-08-23 16:31:52
阅读次数:
269
2016-08-23 关于GC的算法和垃圾收集器的种类就暂且不说了,网上有大把的资料供参考 话题引入 让我们先简单的看下整个堆年轻代和年老代的垃圾收集器组合(以下配合java8完美支持,其他版本可能稍有不同),其中标红线的则是我们今天要着重讲的内容: ParNew and CMS "Concurre ...
分类:
其他好文 时间:
2016-08-23 06:48:31
阅读次数:
216
转自:http://blog.csdn.net/zhanggang807/article/details/45956325 最近在复习Java GC,因为G1比较新,JDK1.7才正式引入,比较艰难的找到一篇写的很棒的文章,粘过来mark下。总结这篇文章和其他的资料,G1可以基本稳定在0.5s到1s ...
分类:
其他好文 时间:
2016-08-23 01:33:30
阅读次数:
156
GC需要完成的3件事情: 1.哪些内存需要回收? 2.什么时候回收? 3.如何回收? 哪些内存需要回收? 对于程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭,栈帧随方法的进入和退出执行入栈和出栈的操作。每一个栈帧分配多少内存基本上在类结构确定下来时就已知(运行期JIT编译器会进行一些 ...
分类:
其他好文 时间:
2016-08-21 00:50:43
阅读次数:
147