linux垃圾回收,垃圾回收算法_Linux编程_Linux公社-Linux系统门户网站

news/2024/5/21 5:25:55/文章来源:https://blog.csdn.net/weixin_39975744/article/details/117349599

垃圾收集算法

标记-清除算法

最基础的收集算法是”标记-清除”(Mark-Sweep)算法,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。标记-清除算法主要有两个不足:一个是效率问题,标记和清除两个过程的效率,另一个是空间问题,标记清除之后会产生大量不连续的内存碎片,空间kongjian碎片太多可能会导致以后在程序运行过程中需要分配较大对象时,无法找到足够的连续内存而不得不提前触发另一次垃圾收集动作,标记-清除算法的执行过程如图:

75df06a5a0417cd2bc135f1ff4399c3c.png

这里写图片描述

复制算法

复制算法(conying)他将内存按容量划分为大小相等的两块,每次只使用其中一块,当这一块的内存用完了,就将还存活着的对象复制到另一块上面,然后把已经使用过的内存一次性清理掉。这样使得每次都对整半个内存进行回收,但是这种算法的代价是将内存缩小了一半,代价太高了。

如图:

9e9a3fe6487fc299ae6809efda25dc5e.png

标记-整理算法

标记-整理算法(Mark-Compact)的标记过程任然与“标记-清除”算法一样,但后续步骤不是直接对可回收对象进行清理,而是让所有存活的对象都像一段移动,然后直接清理掉端边界以外的内存,“标记-整理”算法示意图:

250b61b56d19ff12ae258eb5c7b660fa.png

分代收集算法

一般是把Java堆分为新生代和老年代,这样就可以根据各个年代的特点采用最适合的收集算法。在新生代中每次垃圾收集时都发现大批对象死去,只有少量存活,就选用复制算法,只需要付出少量存活对象的复制成本就可以完成收集。而老年代中因为对象存活率高,没有额外空间对他进行分配担保,就必须使用“标记-清理”和“标记-整理”算法来进行回收。

PS:文章的来源是看完周志明的深入理解Java虚拟机后做的笔记。

0b1331709591d260c1c78e86d0c51c18.png

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

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

相关文章

网站SEO优化是什么(概念解释与SEM的区别)

SEM SEM(搜索引擎营销)基本思想是让用户发现信息,并通过(搜索引擎)搜索点击进入网站/网页进一步了解他所需要的信息。SEM的方法包括搜索引擎优化(SEO)、付费排名、精准广告以及付费收录 SEO SEO三大要素:标题、关键词、描述SEO是指…

php网站怎么找控制器,php控制器的方法在哪

控制器(Controller)的作用通常是在获取模型(Model)中数据并交给视图(View)去显示&#xff0c;那开发中我们应该如何去写呢&#xff1f;1.创建Controller的类文件,我这里文件名为MatchController.class.php(推荐学习&#xff1a;PHP编程从入门到精通)<?php /*** 比赛操作相关…

请你谈谈网站是如何访问的!

1.输入一个域名&#xff0c;回车 2.Windows系统会检查本机的&#xff1a;C:\Windows\System32\drivers\etc\hosts 配置文件下有没有这个域名映射 如果有&#xff0c;直接返回对应的ip地址&#xff0c;在这个地址中&#xff0c;有需要访问的web应用程序&#xff0c;可以直接访…

Scrapy爬取知名网站的图书信息

本文用 Scrapy 爬虫框架爬取专门供爬虫初学者训练用的网站&#xff1a;http://books.toscrape.com/ 打开虚拟环境创建项目文件打开控制台输入workon py3scrapy进入虚拟环境所在盘我的是E盘创建项目文件输入scrapy startproject demo创建的项目文件叫demo查看项目目录下的文件输…

Scrapy爬取知名技术网站文章并保存为Json格式

之前是爬取单个页面的内容&#xff0c;今天对所有文章进行爬取。 所有文章文章的地址&#xff1a;http://blog.jobbole.com/all-posts/ 对所有文章的URL进行提取提取第一页URL用 Request 库对提取的URL交给scrapy下载然后调用自己定义的解析函数提取下一页URL 把封面图下载下来…

Scrapy爬取知名技术网站文章并保存到MySQL数据库

之前的几篇文章都是在讲如何把数据爬下来&#xff0c;今天记录一下把数据爬下来并保存到MySQL数据库。 文章中有讲同步和异步两种方法。 所有文章文章的地址&#xff1a;http://blog.jobbole.com/all-posts/ 对所有文章的URL进行提取提取第一页URL用 Request 库对提取的URL交…

My-Blog搭建过程:如何让一个网站从零到可以上线访问

文章简述 5月13号的时候&#xff0c;上线了自己的个人博客网站&#xff1a;http://blog.hanshuai.xin&#xff0c;随后在平台上发布了一篇关于My-Blog的介绍博客《DockerSpringBootMybatisthymeleaf的Java博客系统开源啦》&#xff0c;有几位朋友在浏览网站之后也有私信问过我&…

收集45个实用的免费LOGO在线制作网站

