Java垃圾回收之新生代垃圾收集器
问题:什么是Stop-the-World?
1、JVM由于要执行GC而停止了应用程序的执行
2、任何一种GC算法中都会发生
3、多数GC优化通过减少Stop-the-world发生的时间来提高程序的性能(高吞吐,低停顿的效果)
问题:什么是垃圾收集器中的Safepoint ?
----》1、分析过程中对象引用关系不会发生变化的点
2、产生Safepoint的地方:地方调用,循环跳转,异常跳转
3、安全点数量的适中(太少,让收集器等待太久,少多,消耗资源)
问题:请问JVM的运行模式?
----》
1、Server模式,启动慢,重量级虚拟机
2、Client模式,启动快,轻量级虚拟机
问题;怎样查询当前虚拟机的运行模式是什么呢?
----》 java -version
C:\Users\Administrator>java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
问题:垃圾收集器之间的联系?
----》不同公司会做不同版本的虚拟机,去针对不同的场景。下图是垃圾收集器之间的联系图。
如果有连线的,就说明可以配合使用。
Serial收集器(-XX: + UseSerialGC , 复制算法,历史最久的算法)
---》
1、单线程收集,进行垃圾收集时,必须暂停所有工作线程(不用担心,停顿时间最多是一百多毫秒,如果不是频繁发生,完全可以接受)
2、简单高效、Client模式下默认的年轻代收集器
ParNew收集器(-XX: + UseParNewGC , 复制算法,在server模式下,ParNew收集器是非常重要的)
---》
1、多线程收集,其余的行为,特点和Serial 收集器一样
2、单核执行效率不如Serial ,在多核下执行才有优势
Parallel Scavenge收集器 拍了佬猪 死敢喔猪(-XX: +UseParallelGC,复制算法,和ParNew差不多,多线程,适合后端运行,不需要太多交互)
吞吐量 = 运行用户代码时间 / (运行用户代码时间+垃圾收集时间)
1、比起关注用户线程停顿时间,更关注系统的吞吐量
2、在多核下执行才有优势,Server模式下默认的年轻代收集器
使用Parllel Scvenge收集器配合自适应策略,以及在启动策略中加入 -XX:+UseAdaptiveSizePolicy
会把内存调优任务交给虚拟机完成
Java垃圾回收之新生代垃圾收集器的更多相关文章
- JVM(十),垃圾回收之新生代垃圾收集器
十.垃圾回收之新生代垃圾收集器 1.JVM的运行模式 2.Serial收集器(复制算法-单线程-Client模式) 2.ParNew收集器(复制算法-多线程-Client模式) 3.Parallel ...
- java垃圾回收算法和垃圾收集器
垃圾收集算法.垃圾回收算法.java垃圾收集器 目录1. 垃圾收集算法1)引用计数法2)根搜索法2. 垃圾回收算法1)复制算法2)标记-清除算法3)标记-整理算法4)分代收集算法3. java垃圾收集 ...
- 3-JVM垃圾回收算法和垃圾收集器
垃圾回收算法和垃圾收集器 1.什么是垃圾回收 对于内存当中无用的对象进行回收,如何去判断一个对象是不是无用的对象. 引用计数法: 每个对象中都会存储一个引用计数,每增加一个引用就+1,消失一个引用就- ...
- Java虚拟机四:垃圾回收算法与垃圾收集器
在Java运行时的几个数据区域中,程序计数器,虚拟机栈,本地方法栈3个区域随着线程而生,随线程而灭,因此这几个区域的内存分配和回收具有确定性,不需要过多考虑垃圾回收问题,因为方法结束或者线程结束时,内 ...
- 《深入理解java虚拟机》笔记(5)垃圾回收算法及垃圾收集器
一.标记-清除算法 算法:分为标记和清除两个阶段,首先标记出所有需要回收的对象,再对标记对象进行回收. 不足之处:效率不高,会产生大量不连续内存碎片,导致下次分配较大内存时,若内存不足不得不触发垃圾回 ...
- JVM垃圾回收算法 及 垃圾收集器
摘自<深入理解Java虚拟机> 一.什么是: GC算法是 方法论,那么垃圾收集器就是具体的 实现. 二.四种 垃圾回收算法 1.标记-清除算法:最基础的收集算法:不足有两点:1标记和清除两 ...
- JVM虚拟机-垃圾回收机制与垃圾收集器概述
目录 前言 什么是垃圾回收 垃圾回收的区域 垃圾回收机制 流程 怎么判断对象已经死亡 引用计数法 可达性分析算法 不可达的对象并非一定会回收 关于引用 强引用(StrongReference) 软引用 ...
- 6.GC垃圾回收算法和垃圾收集器的关系
JAVAGC垃圾回收机制和常见垃圾回收算法 推荐博客:JVM垃圾回收机制和常见垃圾回收算法 JVM的内存结构.垃圾回收算法
- [JVM-3]Java垃圾回收(GC)机制和垃圾收集器选择
哪些内存需要回收? 1.引用计数法 这个算法的实现是,给对象中添加一个引用计数器,每当一个地方引用这个对象时,计数器值+1:当引用失效时,计数器值-1.任何时刻计数值为0的对象就是不可能再被使用的.这 ...
随机推荐
- 3.1-3.5 分布式部署hadoop2.x的准备和配置
一.环境 192.168.1.130 master 192.168.1.131 slave1 192.168.1.132 slave2 所有主机: 1.关闭防火墙.selinu ...
- Ubuntu16.04 开机显示The system is running in low-graphics mode
1. 在"The system is running in low-graphics mode"界面,直接按 ctrl+alt+F1,会进入一个命令输入的模式 2. 输入用户名密码 ...
- DateTime.Now.ToString("yyyy/MM/dd") 输出的结果是 2006-03-16(转)
今天我在使用 DateTime.Now.ToString("yyyy/MM/dd") 输出的结果是 2006-03-16 而不是我想要的 2006/03/16,都快把我郁闷的不行了 ...
- Gradle系列之三 Gradle概述以及生命周期
1 Gradle是一种编程框架 gradle主要由以下三部分组成 1 groovy核心语法 2 build script block 3 gradle api 注:本章所有的代码都在 https:// ...
- 3dmath复习随笔
左手坐标系与右手坐标系 旋转正方向,下图是右手系,左手系同理 向量 点乘: 叉乘: dx是左手系,使用行向量,vABC,乘矩阵用左乘 opengl是右手系,使用列向量,CBAv,乘矩阵用右乘 u3d貌 ...
- 求导四则运算以及三角函数求导 Derivative formulas
对特定函数的求导. 1:sin(x) 对其进行求斜率.带入公式得:[ sin(x+Δx)- sin(x)]/Δx = [ sinx*cosΔx + cosx*sinΔx -sin x ]/ Δx = ...
- Rsync 实现远程同步
介绍 rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部 ...
- 为什么站点使用https加密之后还能看到相关数据
为什么站点使用了https加密之后,还是能够用firebug之类的软件查看到提交到的信息,并且还是明文的?例如说这样: 这是因为:https(ssl)加密是发生在应用层与传输层之间,所以在传输层看到的 ...
- 正则表达式test报错 is not a function
var reg = "/^1[34578]\d{9}$/"; //错误格式,这是一个字符串 var reg2 = /^1[34578]\d{9}$/; //正确格式 reg .te ...
- python_10(模块与包)
第1章 模块 1.1 模块的种类 1.2 定义 1.3 作用 1.4 导入及使用 1.4.1 import 1.4.2 测试一: 1.4.3 测试二: 1.4.4 测试三: 1.4.5 小结 1.4. ...