也就是说,GC日志、内存快照,这些东西对解决栈内存溢出有帮助吗?
首先明确一点,栈内存溢出跟堆内存是没有关系的,因为他的本质是一个线程的栈中压入了过多方法调用的栈桢,比如几千次方法调用 的几千个栈桢。
此时就导致线程的栈内存不足,无法放入更多栈桢了。
比如,通过异常信息直接定位出来是Metaspace区域出的异常,然后分析一下GC日志就完全知道发生溢出的全过程,接着再 分析一下MAT的内存快照,就知道是哪个类太多导致的异常。
而今天的栈内存溢出,我们直接去日志文件里看到是栈内存溢出:Exception in thread "main" java.lang.StackOverflowError。
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
加入交流群
请使用微信扫一扫!