有人说“即使一把火把可口可乐烧得精光&#xff0c;它也能凭借着它的LOGO东山再起。“当然了&#xff0c;至于有没有人说过&#xff0c;我们无法考证。但是这句话充分说明了一个LOGO所能发挥的作用。 LOGO对对大部分网站来说应该是不可或缺的一部分&#xff0c;对网站的拥有公司…

Windows下搭建Wordpress博客网站

一&#xff1a;安装wamp Windows下的ApacheMysql/MariaDBPerl/PHP/Python&#xff0c;一组常用来搭建动态网站或者服务器的开源软件&#xff0c;本身都是各自独立的程序&#xff0c;但是因为常被放在一起使用&#xff0c;拥有了越来越高的兼容度&#xff0c;共同组成了一个强大…

阿里云+wordpress搭建个人博客网站【小白专用的图文教程】

【声明】 欢迎转载&#xff0c;但请保留文章原始出处→_→ 生命壹号&#xff1a;http://www.cnblogs.com/smyhvae/ 文章来源&#xff1a;http://www.cnblogs.com/smyhvae/p/4965163.html 【正文】 在阿里云上搭建使用个人博客主要分为以下几个步骤&#xff1a; 1、购买阿…

Nodejs学习笔记(七)--- Node.js + Express 构建网站简单示例

目录 前言新建项目、建立数据库以及其它准备工作 新建express ejs 项目&#xff1a;sampleEjs创建数据库修改package.json文件,安装session和mysql模块样式和JQuery文件清理项目冗余文件&#xff0c;并添加监听 规划路由&#xff0c;并新建相关文件实现登录和注册需要的数据访…

推荐几款比较实用的工具,网站

1.盘百度PanDownload 这个云盘工具是免费的&#xff0c;可以进行资源搜索&#xff0c;提速&#xff08;偶尔会抽风&#x1f605;&#xff09; 不要去某站买付费的&#x1f60b; PanDownload下载地址 2.BeJSON 这是一款拥有各种在线工具的网站&#xff0c;推荐它的主要原因是网…

网站优化--图片的预加载与懒加载(上)

1、延迟加载即懒加载&#xff0c;主要目的是作为服务器前端的优化&#xff0c;减少请求数或延迟请求数&#xff0c;在一些图片非常多的网站中非常有用&#xff0c;当图片位置进入到可视区的时候才会被加载&#xff0c;这样对于含有很多 图片的比较长的网页来说&#xff0c;可以…

推荐一个命名变量的神奇网站 CODELF

我们在做项目的时候总是要对一些变量名、类名、函数名之类的东西有一个规范化的命名&#xff0c;但是怎么命名更好呢&#xff0c;这几天无意中翻阅到一个神奇的变量名命名网站 https://unbug.github.io/codelf/ 这个网站神奇之处是可以根据你输入的关键词&#xff0c;给出很多…

为何大量网站不能抓取?爬虫突破封禁的6种常见方法

在互联网上进行自动数据采集&#xff08;抓取&#xff09;这件事和互联网存在的时间差不多一样长。今天大众好像更倾向于用“网络数据采集”&#xff0c;有时会把网络数据采集程序称为网络机器人&#xff08;bots&#xff09;。最常用的方法是写一个自动化程序向网络服务器请求…

网站都变成灰色了,这是怎么实现的?

有些时候我们需要把网站页面变成黑白色或灰色&#xff0c;特别是对于一些需要悼念的日子&#xff0c;以及一些影响力很大的伟人逝世或纪念日的时候&#xff0c;都会让网站的全部网页变成灰色&#xff08;黑白色&#xff09;&#xff0c;以表示我们对逝者或者英雄的缅怀和悼念。…

有些网站打开一半空白_这个宝藏网站,其实我不太舍得分享出来。

文/安哥拉Hello 大家好&#xff0c;这里是工具狂人。今天给大家介绍一个我最近发现的网站——码力全开资源站&#xff0c;网站集合了适合产品经理、设计师和开发者使用的工具&#xff0c;一应俱全&#xff0c;堪称宝藏。这些工具包含&#xff0c;插画素材、图库网站、样机工具、…

企业门户网站java源码_Spring cloud微服务架构前后端分离博客系统,Vue+boot源码分享...

一个基于微服务架构的前后端分离博客系统。前台使用Vue Element , 后端使用spring boot spring cloud mybatis-plus进行开发&#xff0c;使用 Jwt Spring Security做登录验证和权限校验&#xff0c;使用ElasticSearch和Solr作为全文检索服务&#xff0c;使用Github Actions…

pyquery获取不到网页完整源代码_python通过requests和BeautifulSoup获取QQ网站的图片名称...

代码如下&#xff1a;#注意&#xff1a;本电脑环境是python 3.7#下面是导入相应模块import requestsfrom bs4 import BeautifulSoupimport pandas as pd#1、网页请求url"https://www.qq.com/"responserequests.get(url) #对QQ网站就行get请求并将请求结果赋值给respo…

linux宝塔面板lamp、lnmp安装,网站搭建

安装宝塔 Centos安装脚本 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh Ubuntu/Deepin安装脚本 wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo…