一:设置jvm参数(可以运行时设置,也可以在开发工具中设置)
众所周知,java中的对象及数组是存储在堆空间的。当堆空间不够用时,会报出oom的异常错误,我们可以在jvm启动时通过配置来设置堆空间的大小
-Xms:最小堆内存
-Xmx:最大堆内存
-Xmn:堆中新生代的内存
-Xss:栈空间的内存
知道了如何配置堆空间,那么如何监控jvm的内存空间呢?
jdk中有自己的可视化界面:bin目录下有jvisualvm.exe,运行可以看到正在运行的java程序中的信息,包括jvm空间的大小,内存使用情况,对象实例以及线程情况等
二:分析转储文件
1.通过配置 -XX:+HeapDumpOnOutOfMemoryError设置发生OOM时,生成堆dump
2.通过配置 -XX:HeapDumpPath=C:\Users\Administrator\Desktop设置堆dump文件的生成路径
最后通过jdk自带的jvisualvm工具打开文件,就可以查看发生OOM时,堆中线程,实例等对象的具体情况了
最后:附上后端技术交流圈,欢迎各位大佬入圈交流技术......V:ff1341658(先添加好友后拉群,请备注:小白不黑)