gc 堆外_GC解释:堆

gc 堆外

世代垃圾收集器

JVM堆分为两个不同的世代。 一种称为“年轻”,第二种称为“老”(有时称为终身制)。 年轻一代又分为两个主要的逻辑部分:伊甸园和幸存者空间。 垃圾收集人员还使用了虚拟空间供年轻人和老年人使用,以调整其他区域的大小 ,主要是为了实现不同的GC目标。

弱代假设

为什么将堆分为年轻一代和老一代? 这是因为通常会在较短的时间内创建并使用许多对象。 在GC理论中,这种观察称为弱代假说。 想象一下仅在循环内部创建和使用的某些对象-假设它们不会被缩放 ,则每次迭代都会丢弃先前创建的对象并创建新的对象。

对象生命周期

物体从年轻一代的伊甸园开始旅程。 当年轻一代填满时,将执行所谓的次要GC :停止所有应用程序线程(停止世界暂停),丢弃不再使用的对象,并将来自伊甸园的所有其他对象移动到第一个Survivor空间(S0)。 下次执行次要GC时,对象将从S0移至第二个Survivor空间(S1)。 来自伊甸园的所有活动物体也都进入S1。 请注意,这导致幸存者空间中不同的老化对象–我们有来自伊甸园的对象和已经存在于幸存者空间中的对象。 次要GC的下一次迭代会将对象从S1移回S0,因此Survivor空间会切换每个GC。 为什么我们有两个幸存者空间,为什么我们要切换它们? 这非常简单–当对象达到一定的年龄阈值时,它就会升格为“老一代”。 这导致幸存者空间碎片化,可以通过将所有对象从S0移到S1并移回每个次要GC来轻松消除。

最终,当旧一代填满时,将对旧一代执行大型GC ,以清理并压缩该空间。 在重大GC期间是否以及如何发生世界停顿取决于所使用的特定GC算法。

除了Minor和Major GC外,还有一个Full GC ,它用于清理整个堆-青年(由Minor GC)和旧(终身)(Major GC)世代。 因为完全GC包括次要GC,所以无论使用哪种GC算法,都会导致世界停顿。

摘要

将堆分为两个区域有两个主要优点。 首先,仅处理堆的某些部分总是更快(停止世界的停顿花费更少)。 其次,在次要GC中,来自Eden的所有对象都将被移动或丢弃,这自动意味着堆的这一部分已被压缩

翻译自: https://www.javacodegeeks.com/2017/09/gc-explained-heap.html

gc 堆外

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334659.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

predicate 列存储索引扫描_ColumnStore index (列存储索引)解析

简介首先介紹列存储的概念: 传统的数据库存储是行存储。对于SQL Server来说,每个page是8K;往page里面塞数据,假设该表每条数据长度是500字节,那么这个page 先塞第一条数据,然后再塞第二条数据,大…

数据传输协议汇总

