jvisualvm使用
【摘要】 一.jvisualvm监控本地jvm 1.简单介绍jvmeden:新生代s0:Survivor1区s1:Survivor2区old:老年代metaspace:元空间(替代永久代)2.监控本地项目在java安装目录下可以找到jvisualvm.exe。打开后可以看到本地启动了四个项目。通过下图就可以看到jvm情况,可以明显分析出在堆中红框发生了内存溢出。3.下载插件下载Visual GC...
一.jvisualvm监控本地jvm
1.简单介绍jvm
- eden:新生代
- s0:Survivor1区
- s1:Survivor2区
- old:老年代
- metaspace:元空间(替代永久代)
2.监控本地项目
在java安装目录下可以找到jvisualvm.exe。
打开后可以看到本地启动了四个项目。
通过下图就可以看到jvm情况,可以明显分析出在堆中红框发生了内存溢出。
3.下载插件
下载Visual GC。
安装后,重启可以在选项栏中看到,可以看到界面更直观 ,分块更加详细了。
在上文的jvisualvm只能体现出内存溢出,那么怎么能分析出哪里出问题了呢。
1.举个栗子
首先我们使用这段代码使内存溢出。
2.dump堆日志
在发生内存溢出时(如果发生gc了 那么将得不到溢出时的日志 ),点击堆 dump,会生成.hprof文件,查看.hprof文件就可以分析出内存溢出情况。(在dump时 应用会暂停)
3.安装MAT
我们需要一个软件查看.hprof文件,下载网址
解压后,双击可以打开。
4.查看.hprof文件
打开上文的.hprof文件。
会发现这里有一个program。
点击 See stacktrace ,会发现报错日志,发现已经分析出有问题的地方了。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)