提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- [一、MacBook Air M4 安装JvisualVM](#一、MacBook Air M4 安装JvisualVM)
- 二、IDEA使用步骤
- 三、线上下载gc日志
前言
提示:这里可以添加本文要记录的大概内容:
jdk8没有自带JVisualVM,需要自行下载使用
一、MacBook Air M4 安装JvisualVM
1、JVisualVM官网下载
访问地址: http://visualvm.github.io/

下载后:VisualVM_22.dmg
2、VisualVM安装

拖过去直接安装即可
3、VisualVM修改本地的jdk的路径
应用程序中 显示包内容


找到visualvm.conf,使用mac的记事本打开


填写上自己的mac的jdk路径
/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
若不知道本地mac的jdk的home路径,可以使用命令:
echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
使用/usr/libexec/java_home 命令查看出来的不是真实的路径
例子:
/usr/libexec/java_home
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
二、IDEA使用步骤
1.下载插件

2.配置插件

3.使用

会多出两个图标,然后使用。
使用后可以直接在JVisualVM中查看

可以看到我这里创建的很多对象
三、线上下载gc日志
1、使用命令直接生成堆dump文件
发送内存溢出时,可以先使用命令生成dump文件后再重启服务。
登录虚机,执行以下jamp命令
# 替换<pid>为Java进程的ID,file:输出文件名为heap.hprof,可自定义路径
jmap -dump:format=b,file=heap.hprof <pid>
2、内存溢出发生时自动生成dump文件
java -jar启动服务的时候添加dump参数,服务发生内存溢出时自动生成dump文件。
-XX:+HeapDumpOnOutOfMemoryError 当OutOfMemoryError发生时生成dump文件
-XX:HeapDumpPath=生成dump文件的存储目录,如不指定默认生成在jar所在目录,目录一定要存在,否则生成失败。
# 当OutOfMemoryError发生时生成dump文件,-XX:HeapDumpPath指定生成后的文件存储路径
java -jar -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/test/dump/ -Xms64m -Xmx64m demo-0.0.1-SNAPSHOT.jar
