当程序员先前未分配的一块内存(或多于一部分)没有正确分配时,就会发生内存泄漏。即使该程序不再使用该内存,它仍然是“保留”的,并且直到程序员适当地重新分配该内存后,程序才能使用该内存。 这就是所谓的内存泄漏的原因,因为它就像是浪费水的漏水龙头,仅在这种情况下才是计算机内存。 内存泄漏可能导致什么问题? ...
分类:
其他好文 时间:
2021-01-04 10:43:04
阅读次数:
0
四种引用类型的介绍 强引用(StrongReference):JVM 宁可抛出 OOM ,也不会让 GC 回收具有强引用的对象; 软引用(SoftReference):只有在内存空间不足时,才会被回的对象; 弱引用(WeakReference):在 GC 时,一旦发现了只具有弱引用的对象,不管当前内 ...
分类:
编程语言 时间:
2021-01-04 10:42:25
阅读次数:
0
内存泄露检测工具比较 定位java内存泄漏 https://www.jianshu.com/p/3be49723d2f8?from=timeline&isappinstalled=0 https://segmentfault.com/a/1190000011453225 Java 垃圾回收监控和分析 ...
分类:
其他好文 时间:
2020-12-19 12:07:55
阅读次数:
1
概述对于Java程序员来说,在虚拟机自动内存管理机制下,不再需要像C/C++程序开发程序员这样为每一个new操作去写对应的delete/free操作,不容易出现内存泄漏和内存溢出问题。正是因为Java程序员把内存控制权利交给Java虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那么排查错误将会是一个非常艰巨的任务。运行时数据区域Java虚拟机在执行Java程序的过程中
分类:
编程语言 时间:
2020-12-17 13:06:57
阅读次数:
6
前段时间在网上看到了一篇关于ThreadLocal内存泄漏的文章 于是个人也研究了下ThreadLocal 对象,其原理是: ThreadLocal 定义的变量值 会存储在当前线程的一个map集合中 这个map里面存储的是Entity对象 , Entity对象的key是当前ThreadLocal对象 ...
分类:
其他好文 时间:
2020-12-16 11:53:16
阅读次数:
4
一:背景 1. 讲故事 这段时间项目延期,加班比较厉害,博客就稍微停了停,不过还是得持续的技术输出呀! 园子里最近挺热闹的,精致码农大佬分享了三篇文章: 为什么要小心使用 Task.Run [https://www.cnblogs.com/willick/p/14078259.html] 小心使用 ...
分类:
其他好文 时间:
2020-12-15 11:47:29
阅读次数:
2
前言记录一次线上JVM堆外内存泄漏问题的排查过程与思路,其中夹带一些「JVM内存分配的原理分析」以及「常用的JVM问题排查手段和工具分享」,希望对大家有所帮助。在整个排查过程中,我也走了不少弯路,但是在文章中我仍然会把完整的思路和想法写出来,当做一次经验教训,给后人参考,文章最后也总结了下内存泄漏问题快速排查的几个原则。「本文的主要内容:」故障描述和排查过程故障原因和解决方案分析JVM堆内内存和堆
分类:
其他好文 时间:
2020-12-11 11:41:14
阅读次数:
2
1、背景公司一个RocketMQ集群由4主4从组成,突然其中3台服务器“竟然”在同一时间下线,其监控显示如下:依次查看三台机器的监控图形,时间戳几乎完美“吻合”,不可思议吧。2、故障分析出现问题,先二话不说,马上重启各服务器,尽快恢复集群,降低对业务的影响,接下来开始对日志进行分析。Java进程自动退出(rocketmq本身就是一个java进程),一种最常见的问题是由于内存溢出或由于内存泄漏导致进
分类:
系统相关 时间:
2020-12-07 12:49:05
阅读次数:
15
存活探针Kubernetes提供了自愈的能力,具体就是能感知到容器崩溃,然后能够重启这个容器。但是有时候例如Java程序内存泄漏了,程序无法正常工作,但是JVM进程却是一直运行的,对于这种应用本身业务出了问题的情况,Kubernetes提供了LivenessProbe机制,通过检测容器响应是否正常来决定是否重启,这是一种很好的健康检查机制。毫无疑问,每个Pod最好都定义LivenessProbe,
分类:
其他好文 时间:
2020-11-27 11:21:10
阅读次数:
9
一、问题场景 网络请求成功前退出了页面,该 State 被从对象树卸载掉,而这时回调了网络请求的方法,方法中带有 setState 的调用,也就导致了该问题。 二、问题原因 State 对象被从对象数卸载释放之后再次调用 setState 就会报 setState() called after di ...
分类:
其他好文 时间:
2020-11-23 12:48:08
阅读次数:
29