文章目录一、FTP(File Transfer Protocol 文件传输协议)(一)FTP 通讯端口(二)FTP 支持两种连接模式(三)缺点(四)FTP 命令(五)FTP 响应码(六&#…

得力科学计算机怎么求余,山商“郭叔”:妙招讲高数 考研路上得力导师

山东工商学院数学与信息科学学院教授郭林大众网海报新闻记者 屈晨晨 烟台报道“郭老师人特别和蔼,能够和学生们打成一片,不仅讲课风趣,同时也给予了我们很多帮助,私底下我们都喊他郭叔。”这是山东工商学院很多毕业生对郭老师的评…

如何打开笔记本电脑的摄像头_Win8系统笔记本电脑摄像头无法使用的解决办法...

Win8系统电脑摄像头不能用怎么办?使用Win8系统笔记本电脑的用户反映,电脑摄像头无法使用了,这是怎么回事呢?如何解决这个问题?请看下文。解决方法:1、打开计算机中的“控制面板”,如图所示&…

浅析文件传输协议 (ftp) 的工作原理

起初,FTP并不是应用于IP网络上的协议,而是ARPANEt网络中计算机间的文件传输协议, ARPANET是美国国防部组建的老网络,于1960-1980年使用。在那时, FTP的主要功能是在主机间高速可靠地传输文件。目前FTP仍然保持其可靠性…

io流,装饰者模式_流与装饰器

io流,装饰者模式几年前, Streams API随lambda表达式一起在Java 8中引入。 作为一名训练有素的Java专家,我尝试在我的一些项目中使用此新功能,例如here和here 。 我真的不喜欢它,然后又回到了好的老房子里。 此外,我创建…

海湾汉字编码表全部_汉字编码简明对照表

汉字编码简明对照表说明:1、下列汉字取自国标(GB 2312-80)中的分级与排列内容;包含所有的第一级汉字和第二级汉字中的常用部分。2、第一级汉字(16—55区的汉字)以拼音字母为序进行排列,同音字以笔形顺序横、竖、撇、捺、折为序,起…

现代计算机教室布置图片,高中教室布置设计图

A:买几盆花要容易活的比如仙人球就不错还有买几张白纸布置一下学习园地在上面贴些作文*等可以*出不错的氛围办个比较好的黑板报,如果有兴趣可以做一些墙报。在教室的前面可以贴一些学有些教室布置是布置了,但很不理想:有的贴挂得五…

vb.net 同时给多个属性赋值_Python尚学堂高淇|1721时间表示unix时间点毫秒微秒time模块浮点数自动转换强制转换增强赋值运算符...

017浮点数-自动转换-强制转换-增强赋值运算符浮点数称为float用a*b^10形式表示的科学计数法,比如:3.14,314E-2或者314e-2这些数字在内存当中也是按照科学计数法存储、>>>float(3)3>>>314E-23.14>>>float(“3.14”)3.14>>>int(3…

计算机键盘复制键是哪个,键盘按什么键复制粘贴_键盘上复制粘贴快捷键是哪个键-win7之家...

使用电脑的时候经常会需要使用到复制粘贴功能,许多用户可能会习惯使用右键来复制粘贴,其实这样有点麻烦,比较简单的就是使用快捷键来操作,但是有部分用户还不知道键盘按什么键复制粘贴,如果你也有一样需求的话&#xf…

junit5和junit4_JUnit 5 –基础

junit5和junit4JUnit 5是适用于Java的下一代单元测试框架,具有许多有趣的功能,包括嵌套测试,参数化测试,新的扩展API或Java 8支持。 本文展示了JUnit 5的基本概念,包括测试生命周期,参数注入和声明&#x…

我的世界java无法安装包_手把手教你搭建java环境

前文由于一些历史原因,开发java程序需要技术人员自行搭建环境,而搭建环境对于新手来说并不友好,不像其他语言那般方便,现如今,为帮助想入门java却无法顺利搭建的同学,编写该教程,如果觉得本文有用,请添加关注,更多java教程,后续更新~第一步 下载JDK可自行前往Oracle官网下载指定…

FTP协议安全分析

文章目录前 言第一章 FTP协议一、协议简介二、数据表示(一)文件类型(二)格式控制(三)结构(四)传输方式三、FTP命令四、FTP应答五、连接管理第二章 安全隐患一、FTP服务器软件漏洞二、…

vs 2019 社区版许可证过期_Switch版《最终幻想12:黄道时代》对比PS4版 就没差

2017年7月发布的“最终幻想12”重制版《最终幻想12:黄道时代》登陆PS4平台,4月30日这款经典游戏还将登陆Xbox One和Switch平台,都将支持60帧运行。那么游戏在Switch这款掌机上的表现到底如何呢?油管频道Direct-Feed Games就为大家…

四川大学金融转计算机,[请教]川大和西财哪个金融系好?!

西郊网友们学学:看到别人学校比自己母校强心里不舒服怎么办?大洋之岸(1qaz2wsx33edc)其实这里很多人可能都有过这样的体验:当其它学校获得成绩的时候,当其它学校比自己母校进步更快的时候,心里免不了有点酸溜溜的感觉&…

MacBook/MacOS/Mac OS 查看进程/端口信息的相关命令

文章目录使用命令 lsof 查看某个端口的使用情况使用命令 netstat 查看某个端口的使用情况使用命令 ps 查看指定进程的信息(一)命令:ps auwx | grep sshd(二)命令:ps -ef | grep ssh(三&#xff…

mfc 弹簧_弹簧和线程:异步

mfc 弹簧以前,我们开始使用spring和TaskExecutor ,因此我们对如何在spring应用程序中使用线程更加熟悉。 但是,使用任务执行程序可能比较麻烦,尤其是当我们需要执行简单的操作时。 Spring的异步方法可以解决。 您不必为可运行对…

g30u盘启动 中科曙光1620_I620-G30

请选择国家/地区Afghanistan (93)Albania (355)Algeria (213)Andorra (376)Angola (244)Antigua and Barbuda (1268)Argentina (54)Armenia (374)Australia (61)Austria (43)Azerbaijan (994)Bahamas (1242)Bahrain (973)Bangladesh (880)Belarus (375)Belgium (32)Belize (501…

局域网限速软件_8款Windows实用软件推荐,纯干货,总有一款是你必备的

开学后,有些小伙伴得走进大学校门,有些小伙伴走向公司大门,不管你做出了哪种选择,最终都会走向社会,走向岗位。我已经毕业走向社会近10年了,珍藏了一些小视频,呃说错了,是珍藏了一些…

MySQL 插入数据时,中文乱码问题的解决

当向 MySQL 数据库插入一条带有中文的数据如下: insert into employee values(null,张三,female,1995-10-08,2015-11-12,Sales,2000,是个好员工!); 出现乱码时,可以使用语句 show variables like character%; 来查看当前数据库的字符编码集…