码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • GC FullGC


    内存区域划分:

    堆 heap —主要数据、线程共享(线程安全问题)

    方法区 method Area—线程共享—类加载器的类信息、常量、静态变量(编译后class文件信息)

    栈 stack—线程私有—生命周期跟随线程、局部变量表、操作栈、动态链接、方法出口

    程序计数器—线程私有—记录线程执行情况

    GC 的对象是 heap区域

    Jvm对不同生命周期的对象进行分类,对堆内存区域进行逻辑划分。

    按照存活时间分为:(分代收集算法)

    年轻代  Eden Servivor + 闲置Servivor---- 年轻代的GC->Minor GC

    老年代 (永久代-元数据空间)——经历多次Minor GC仍然存活的放入老年代——老年代的GC->Major GC

    分配规则:

    1、优先Eden

    2、大对象、长期存活对象 直接进入老年代

    GC触发会耗时:

    要控制好内存和配置,减少触发

    Gc触发条件:

    1、system.gc()

    2、老年代空间不足—新生代对象转入、创建大对象

    GC收集器--实现gc的各类算法——CMS最优秀

    分析GC日志,

    GC [PSYoungGen: 251986K->1403K(917504K)]

    FullGC [PSYoungGen: 1403K->0K(917504K)]

    JVM调优大部分堆GC的调优

    GC的原因大部分是代码问题

    减少对象创建数量、减少全局变量+大对象

    调整新生代、老年代大小

    选择合适的gc收集器

    调整—监控--对比—分析—调整

  • 相关阅读:
    【NOWCODER】- Python:列表(三)
    Style样式设置器
    go基础详解2-go run & test
    并发编程之深入理解CAS
    Python中那些简单又好用的特性和用法
    计算机毕业设计springboot教务管理系统4z3kl源码+系统+程序+lw文档+部署
    黑客技术(网络安全)—高效自学
    17、数据的交换输出
    【API篇】五、Flink分流合流API
    如何计算3种卷积之后的尺寸(普通卷积,转置卷积,空洞卷积)
  • 原文地址:https://blog.csdn.net/zhangbinHn/article/details/126583224
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号