2021
10-21
10-21
一篇文章带你搞定JAVA内存泄漏
目录1、什么是内存泄漏2、内存泄漏的原因3、内存泄漏有哪些情况3.1代码中没有及时释放,导致内存无法回收。3.2资源未关闭造成的内存泄漏3.3全局缓存持有的对象不使用的时候没有及时移除,导致一直在内存中无法移除3.4静态集合类3.5堆外内存无法回收4、内存泄漏的解决办法5、内存问题排查第一步首先确认逻辑问题第二步:分析gc是否正常执行第三步确认下版本新增代码的改动,尽快从代码上找出问题。第四步:开启各种命令行和...
继续阅读 >
目录一、浅析二、Java内存泄露三、Java内存溢出一、浅析内存泄露(memoryleak):是指程序在申请内存后,无法释放已申请的内存空间,多次内存泄露堆积后果很严重,内存迟早会被占光。内存泄漏最终会造成内存溢出。内存溢出(outofmemory):是指程序在申请内存时,没有足够的内存空间供其使用JVM中有一下几种内存空间:栈内存(Stack):每个线程私有的。堆内存(Heap):所有线程公用的。方法区(MethodArea)...
这几天在排查一个堆外内存泄漏的问题时看到很多人都提到了gperftools这个神器,想要尝试一下结果发现它对macOS的支持不太友好。而且大多数教程是针对C++的,里面的一通编译链接的操作看得我个Java仔眼花缭乱的。所以我在这里整理一份mac和Java版的使用教程,免得大家再来踩坑了。一、简介gperftools是google提供的一套分析工具,包括堆内存检测heap-profiler,内存泄漏分析工具heap-checker和CPU性能监测工具cpu-profiler。众所周...