自定义类MatClazz内存个数为9521。当前对象占用内存为16个字节。不包括其属性bytes的字节数。
通过查看MatClazz引用的类之byte数组之bytes。其单个数组占用的字节数为10256。整个内存MatClazz中属性bytes占用的byte[]字节数为97746376,与直方图统计趋近。
通过选项 最短GC Roots路径
查看得知,此次内存溢出是由线程栈中局部变量等对象未释放导致的。
当前线程栈直接引用的对象为ArrayList,其中ArrayList中元素MatClazz等引用没有释放导致GC 无法释放。
2.线上由于OSS引发的内存溢出
背景:最近预发刷一批图片,由于OSS客户端没有使用单例,而是独立new方式创建导致连接没有显式关闭出现了内存溢出。
解决方式:直接通过如下选项,
快速定位出HashMap耗内存的原因:如图所示oss相关连接引发的GC ROOT引用链无法释放导致的。
Mat工具使用参开