【JVM学习笔记】垃圾收集器

小案例:利用图床自动化批量上传图片并获取图片链接 用python爬虫写了一个小脚本,用来自动上传图片到图床,然后返回链接,我们只需直接复制链接就可以。(需要安装Requests库) 因为不同图床需要提交的POST表单不一致,所以在这里我用ImgURL图床做示范,如果大家有需求,可自行修改代码。使用脚本的时候,我们只需把需要上传的图片和这个脚本放在同一个文件夹中,然后运行脚本,稍作等待,看到提示时就可以在脚本运行文件夹中发现一个名为“图片链接地址.txt”的文件,里面就是图片链接啦! 四、图片链接地址.txt(单张图片):... 阅读详情

Serial收集器

最基本,发展最悠久

单线程垃圾收集器

适用于桌面应用

 

ParNew收集器

与Serial收集器的区别是它是多线程的

 

Parallel Scavenge收集器

复制算法(新生代收集器)

多线程收集器

达到可控制的吞吐量;吞吐量:CPU用于运行用户代码的时间与CPU消耗的总时间的比值

吞吐量=(执行用户代码时间)/ (执行用户代码的时间 + 垃圾回收所占用的时间)

 

-XX:MaxGCPuaseMillis 垃圾收集器最大停顿时间

-XX:GCTimeRatio吞吐量(0,100),默认值99

 

CMS收集器

Concurrent Mark Sweep

使用标记-清除算法

用在老年代

工作过程:初始标记、并发标记、重新标记、并发清理

优点:并发收集、低停顿

缺点:占用大量的CPU资源、无法处理浮动垃圾、出现Concurrent Mode Failure、空间碎片

 

并发和并行的区别?

并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行

并发(concurrency):指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行

 

G1收集器

收集器届的大哥

主要是面向服务端应用

集中了前面所说的所有收集器的优势

 

优势:

并行与并发

分代收集

空间整合

可预测的停顿

 

步骤:

初始标记

并发标记

最终标记

筛选回收

 

微信公众平台 - 微信内置浏览器 WeixinJSBridge.invoke(‘xxx‘) API 报错:system:access_denied(常见于微信支付、分享朋友圈/转发好友等功能)解决方案 微信支付提示System:access_denied,调用微信支付返回:system:access_denied为什么,安卓版微信支付偶尔出现system:access_denied,微信公众号开发分享出现system:access_denied,system:access_denied如何解决?微信WeixinJSBridge.invoke(‘xxx‘)API调用后出现报错,微信内部H5WeixinJSBridge.invokesystem:access_denied,使用微信jssdk时报ac 阅读详情

相关推荐

NR RRC协议(2)---RRC连接建立流程

RRC连接建立目的是建立SRB1 RRC连接建立还用于将初始NAS消息从UE传送到网络 RRC连接的初始阶段期间,不激活AS安全性 RRC连接建立由UE侧发起

crg2046的博客 1957

Jvm和Gc 最全的总结

Jvm 1.Java内存区域与内存溢出异常 1.1运行时数据区域 1.1.1程序计数器 # 内存空间小,线程私有。 * 字节码解释器工作是就是通过改变这个计数器的值来选取下一条需要执行指令的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖计数器完成 如果线程正在执行一个 Java 方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址; 如果正在执行的是 Native 方法,这个计数器的值则为 (Undefined)。此内存区域是唯一一个在 Java 虚拟机规范中没

privateBX的博客 707

麒麟V10(arm)配置本地离线yum源

麒麟V10(arm)配置本地离线yum源

myfm2java的博客 7892

JVM学习笔记_垃圾收集器重要参数

目录-XX:+UseParallelGC-XX:+UseSerialGC-XX:+UseParNewGC-XX:+UseConcMarkSweepGC-XX:PretenureSizeThreshold-XX:MaxTenuringThreshold-XX:TargetSurvivorRatio 垃圾收集器有串行收集器,比如 Serial收集器+Serial Old收集器,Parallel Scavenge+Parallel Old收集器等等。该如何让这些不同的垃圾收集器组合触发使用呢? -XX:+UseP

dcj199411的专栏 3052

JS+H5打字练习器

