上周由于工作原因,公司安排写单元测试,开始都很顺利,但是随着写的测试案例越来越多,项目单元测试运行就特别卡,极端情况下内存溢出,因此进行了排查
首先内存溢出问题,首先能想到的导致内存溢出的原因
代码问题...一般是因为堆太小,导致异常的原因:没有足够的内存,
因此本人首先使用了jdk自带的工具visualvm,这个工具可以观察内存以及cpu等情况如下图
上图看到我们的堆和元空间不断的上升
此时我们就用下面命令看了一下我的...,内存回收不了多少内存,导致的内存溢出,
但是当时让本人疑惑的是,我的配置和别的项目一样呀,都是从别人那里复制过来的,然后我对比了一下,果然是我的Jvm配置有问题,根本就没有配置JVM参数,然后查了一下...,少了设置堆内存大小
maxHeapSize="2G"
然后设置之后,重新运行了一下单元测试,果然效果明显,不再发生内存溢出,也不是卡的一动不动了,然后我们又观察了一下内存情况,如下图
基本都是新生代来回进行复制进行垃圾回收...当然也是用内存溢出排查神器MAT,也是非常好用,关注回复MAT,即可获取安装包