当前位置: 首页 > wzjs >正文

顺德定制网站设计昆明官网seo服务

顺德定制网站设计,昆明官网seo服务,word在线编辑,创意智能产品设计写在前面 Java虚拟机(JVM)的垃圾回收(GC)机制是Java生态系统的核心组件之一,直接影响应用程序的性能和稳定性。从早期的简单标记清除算法,到现代的分代收集、并发回收等复杂策略,GC技术经历了多…

写在前面

Java虚拟机(JVM)的垃圾回收(GC)机制是Java生态系统的核心组件之一,直接影响应用程序的性能和稳定性。从早期的简单标记清除算法,到现代的分代收集、并发回收等复杂策略,GC技术经历了多次重大演进。了解JVM的GC历史不仅能帮助开发者优化应用性能,还能深入理解Java内存管理的设计哲学,本文将梳理JVM垃圾回收的发展历史。

垃圾回收器算法

定位垃圾的算法

1. Reference Count(引用计数法)

这个很简单,不过多赘述

2. Root Searching (根可达算法)

GC roots:JVM stack,native method stack、runtime constant pool、static references in method area,Clazz

线程栈变量、静态变量、常量池、JNI指针

垃圾清除算法

  1. Mark-Sweep(标记清除)

​ 打上标记直接清除。碎片化严重

  1. Copying(拷贝)

    只能有一半的空间,将找到的不是垃圾拷贝到另一边

  2. Mark-Compact(标记压缩)

    回收的时候就将其整理好,效率最低

各种各样的垃圾清楚算法有利有弊,不同的垃圾回收器使用的方不尽相同,但是每种都有其特点

十种垃圾回收器

GC 的演化

随着内存大小的不断增长而演进

  • 几兆-几十兆 :Serial
  • 几十兆-上百兆1G:parallel Scavenge + parallel Old(JDK 1.8 默认)

  • 几十G Concurrent GC:CMS + ParNew、G1、ZGC 、Shenandoah(GC 线程和垃圾回收线程同时进行)

堆内逻辑分区

所有的垃圾回收器都将内存分为了新生代和老年代

new : old = 1:3

new 中 eden(伊甸):survivor:survivor = 8:1:1

第一次执行时扫描 eden 中的对象,将存活的对象拷贝到survivor区中,将eden中进行全部清除,下一次就对eden 和存储对象的survivor区进行扫描,将存活的对象放到另一个survivor区中,对eden 和 survivor全部清除,以此类推。如果survivor装不下了,就往 old 中扔。

1. Serial(年轻代)

a stop-the-world,copying which uses a single GC thread

单线程 STW 复制算法 年轻代垃圾回收

2. Serial Old(老年代)

a stop-the-world mark-sweep-compact collector that uses a single GC thread

单线程 STW 标记清除和标记压缩相结合 老年代垃圾回收

3. Parallel Scavenge(新生代)

多线程 STW 复制算法 新生代垃圾回收

4. Parallel Old(老年代)

多线程 STW 标记清除 + 标记压缩 老年代垃圾回收

5. CMS (老年代)

Concurrent Mark Sweep

三色标记算法

四个过程:初始标记 -> 并发标记 -> 重新标记 -> 并发清理

​ 1、找到 root 标记 此时 STW

​ 2、并发标记,不会产生 STW ,但是会存在标错的情况(三色标记算法)

​ 黑色:自己已经标记,并且fields都标记完成

​ 灰色:自己标记完成,还没来得及标记fields

​ 白色:还 没有遍历到的节点

​ 3、此时对错误的重新进行修正,会产生 STW

​ 4、并发清理

6. ParNew(年轻代)

配合 CMS 来进行使用,Parallel Scavenger 的加强版

7. Epsilon(什么都不干垃圾回收器)

8. G1(放弃了分代模型)

物理上不分代,逻辑上分代

9. ZGC(分页算法)

10.Shenandoah

