站在垃圾收集器的角度来看,可以把内存分为新生代与老年代。内存的分配规则取决于当前使用的是哪种垃圾收集器的组合,以及内存相关的参数配置。往大的方向说,对象优先分配在新生代的Eden区域,而大对象直接进入老年代。 第一, 新生代的Eden区域,对象优先分配在该区域,同时JVM可以为每个线程分配一个私有的 ...
分类:
其他好文 时间:
2019-11-20 16:49:12
阅读次数:
82
1. 垃圾收集算法 1.1 标记清除(Mark-Sweep)算法 标记—清除算法是第一种使用和比较完善的垃圾回收算法,后续的收集算法都是基于其设计思路并对其不足进行改进而得到的。 该算法分为“标记”和“清除”两个阶段: 首先标记出所有需要回收的对象,其标记的过程就是判断对象有效性,执行可达性分析的过 ...
分类:
其他好文 时间:
2019-11-11 23:11:19
阅读次数:
148
1、通过 jstat -gc pid interval 查看每次 GC 之后,具体每一个分区的内存使用率变化情况 2、通过jcmd pid VM.flags 就可以查看到jvm相关的设置参数 3、通过“jmap -heap 进程id”查询出 当前进程的JVM 的配置信息,其中就包括垃圾收集器的设置类 ...
分类:
编程语言 时间:
2019-11-05 00:54:09
阅读次数:
90
之前我写了几篇有关Java垃圾收集的文章之后,我收到了很多电子邮件,请求解释 Java堆空间 , Java栈内存 , Java中的内存分配 以及它们之间的区别。 您可能在Java,Java EE书籍和教程中看到很多有关堆和变量内存的参考,但是几乎没有就程序而言完全解释堆和栈的内存分配的。 Java堆 ...
分类:
编程语言 时间:
2019-11-04 11:56:23
阅读次数:
74
(1)DefNew(串行)收集器 Serial(串行)垃圾收集器是最基本、发展历史最悠久的收集器;JDK1.3.1前是HotSpot新生代收集的唯一选择; 特点: (1) 针对新生代采用复制算法,单线程收集器,进行垃圾收集时,必须暂停所有工作线程,直到工作完成。即会:Stop the World ( ...
分类:
其他好文 时间:
2019-11-01 13:13:16
阅读次数:
98
Full GC、Minor GC和Major GC的区别 Minor GC:发生在新生代的垃圾收集动作,因为JAVA对象大部分都具备朝生夕灭的特效,所以Minor GC会比较频繁且回收速度比较快 Major GC/Full GC 指发生在老年代的垃圾回收动作,出现Major经常会出现一次Minor ...
分类:
其他好文 时间:
2019-10-30 21:12:42
阅读次数:
111
JAVAGC垃圾回收机制和常见垃圾回收算法 推荐博客:JVM垃圾回收机制和常见垃圾回收算法 ...
分类:
编程语言 时间:
2019-10-29 23:38:04
阅读次数:
155
1、 简述JVM垃圾回收算法分类 常用的垃圾收集算法 JVM的内存结构包括五大区域:程序计数器、虚拟机栈、本地方法栈、堆区、方法区。其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生、随线程而灭,因此这几个区域的内存分配和回收都具备确定性,就不需要过多考虑回收的问题,因为方法结束或者线程结束时, ...
分类:
其他好文 时间:
2019-10-29 14:10:14
阅读次数:
86
jps java process status jps l 主 类 全 名 jps m 运 行 传 入 主 类 的 jps v 虚 拟 机 参 数 jstat 类 加 载 , 内 存 , 垃 圾 收 集 , jit 编 译 信 息 、 https://docs.oracle.com/javase/8 ...
分类:
其他好文 时间:
2019-10-29 09:52:00
阅读次数:
94
并行和并发 并行(Parallel) :指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。 并发(Concurrent) :指用户线程与垃圾收集线程同时执行(但不一定是并行的,可能会交替执行),用户程序在继续运行。而垃圾收集程序运行在另一个CPU上。 吞吐量(Throughput) 吞吐量 ...
分类:
其他好文 时间:
2019-10-29 09:26:36
阅读次数:
77