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

Java性能-回收算法-Throughout回收算法

垃圾回收算法

理解Throughput回收器

回收器三个基本操作——回收
找到不使用的对象
释放内存
压缩堆碎片
Minor GC和Full GC,每个操作都会标记,释放和压缩对应的目标分代
[63.205s][info][gc,start ] GC(13) Pause Full (Ergonomics)
[63.205s][info][gc,phases,start] GC(13) Marking Phase
[63.314s][info][gc,phases ] GC(13) Marking Phase 109.273ms
[63.314s][info][gc,phases,start] GC(13) Summary Phase
[63.316s][info][gc,phases ] GC(13) Summary Phase 1.470ms
[63.316s][info][gc,phases,start] GC(13) Adjust Roots
[63.331s][info][gc,phases ] GC(13) Adjust Roots 14.642ms
[63.331s][info][gc,phases,start] GC(13) Compaction Phase
[63.482s][info][gc,phases ] GC(13) Compaction Phase 1150.792ms
[64.482s][info][gc,phases,start] GC(13) Post Compact
[64.546s][info][gc,phases ] GC(13) Post Compact 63.812ms
[64.546s][info][gc,heap ] GC(13) PSYoungGen: 15808K->0K(339456K)
[64.546s][info][gc,heap ] GC(13) ParOldGen: 457753K->392528K(554432K)
[64.546s][info][gc,metaspace ] GC(13) Metaspace: 56728K->56728K(115392K)
[64.546s][info][gc ] GC(13) Pause Full (Ergonomics)
462M->383M(872M) 1336.708ms
[64.546s][info][gc,cpu ] GC(13) User=4.446s Sys=0.01s Real=1.34s
通过gc数据可以看到对程序的影响

堆大小的自适应优化和静态优化

围绕停顿时间进行throughput回收器进行优化
1、时间和空间的取舍,更大的堆会消耗更多的内存,好处是应用程序有更高的吞吐量
2、执行GC所需的时间长度,增加堆大小可以减少full gc,但是gc时间长,增加整体平均时间(平均时间的重要性)

通常不设置MaxGCPauseMillis标志,设置合理的值,如果顾小则会发生老年代很小

下图展示通过增加堆的方式提升程序的吞吐量

请添加图片描述

http://www.lryc.cn/news/17440.html

相关文章:

  • 立项近7年,索尼产品经理分享PS VR2开发背后的故事
  • Kubernetes 如何通过ingress-nginx实现应用灰度发布?
  • 华为OD机试 - 密室逃生游戏(Java) | 机试题+算法思路+考点+代码解析 【2023】
  • redis的主从复制细节
  • SparkSQL
  • Python|每日一练|栈|数组|字典树|数组|树|广度优先搜索|单选记录:逆波兰表达式求值|回文对|二叉树的层序遍历
  • 慧教室系统--远程控制系统
  • OSCP-课外1(http万能密码、hydra密码暴力破解http、代码审计、Win缓存区溢出)
  • ELK日志分析--Logstash
  • Mysql插入数据从指定选项中随机选择、插入时间从指定范围随机生成、Navicat使用存储过程模拟插入测试数据
  • 【基础算法】关于高精度计算的问题【很高位数数据的加减乘除(相关代码用C++实现)】
  • 事理知识图谱
  • 多綫程之python爬蟲構建
  • 【干货】Redis在Java开发中的基本使用和巧妙用法
  • 历时半年,我终于阿里上岸了,附面经和Java非科班学习心得
  • ArkUI实战,自定义饼状图组件PieChart
  • 工作实战之系统交互api调用认证设计
  • 学习系统编程No.5【虚拟地址空间】
  • Linux常用指令(未完待续。。。)
  • 用D写裸机
  • (二十五)、实现评论功能(5)【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】
  • 【概念辨析】二维数组传参的几种可能性
  • python和C++代码实现图片九宫格切图程序(附VS2015配置Opencv教程)
  • 【深度学习】优化器
  • SpringBoot使用validator进行参数校验
  • 论文复现:风电、光伏与抽水蓄能电站互补调度运行(MATLAB-Yalmip全代码)
  • FastCGI sent in stderr: "PHP message: PHP Fatal error
  • 【数字IC基础】跨时钟域(CDC,Clock Domain Crossing)
  • UNI-APP学习
  • 编译原理【运行时环境】—什么是活动记录、 活动记录与汇编代码的关系