JVM内存溢出问题排查
- 内存溢出问题排查,测试代码如下:
import java.util.ArrayList; import java.util.List; public class Test001 { //-Xmx10m -Xmx10M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:/jvm.dump public static void main(String[] args) { List<User> userList = new ArrayList<>(); while (true) { userList.add(new User()); } } }
从以上的信息可以看出,空间的信息各自己占有的比例。运行完成后,我们将生成的dump文件加载到jvisualvm,我们可以通过cmd命令行进入,直接命令(jvisualvm)打开,如下图:
当我们定位到那类了以后,我们就可以去代码中查询相关代码写的是否有问题。