调优

  1. 根据需求进行jvm规划和预调优
  2. 优化运行jvm运行环境
  3. 解决 jvm 运行过程中出现的各种各样的问题 OOM
常用参数

jps 显示当前运行的java 程序

jinfo port 显示当前运行程序的详细信息

jstat -gc port java的跟踪信息

jstack port 打印线程栈信息

top linux 显示进程 占用 cpu情况

top -Hp port 显示进程中的线程占用 cpu 的情况

jmap - histo port 不同的类占用内存的情况(STW)

jmap -dump:format=b,file=filename.hprof

arthas


The end.


文章转载自:

http://LJr1egW5.gmwdL.cn
http://L37xV2sC.gmwdL.cn
http://jKCtFHw0.gmwdL.cn
http://YWwOaB8T.gmwdL.cn
http://sg2WITUE.gmwdL.cn
http://BXBp1IFi.gmwdL.cn
http://zClHPczE.gmwdL.cn
http://PWlx5NTj.gmwdL.cn
http://b0wlxRbj.gmwdL.cn
http://DQMrg2Em.gmwdL.cn
http://qK2VkDO7.gmwdL.cn
http://6UWurTai.gmwdL.cn
http://3fe04BPA.gmwdL.cn
http://cC97DSbW.gmwdL.cn
http://uFFEotu4.gmwdL.cn
http://GTTigTGk.gmwdL.cn
http://0VuiA85t.gmwdL.cn
http://Z4U0Iy3a.gmwdL.cn
http://fKmMMVoH.gmwdL.cn
http://TSKhe9ZB.gmwdL.cn
http://moLYWllE.gmwdL.cn
http://c5MU94uf.gmwdL.cn
http://eIzvMnss.gmwdL.cn
http://S9ECLwIr.gmwdL.cn
http://DcEZnOXy.gmwdL.cn
http://HujwDGys.gmwdL.cn
http://wJOFxDWE.gmwdL.cn
http://rtoFIhF6.gmwdL.cn
http://moHcN2GD.gmwdL.cn
http://CZyRRvzP.gmwdL.cn
http://www.dtcms.com/wzjs/703096.html

相关文章:

  • 广州网站建设网站托管运营长沙互联网企业
  • 潮州营销型网站建设推广几何背景生成器网站
  • 做订阅号要建立网站吗群辉做网站服务器python
  • uzi粉丝做的网站常用的北京文化馆设计公司
  • 做网站前后端的发布流程青岛代理记账公司有哪些
  • 景德镇建设局网站筑云网站投诉
  • 中小企业网站建设公司上海平台网站建设公司排名
  • 吉林系统建站怎么用php网站开发路线
  • 温州网站建设策划网站代备案管理系统
  • 末年人免费观看网站郴州网站建设哪里比较好
  • 做毕业设计哪个网站好广告传媒公司主要做什么
  • 网站外链软件班级网站设计模板
  • 有什么教做维c甜品的网站快速排名seo软件
  • 免费网站设计平台易语言网站批量注册怎么做
  • 中国中小企业网站网址导航下载到桌面
  • 宁波网站建设制作订做网络维护工资多少一个月
  • 住建部网站村镇建设管理平台社群营销
  • 做免费采集电影网站犯法吗高碑店做网站的公司
  • 怎么用阿里云服务器做淘客网站网站优化培训如何优化
  • 空包网站怎么做高端手机网站定制
  • 凡科做网站关键词wordpress插件pdf
  • 天津网站备案在哪照相邵东微网站建设
  • 软件开发包括网站开发吗在北京注册公司有什么好处
  • 网站团队组成国外的电商网站有哪些
  • 勤哲网站开发视频如何制作公众号教程
  • 视频网站怎么做建设网页
  • 免费企业网站空间安庆网站建设推荐安徽秒搜科技
  • 专门做评测的网站有哪些wordpress木木主题
  • 北京手机站建站柳州最强的网站建设
  • 太原建站司点击查看南昌营销型网站