实现功能 1.导入.TXT文件到打字练习内容(部分浏览器可能出于安全问题限制了这一步操作) 2.输入文本到打字练习内(弹出输入框,将要练习的内容输入至输入框) 3. 开始练习,并根据正误在打字练习内容文本上修改颜色(某个字正确显示绿色,某个字错误,显示红色,某个字没有打显示灰色) 4.开始练习、结束练习,全部输入完成后自动结束练习,也可提前手动结束练习,结束练习后弹窗用显示时和正确率。(区别在于一个全部输入完成且全部正确,一个提前结束无其他条件) 效果图 分析 HTML 结构解析 根元素:<!DO

w11111xxxl的博客 1417

Lmbench测试集 --- 延迟测试工具lat_mem_rd

lmbench测试集简介 以及 lat_mem_rd延迟测试工具: 如何测试、测试结果、源码分析

MonologueYY的博客 1万+

JVM学习笔记——常见的垃圾收集器

上图为虚拟机包含的所有垃圾收集器。 新生代: Serial:单线程,新生代 串行收集器是最古老,最稳定以及效率高的收集器,可能会产生较长的停顿,只使用一个线程去回收 新生代、老年代使用串行回收 新生代复制算法 老年代标记-压缩 -XX:+UseSerialGC ParNew: 多线程,新生代 Serial收集器新生代的并行版本,在新生代回收时使用复制算法,多线程,需要多核支持 -XX:...

程铭程铭你快成名的博客 2891

【一】PCIe基础知识

Linux PCIe基础知识

他山之石 可以攻玉 4万+

JVM学习笔记四:各种垃圾收集器的理解

参考资料: 《深入理解Java虚拟机——JVM高级特性与最佳实践》-周志明 各种垃圾收集器的理解 所谓的引用计数法,复制算法,标记清楚,标记整理算法都是垃圾收集的相关的概念,垃圾收集器则是对垃圾收集算法的具体实现 Serial收集器 简单高效的新生代收集器,现仍用于Client模式下的垃圾收集。它是单线程的收集器(顾名思义串行的),虽然它在进行垃圾收集时会暂停其他用户线程,但是在用户的Client端,一般应用程序的虚拟机不会很大,所以使用serial收集器足够使用了,Client不会感觉到明显的卡顿。

qq_31314141的博客 998

openbmc 支持mctp over pcie(二)

本文介绍了在OpenBMC系统中实现MCTP over PCIe的社区方案,主要针对AMD CPU和Intel CPU平台。方案基于社区开发的mctpd应用层和内核驱动,通过修改设备树(dts)配置内存区域,并编译Linux内核模块。验证时可通过查看/proc/net/protocols确认MCTP协议支持,使用ip addr命令检查mctppci0网络接口状态。相关代码和文档参考了AspeedTech和CodeConstruct的GitHub仓库。该方案为BMC作为MCTP端点提供了标准化实现方法。

wit_yuan的专栏 379

【Unity实战篇 】| Unity实现 文本框可以自适应大小,到达最大宽度之后再缩小字体

Unity实现 Text文本框可以自适应大小,到达最大宽度之后再缩小字体 需求:在文本框可以自适应大小拉伸的前提下,增加一个最大限制宽度,使其到达最大宽度后 再启用 Best Fit 实现自适应改变文字大小以适应文本框的大小。 在Unity中经常会用到文本组件的自适应大小功能,一般使用HorizontalLayoutGroup和ContentSizeFitter组件配合即可实现文本自适应的效果。

努力前行,总会成为自己心中的那道光 3万+

HotSpot Jvm垃圾收集器学习笔记

一. 垃圾回收算法 1. 标记清除; 2. 复制; 3. 标记整理; 二. 垃圾收集器 1. Serial: 单线程,串行,新生代复制算法,老年代标记整理算法; 2. SerialOld: serial的老年代版本,标记整理,作为cms的后备; 3. PerNew: serial的多线程版本,也是串行,新生代复制算法,老年代标记整理算法; 4. Parallel Scavenge:...

weixin_41564440的博客 169

自动驾驶---Planning模块详细介绍(以Apollo为例)

主要介绍高速场景下Planning模块,至于低速的泊车场景对比高速场景或者城区场景有比较大的差距(后面也会介绍泊车场景),本篇Planning介绍主要包括三大子模块Routing,Behavioural Planning以及Motion Planining,并且对比较重要的Decider和Optimizer都做了通俗化的说明供大家思考,以便于后续理解更深入的内容,后面有时间会再开一些篇幅对这些模块进行更加深入的讲解。

智能汽车人的博客 2089

JVM学习笔记(五)垃圾收集器

Java堆内存被划分为新生代和年老代两部分,新生代主要使用复制和标记-清除垃圾回收算法,年老代主要使用标记-整理垃圾回收算法,因此java虚拟中针对新生代和年老代分别提供了多种不同的垃圾收集器,JDK1.6中Sun HotSpot虚拟机的垃圾收集器如下: 图中如果两个垃圾收集器直接有连线,则表明这两个垃圾收集器可以搭配使用。虚拟机所处的区域,则表示它是属于新生代收集器还是老年代收集器。1、Seria

淡淡的倔强的博客 1889

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

JVM学习笔记24 CMS 垃圾收集器

bilibili-JVM学习笔记24 CMS 垃圾收集器 The Java Virtual Machine Specification - Java SE 8 Edition JVM学习笔记18 字节码知识总结 JVM学习笔记19 JVM内存空间 JVM学习笔记20 jvisualvm JVM学习笔记21 JVM学习笔记22 垃圾回收理论知识 JVM学习笔记23内存泄漏 和 VM参数设置 基于 java 1.8.0 安全点与安全区域详解 83 Concurrent Mark Sweep --> CMS

晨猫 285

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

JVM学习笔记_JVM垃圾收集器

导航对象创建指针碰撞空闲列表空间分配并发性问题对象内存布局 对象创建 JVM遇到new指令时,检查符号引用代表的类是否已经被加载,解析和初始化过。没有的话,需要执行类加载的过程。 加载通过后,为新生对象分配内存。对象所需的内存大小,在类加载完成时候便可以完全确定(如何确定参考对象的内存布局)。 为对象分配空间其实就是把一块确定大小的内存从JVM堆中划分出来。这个过程涉及到两个重要的概念:指针碰撞 和 空闲列表。 指针碰撞 假设堆内存是完整的,用过得内存都放在一边,空闲得放在另一边,中间放着一个指针作为分界点

dcj199411的专栏 810

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

JVM学习笔记——垃圾收集器

title: JVM学习笔记——垃圾收集器 date: 2018/9/4 17:09:31 description: 最近开始着手JVM的学习,在这里把自己学习过程中的笔记分享出来,希望能帮到一些小伙伴,同时也是对自己的学习的一个梳理。 垃圾收集器 垃圾收集器内容颇多,但算法原理都是基于垃圾收集算法,故这里只简单介绍一下各收集器的特点。 HopSpot中的收集器群 两个虚拟机之间的连线表示它们...

weixin_30407099的博客 152

jvm学习笔记2:垃圾收集器

写在前面 本文只要GC的几个关键性能指标开始,详细介绍目前主流的几个垃圾收集器的原理。 1.两个GC关键指标 1.1 吞吐量 吞吐量=程序运行时间/(程序运行时间+垃圾回收时间),越高越好。 1.2 暂停时间 一个时间段内应用程序线程让与GC线程执行而完全暂停,越小越好。 1.3 两者关系 ”高吞吐量”和”低暂停时间”是一对相互竞争的目标。应用线程在GC期间必须停止(或者仅在GC的特定阶段,这取决于所使用的算法),然而这会增加额外的线程调度开销(直接开销是上下文切换,间接开销是因为缓存的影响)。 加上JVM

赐我梦境的博客 444

jvm 10种垃圾收集器学习笔记

1.怎样定位垃圾(怎么判断对象已死)? (1)引用计数法(reference counting) 在对象中添加一个引用计数器,每当有一个地方引用他时,计数器就加一,当引用失效时,计数器的值就减1,任何时刻计数器为零的对象就是不可能再被使用的(存在弊端,当两个对象互相引用对方的时候,就会导致引用计数器一直都不为0,使得垃圾无法再进行回收) (2)可达性分析算法(Reachability Analysis) 通过一系列称为(GC Roots)的跟对象作为起始节点集,从这些节点开始,根据引用关系向下搜索.

