码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • jvm堆老年代内存不断被占用无法被回收之后


    前言

    最近在做一个变量计算的开发,需要不断在代码中生成初对象,最后将结果统计并且输出到文件中,一开始使用java默认的配置,跑到一半就java.lang.OutOfMemoryError:GC overhead limit exceeded,这个原因大家可以去百度,是因为大部分事件cpu用来做gc回收,但是老年代的对象一直无法被释放,所以jvm为了避免如此进行下去导致最后内存被耗尽,抛出这个异常让我们检查代码,但是这个功能需要一次获取所有并且统计计算,所以没有办法,我就用了暴力的方法,关闭了异常提醒-XX:-UseGCOverheadLimit,并且将最大堆提高了2G,也就是6G。

    现象

    跑的过程中,我原以为6G远远足够,不过没有想到跑着跑着就把老年代的比例4G打满了,本以为回直接报OOM,没有想到,老年代存放量继续上升了,奇怪我设置了最大内存6G,难道jvm帮我自动扩容了?

    发现

    后面我单独看了老年代,新生代,还有堆内存,发现堆的最大内存6G,没有变化,使用量是超过了4G,但是新生代的最大可用区间变小了,原来在0到2G变化,现在变成了0到1.XG之间波动。

  • 相关阅读:
    @Override 的作用
    php算法面试题及答案
    Golang 语法入门
    Re-Ranking
    【论文阅读】Optimal Auctions Through Deep Learning
    使用electron将vue项目打包成exe桌面应用
    为什么Dapr是比SpringCloud和Istio更优雅的微服务框架?
    刷题记录:牛客NC16850[NOI1998]免费馅饼
    二进制部署ETCD单机版
    基于开源的BPM流程引擎VS天翎自研BPM流程引擎
  • 原文地址:https://blog.csdn.net/m0_67393593/article/details/126744420
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号