内存溢出排查java.lang.OutOfMemoryError: Java heap space

内存溢出样例

public class App {public static void main(String[] args) {new Thread() {public void run() {while(true) {Thread threadBigObject = new Thread(new Runnable() {public void run() {
//                            while (true) {BigObject bigObject = new BigObject();String tt = new String(bigObject.getB());System.out.println(tt);/*try {TimeUnit.MILLISECONDS.sleep(800);} catch (Exception e) {e.printStackTrace();}*/
//                            }}});try {TimeUnit.MILLISECONDS.sleep(1);} catch (Exception e) {e.printStackTrace();}threadBigObject.start();}}}.start();/*while(true) {Thread threadSmallObject = new Thread(new Runnable() {public void run() {SmallObject smallObject = new SmallObject();String tt = new String(smallObject.getBytes());System.out.println(tt);try {TimeUnit.MILLISECONDS.sleep(800);}catch (Exception e) {e.printStackTrace();}}});threadSmallObject.start();}*/}
}public class BigObject {private byte[] b = new byte[1024*1024];public byte[] getB() {return b;}public void setB(byte[] b) {this.b = b;}
}public class SmallObject {private byte[] bytes = new byte[1024];public byte[] getBytes() {return bytes;}public void setBytes(byte[] bytes) {this.bytes = bytes;}
}

 ##idea配置ivm运行参数-Xmx48m -XX:+PrintGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:/jvmgclog/heapdump/

 ##分析Java堆Dump工具下载

https://github.com/oracle/visualvm/releases/download/2.1.9/visualvm_219.zip

 ##GC-ROOT对象

1、虚拟机栈(栈帧中的本地变量表)中的引用对象:即各个线程当前执行的活动栈帧中引用的对象。
2、方法区中的类静态属性引用的对象:例如,public static修饰的变量。
3、方法区中的常量引用的对象:例如,字符串常量池(String Pool)中的字符串。
4、本地方法栈中JNI(Java Native Interface)引用的对象:通过JNI调用本地方法时,本地方法栈中引用的对象。
5、Java虚拟机内部的引用:如基本数据类型对应的Class对象,一些常驻的异常对象(比如NullPointerException、OutOfMemoryError等),系统类加载器。
6、所有被同步锁(synchronized)持有的对象:持有锁的对象不会被回收。
7、活跃线程:线程本身也是对象,活跃线程自然不能被回收。
8、JVM内部的引用:比如指向JVM内部的类、方法、字段的引用。
9、其他:比如一些特殊的引用,如finalize队列中的对象、引用类型字段中的引用等。

##从图中看出GC-ROOT持有大对象 BigObject

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

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

相关文章

DevOps学习笔记

记录以下DevOps学习笔记,这里是笔记的入口汇总,可以直观的看到所有的笔记,还没有入口的部分,在下正在努力编写中。 gitlab jenkins docker docker安装 artifactory 1.artifactory安装 2.artifactory使用 计算机网络 1.dn…

快速构建一个ui界面程序--pyqt入门

快速构建一个ui界面程序--pyqt入门 0 背景1 环境准备1.1 安装python1.2 安装pyqt 2 UI设计2.1 启动UI设计可视化工具2.2 生成*.ui文件2.3 编译ui生成对应的py 3 使用UI 0 背景 本文档用于记录开发者如何快速构建一个简单UI程序。开发者使用文档中提及的工具并用于商业活动时&a…

深度学习(三)-反向传播

反向传播算法 深度学习三巨头发表反向传播论文 https://www.cs.toronto.edu/~hinton/absps/naturebp.pdf 正向传播网络 前一层的输出作为后一层的输入的逻辑结构,每一层神经元仅与下一层的神经元全连接,通过增加神经网络的层数虽然可为其提供更大的灵…

​如何通过Kimi强化论文写作中的数据分析?

在学术研究领域,数据分析是验证假设、发现新知识和撰写高质量论文的关键环节。Kimi,作为一款先进的人工智能助手,能够在整个论文写作过程中提供支持,从文献综述到数据分析,再到最终的论文修订。本文将详细介绍如何将Ki…

elementUI——checkbox复选框监听不到change事件,通过watch监听来解决——基础积累

今天在写后台管理系统的时候,遇到一个需求,就是要求监听复选框的change事件,场景就是:两个复选框互斥,且可以取消勾选。 就是这两个复选框可以同时都不勾选,如果勾选的话,另一个一定要取消勾选。…

transformer,vit

各大数据集排行榜,最好的模型和对应代码,查找 例如分割检测分类 https://paperswithcode.com/sota 1、batchnormal ,多个样本的通道,做均值方差 2、layernormal, 每个图片,一句话使用行的方式切分,更适用…

微型直线导轨高精度运行的工作原理

微型导轨是一种用于高精度定位和运动控制的传动装置,常用于微小化、高精密度化的机械设备中,如IC制造设备、半导体设备、高速移载的设备、精密测量、检测仪器、医疗设备、X-Y table,以及高速皮带驱动的设备等小型化设备。 微型导轨的构成相对…

中地数码集团、新中地教育校企联合GIS开发实践实训项目

中地数码集团是国内GIS软件开发与解决方案提供商头部企业,30年来深耕GIS行业,产业链遍布智慧地质、城市建设规划、国土资源管理等重点行业。新中地教育为首批长江学者、国家地理信息系统工程技术研究中心首席科学家、中地数码创始人吴信才教授、刘永教授…

【C#】字段

C# 类具有哪些成员? 字段 1.什么是字段 字段(field)是一种表示与对象或类型(类与结构体)关联的变量字段是类型的成员,旧称“成员变量”与对象关联的字段亦称“实例字段”与类型关联的字段称为“静态字段”,由static修饰 通过一个代码来详细了解实例字段与静态字段…

9行代码开发一个基于ollama的私有化RAG

前言 OpenAI(LLM Embedding)是使用LiteLLM ollama模拟,具体做法如下, Llamaindex OpenAI LLM 模型默认使用的是gpt-3.5-turbo, embedding 模型默认使用的是text-embedding-ada-002, 所以这里使用litell…

40天的八股文总结

四十天前报名参加了卡哥的八股文训练营,在这四十天中每周都在训练营中打卡,可以通过念出来的方式进行八股文的记忆,同时还可以听到其他训练营中的朋友们的打卡,这让人感觉非常的有动力,每天都有更强烈的记忆八股文的信…

JAVA智能引领乐享同城城市向导达人系统小程序源码

智能引领,乐享同城 —— 城市向导达人系统 🚀【开篇:智能时代的同城新体验】🚀 在这个日新月异的智能时代,我们的城市生活也在悄然发生着变化。你是否厌倦了千篇一律的出行路线?是否渴望在繁忙的都市中找…

网络-多路io

了 fcntl 函数来操作文件描述符的状态标志,其中主要是为了设置非阻塞模式。下面是对 fcntl 函数及其参数的详细解释: fcntl 函数 fcntl 是一个用于操作文件描述符的系统调用,可以用来设置或获取文件描述符的各种属性。其原型如下&#xff1…

kubeadm部署 Kubernetes(k8s) 高可用集群【V1.20 】

kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。 calico.yaml kubernertes-dashboard.yaml 1. 安装要求 在开始之前,部署Kubernetes集群机器需要满足以下几个条件: 7台机器,操作系统Openeuler22.03 LTS SP4硬件配置&#…

通义千问AI PPT初体验:一句话、万字文档、长文本一键生成PPT!

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,专注于分享AI全维度知识,包括但不限于AI科普,AI工…

笔记:《利用Python进行数据分析》之透视表和交叉表

透视表和交叉表 透视表(pivot table)是各种电子表格程序和其他数据分析软件中一种常见的数据汇总工具。它根据一个或多个键对数据进行聚合,并根据行和列上的分组键将数据分配到各个矩形区域中。在Python和pandas中,可以通过本章所…

黑悟空!一区预定!原创首发!SLWCHOA-Transformer-LSTM混合改进策略的黑猩猩优化算法多变量时间序列预测

黑悟空!一区预定!原创首发!SLWCHOA-Transformer-LSTM混合改进策略的黑猩猩优化算法多变量时间序列预测 目录 黑悟空!一区预定!原创首发!SLWCHOA-Transformer-LSTM混合改进策略的黑猩猩优化算法多变量时间序…

前缀和专题——一维模版+二维模版力扣实战应用

目录 1、模版 1.1【模版】一维前缀和 1.1.1 算法思想 1.1.2 算法代码 1.2【模版】二维前缀和 1.2.1 算法思想 1.2.2 算法代码 2、算法应用【leetcode】 2.1 题一:寻找数组的中心下标 2.1.1 算法思想 2.1.2 算法代码 2.2 题二:除自身以外数组…

聚观早报 | 理想汽车OTA 6.2发布;京东大幅上调校招薪资

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 9月3日消息 理想汽车OTA 6.2发布 京东大幅上调校招薪资 哪吒汽车8月销量持续破万 C919国产大飞机首航在即 现代…

怎么找TikTok代运营助力?灵感魔方怎么样?

在当今全球化的浪潮中,海外版抖音已然成为了品牌出海的重要阵地。然而,面对这个充满机遇与挑战的平台,如何找到专业的TikTok代运营团队来助力品牌成功出海呢?以下是一些关键的考量因素和方法。 首先,专业的TikTok代运…