前言:
发现问题,解决问题,是贯穿整个项目开发过程的事情,能够处理更多的问题,随着经验的丰富,提前预知更多的问题,让问题不出现是最好的解决问题方式。
问题背景:
项目运行过程中出现了爬取加载慢,核心服务内存占用很高的情况。
问题原因:
以下为分析出来的原因:
1.项目启动的时候分配的堆内存过小
2.项目运行过程中有大量的对象被创建出来,可是没有及时被GC回收,或者具有引用的GC无法回收
3.经过了GC之后,堆内的对象被清理,但是操作系统的内存没有被立刻释放
查看jvm用的是哪种垃圾回收器:
Windows+R > cmd > 输入命令 java -XX:+PrintCommandLineFlags -version
查看内存占用情况:
首先启动当前的项目
找到jdk的bin路径,找到jvisualvm.exe,双击打开
在左侧本地选择对应的项目,双击进去
点击红框内的监视
点击图右上角的“堆Dump”
查看到了内存占用情况
双击对应的行,查看详细的信息,根据信息选择针对性的解决方案