qq_38415867的博客 553

JVM学习笔记21-垃圾收集器

如果说收集算法是垃圾回收的方法论,那么垃圾收集器是内存回收的具体实现 主要的垃圾收集器有以下几种: Serial收集器 ParNew收集器 Parallel Scavenge收集器 Serial Old收集器 Parallel Old收集器 CMS收集器 G1收集器 ...

lu322313的博客 264

JVM学习笔记03-垃圾收集器及GC参数

JVM内存模型分析03篇-垃圾收集器及GC参数前言垃圾收集器概述一、垃圾收集器分类:串行收集器:Serial收集器(单线程、 复制算法)并行收集器:ParNew 垃圾收集器( (Serial+多线程) 前言 有哪些垃圾收集器? 垃圾收集器的GC参数是什么? JVM默认使用哪些垃圾收集器? 什么是JVM的Client模式?什么是Server模式? 请带着以上疑问耐心阅读全文。 垃圾收集器概述 一、垃圾收集器分类: Java 堆内存被划分为新生代和年老代两部分,新生代主要使用复制和标记-清除垃圾回收 算法 ;年

mawei982133的博客 379

JVM学习笔记2.5:垃圾收集器

目录垃圾收集器评估GC的性能指标性能指标:吞吐量性能指标:暂停时间垃圾回收器垃圾回收器发展史7种经典的垃圾收集器与垃圾分代之间的关系垃圾收集器的组合关系Serial/Serial Old回收器:串行回收ParNew收集器:并行回收Parallel Scavenge/Parallel Old收集器:吞吐量优先CMS收集器:低延迟Garbage First(G1)收集器:区域化分代式3.6 低延迟垃圾收集器3.6.1 Shenandoah收集器3.6.2 ZGC收集器 垃圾收集器 评估GC的性能指标 吞吐量:

weixin_45907832的博客 683

JVM学习笔记(二)——垃圾收集器

垃圾收集器如何判别垃圾?(一) 引用计数(二) 可达性分析垃圾回收算法——如何回收垃圾?(一) 复制(Copying)(二) 标记-清除(Mark-Sweep)(三) 标记-整理(Mark-Compact)分代介绍——年轻代、老年代基本介绍年轻代老年代常见的垃圾收集器(一) Serial收集器(二) ParNew收集器(三) Parallel Scavenge收集器(四) Serial Old收集器(五) Parallel Old收集器(六) CMS收集器(七) G1收集器——Garbage First 如

孙志南的博客 703

JVM学习笔记-垃圾收集器

之前我们了解了垃圾回收算法,现在一起来看看垃圾回收的具体实现:垃圾收集器。Java虚拟机规范对于垃圾收集器应该如何实现没有具体的规定,因此不同的厂商、不同版本的虚拟机所提供的垃圾收集器有可能有较大的区别。以下列出的是基于JDK 1.7 Update 14之后的HotSpot虚拟机(在这个版本中正式提供了商用的G1收集器): 上图展示了7种不同分代的收集器,如果两个收集器中存在连线,就说明它们之间...

sunjian1122的博客 204

jvm相关,垃圾收集算法,垃圾收集器,jvm调优--学习笔记

垃圾收集算法,垃圾收集器

鹏的博客 488

JVM学习笔记(二):JVM GC机制与垃圾收集器

引子 在上一篇文章《JVM学习笔记(一):Java内存区域》中,我总结了一下几大Java内存区域。接下来,我总结一下JVM的GC机制,以及垃圾收集算法 和 垃圾收集器。 内存回收区域 谈起JVM的GC机制,我们首先需要关注的就是:回收哪儿的内存?如何判断哪些内存需要被回收?怎么回收?下面就一一解答这些问题。 在上一篇文章中提到的 程序计数器、虚拟机栈、本地方法栈 三个“线程私有”的区域,随...

蛋壳城堡 750
上一篇: 【JVM学习笔记】内存分配
下一篇: 【JVM学习笔记】虚拟机工具及性能监测命令
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值