一、本文的目的 Straggler是目前研究的热点,Spark中也存在Straggler的问题。GC问题是总所周知的导致Straggler的重要因素之一,为了了解GC导致的Straggler问题,首先需要学习GC问题以及如何监控Spark的GC。GC问题的讨论比较多了,推荐一篇系列文章用于学习:成....
分类:
编程语言 时间:
2015-05-28 19:43:30
阅读次数:
262
1.垃圾回收机制(GC)1)Java内存分配在JAVA程序中,无论代码还是数据,都需要存储在内存中,而java程序所需内存均由JVM进行管理分配,JVM会将申请的内存从逻辑上划分为三个区域:堆、栈、方法区。这三个区域分别用于存储不同的数据。堆用来存放创建出来的对象,jvm只有一个堆..
分类:
编程语言 时间:
2015-05-27 19:25:03
阅读次数:
143
强引用一般程序中通过new创建的对象的引用都是强引用,强引用只有在从根节点不可达的情况下才会被垃圾回收器回收,所以可能产生内存溢出。软引用使用SoftReference创建,弱于强引用,在内存紧张的时候会被回收,不会产生内存溢出。弱引用使用WeakReference创建,弱于软引用,在系统gc时只要发现弱引用直接回收,不会产生内存溢出。虚引用使用PhantomReference创建,最弱的引用类型,...
分类:
编程语言 时间:
2015-05-27 19:09:38
阅读次数:
199
引用计数:一个对象被引用计数器加一,取消引用计数器减一,引用计数器为0才能被回收。优点:简单。缺点:不能解决循环引用的问题,比如A引用B,B引用A,但是这两个对象没有被其他任何对象引用,属于垃圾对象,却不能回收;每次引用都会附件一个加减法,影响性能。
标记清除法:分为两个阶段:标记阶段和清除阶段。标记阶段通过根节点标记所有可达对象,清除阶段清除所有不可达对象。缺点:因为清除不可达对象之后剩余的内存不...
分类:
编程语言 时间:
2015-05-27 15:44:48
阅读次数:
131
垃圾收集器(GarbageCollector,GC)对Java程序员来说,基本上是透明的,但是一个优秀的Java程序员必须了解GC的工作原理、如何优化GC的性能、如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理效率,才能提高整个应用程序的...
分类:
编程语言 时间:
2015-05-27 13:49:42
阅读次数:
175
-XX:+PrintGC 启动java虚拟机后,只要遇到gc,就打印日志。
-XX:+PrintGCDetails gc发生时,打印更详细的日志。
-XX:+PrintHeapAtGC gc发生时,打印更详细的堆信息。
-XX:+PrintGCTimeStamps gc发生时,额外打印gc时间,该时间为虚拟机启动到现在的时间偏移量。
-XX:+PrintGCApplicationConcur...
分类:
编程语言 时间:
2015-05-27 12:18:06
阅读次数:
148
作者:http://blog.csdn.net/mycwq 每个Erlang进程创建之后都会有自己的PCB,栈,私有堆。erlang不知道他创建的进程会用到哪种场合下,所以一开始分配的内存比较小。如果分配的空间不够了,erlang gc会动态调整堆...
分类:
系统相关 时间:
2015-05-26 16:38:35
阅读次数:
192
垃圾回收器的回收的对象:垃圾回收只回收托管堆中的内存什么样的对象才会被回收?没有变量引用的对象。没有变量引用的对象,表示可以被回收了(null.什么时间回收?不确定,当程序需要新内存的时候开始执行回收。GC.Collect();//手动调用垃圾回收器。不建议使用,垃圾回收时会暂停一下(非常短暂)让程...
分类:
其他好文 时间:
2015-05-24 23:04:21
阅读次数:
109
此次主要做一下java内存区域和GC机制的知识小结,下面的段落部分摘自网络,部分摘自书籍,具体的链接忘记了,因为这是之前学习的时候做下的笔记。还望原作者多多包涵!1 Java垃圾回收Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序...
分类:
编程语言 时间:
2015-05-24 17:30:32
阅读次数:
206