查看JVM使用的默认的垃圾收集器
一、查看步骤
cmd执行命令:
java -XX:+PrintCommandLineFlags -version
输出如下(举例):

针对上述的-XX:UseParallelGC,这边我们引用《深入理解Java虚拟机:JVM高级特性与最佳实践》的介绍:

也就是说,打开此开关,使用的垃圾收集器是:新生代(Parallel Scavenge),老年代(Ps MarkSweep)组合。
二、验证下,是不是那么回事吧
我用ide起了一个程序,然后在main中进行长时间睡眠。启动时,设置其VM 参数如下:

然后用Jconsole连接该程序,切换到VM概要这个tab,注意下图红圈圈出来的地方:

结合第一步中的资料,很容易验证,使用-XX:UseParallelGC的情况下,使用的垃圾收集器为:新生代(Ps Scanvenge),老年代(Ps MarkSweep,与Serial Old)。
三、Ps Scanvenge的简要介绍



这边附上我的简单理解:该垃圾收集器适用于新生代,采用标记复制算法、多线程模型进行垃圾收集。
与其他新生代垃圾收集器的差别是,它更关注于吞吐量,而不是停顿时间。一般来说,需要与用户交互的
程序更关注较短的停顿时间,而如果是需要达成尽量大的吞吐量的话,则该处理器会更加适合。
其通过-XX:UseAdaptiveSizePolicy参数,可以开启其自动调节功能,适用于对垃圾收集器的调优不太了解的
用户。
四、Serial Old的简要介绍

我的理解:和其他老年代垃圾处理器一样,都是使用的标记整理算法,(毕竟没有靠山可以担保,没法复制,只能自己整理了,哎),
采用单线程处理模型。
五、Serial Old和Ps MarkSweep的区别

如上图所示,也说了,在实际中,(正如第二节的截图所示),实际应用中,大多使用的就是Ps MarkSweep。
Ps MarkSweep是以Serial Old为模板设计的,按照我们程序员的说法,估计是拷贝过来,改吧改吧出来的。
所以差不太多。
查看JVM使用的默认的垃圾收集器的更多相关文章
- java虚拟机学习-JVM内存管理:深入垃圾收集器与内存分配策略(4)
Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来. 概述: 说起垃圾收集(Garbage Collection,下文简称GC),大部分人都把这项 ...
- JVM性能优化系列-(2) 垃圾收集器与内存分配策略
2. 垃圾收集器与内存分配策略 垃圾收集(Garbage Collection, GC)是JVM实现里非常重要的一环,JVM成熟的内存动态分配与回收技术使Java(当然还有其他运行在JVM上的语言,如 ...
- 查看jdk使用的是什么垃圾收集器
一.方法一 打印虚拟机所有参数 [root@localhost ~]# java -XX:+PrintFlagsFinal -version | grep : uintx InitialHeap ...
- JVM 的GC算法和垃圾收集器
1.标记清除算法 黑色部分代表可回收对象,灰色部分代表存活对象,绿色部分代表未使用的.最基础的收集算法就是标记清除算法如同他名字一样,算法分为"标记"和"清除" ...
- 【JVM学习笔记二】垃圾收集器与内存分配策略
1. 概述 1) GC的历史比Java久远 2) GC需要完成的三件事: | 哪些内存需要回收 | 什么时候回收 | 如何回收 3) Java内存运行时区域各个部分: | Java虚拟机栈.计数器.本 ...
- JVM学习笔记三:垃圾收集器与内存分配策略
内存回收与分配重点关注的是堆内存和方法区内存(程序计数器占用小,虚拟机栈和本地方法栈随线程有相同的生命周期). 一.判断对象是否存活? 1. 引用计数算法 优势:实现简单,效率高. 致命缺陷:无法解决 ...
- JVM学习笔记三:垃圾收集器及内存管理策略
垃圾收集器 上文说到了垃圾收集算法,这次我们聊一下HotSpot的具体垃圾收集器的实现,以JDK1.7为例,其包含的可选垃圾收集器如下图: 不同收集器之间的连线,代表它们可以搭配使用,收集器所属的区域 ...
- jvm系列(三):GC算法 垃圾收集器
原文出处:纯洁的微笑 这篇文件将给大家介绍GC都有哪几种算法,以及JVM都有那些垃圾回收器,它们的工作原理. 概述 垃圾收集 Garbage Collection 通常被称为"GC" ...
- Spark(八)JVM调优以及GC垃圾收集器
一JVM结构 1 Java内存结构 JVM内存结构主要有三大块:堆内存.方法区和栈. 堆内存是JVM中最大的一块由年轻代和老年代组成,而年轻代内存又被分成三部分,Eden空间.From Survivo ...
随机推荐
- 【Java集合的详细研究1】Collections类常用方法总结
1.sort(Collection)方法的使用(含义:对集合进行排序). 例:对已知集合c进行排序? public class Practice { public static void main(S ...
- thinkphp中的类库与引用import引入机制
ThinkPHP的类库包括基类库和应用类库 控制器类 模块名+Action 例如 UserAction.InfoAction 模型类 模型名+Model 例如 UserModel.InfoModel ...
- CentOS 7 64位更换内核安装锐速破解版
1.更新内核 rpm -ivh http://soft.91yun.org/ISO/Linux/CentOS/kernel/kernel-3.10.0-229.1.2.el7.x86_64.rpm - ...
- ASP.NET程序也能像WinForm程序一样运行[转载]
阅读目录 开始 操作方式 支持的ASP.NET程序类别 它也是个HTTP服务器 支持远程机器访问 不受限于Windows防火墙 尊重每个人的操作习惯 内置多标签浏览器支持 启动参数及配置文件 支持 . ...
- 点击除元素以外的任意地方隐藏元素js
比如想实现点击列表弹出筛选器,点击其他任意地方关闭筛选器,如图 该筛选器class名 $(document).click(function () { $(".subMenu").h ...
- Java实习生面试题整理
一.数据类型 包装类型 八个基本类型: boolean/1 byte/8 char/16 short/16 int/32 float/32 long/64 double/64 基本类型都有对应的包装类 ...
- mongodb:修改oplog.rs 的大小size
其内容字段说明: ts:操作日志的timestamp t: 未知? h:操作唯一随机值 v:oplog.rs的版本 op:操作类型: i:insert操作 u:update操作 d:delete操作 ...
- scala中Map和Set
scala中Set包含可变set和不可变Set,set的子类HashSet,各有一个扩展了可变和不可变的set特质. 可变set import scala.collection.mutable.Se ...
- 五步整理你的css文件
鉴于实在无法忍受那种写一句就换一行的css写法,有个项目中的一个css文件竟然高达6000多行,看着实在蛋疼,无实今天下定决心整理一下,在DW里可以用正则很好的进行替换,步骤如下: 一:\r => ...
- Java实现快速批量移动文件
文件移动是计算机资源管理常用的一个操作,这在操作系统中可以通过文件的剪切与复制或鼠标拖动来实现.但是在Java文件的编程实现中,大多是通过复制文件到目的地,再删除所有文件来实现的.这对于小文件来说看不 ...