以一问一答的形式学习java工具

Q:检查内存泄露的工具有?

A: jmap生成dump转储文件,jhat可视化查看。

Q:某进程CPU使用率一直占满,用什么工具可以排查?

A:

top -Hp pid找到最占CPU的线程

然后jstack来查找那个线程此时所处的堆栈,确定问题发生位置。

§ 各工具详细介绍

§ jstack

全称: JVM Stack Trance

作用: 查看某个java进程的堆栈情况, 可用于确认死锁、IO等待、死循环等问题。

命令用法:jstack pid

查看死锁例子如下图,找到wait的lock和已被锁的lock查看等待IO例子:

§ jstat

全称:

作用:

查看进程中内存使用情况,但只能给出一些简单统计数据统计加载了多少类以及占用空间 jstat -class pid

统计编译了多少文件 jstat -compiler 10

Q: jstat -gcutil {pid} 2000 可以每隔2秒,对pid进程打印内存使用统计信息。

gcutil的输出如下

里面哪个百分比如果长期处于99%-100%会有OMM风险?(OutOfMemoryError)

A:

如果E和O即新生代、老年代内存区一直都处于满的状态,则很有可能会引发OMM风险。就像下面这个。

§ jmap

全称: JVM Memory Map

作用:生成进程的内存堆快照

当需要看一下进程里是什么东西占用了过多内存时, 可以用jmap打印一下堆快照。

命令用法:打印堆快照: jmap -dump:file=./dumpfile.dump 进程pid

查看特定类所占用的情况: jmap -histo:live 进程pid | grep 类名

Q: 用jmap检查内存泄漏实例

我分了3次,每个1h调用jmap查看进程的内存实例,查看该时刻各对象数量

第一次查看情况如下:

第二次隔了2各小时,查看情况如下:

请问哪个对象可能有内存泄漏风险?

A:

ObjectA可能有泄露, 因为他的对象数量增加最快,说明对象一直在增加且很多无法进行gc释放。

§ jhat

全称: JVM Heap Analysis Tool

和jmap配合, 可以解析jmap生成的堆快照, 支持生成1个web进程供我们分析和查看。

命令用法:jhat -J-Xmx515M dumpfile.dump

此时就会启动1个webServer,然后我们去访问就行了

§ jdb

全称:Java Debugger

作用:用来对core文件和正在运行的Java进程进行实时地调试,类似于c++里的gdb

常见用法:启动进程并调试: jdb -classpath . Test

至二级调试某进程: jdb -attach 8000 -sourcepath /Users/wefit/Development/study/java/jtest/src/

§ jcmd

作用:多功能的工具,可以用它来导出堆、查看Java进程、导出线程信息、执行gc、还可以进行采样分析,可以理解为1个性能调优时用的工具。

常见命令:查看 当前机器上所有的 jvm 进程信息: jcmd -l

查看指定进程的性能统计信息: jcmd pid PerfCounter.print

列出当前运行的 java 进程可以执行的操作: jcmd PID help

查看线程堆栈信息: jcmd PID Thread.print

查看堆内存信息: jcmd PID gc.heap_dump FILE_NAME

§ jps

简单记法: JVM process status

全名:Java Virtual Machine Process Status Tool

作用: 显示 当前系统用户 的 所有 Java进程情况及其进程号

常用命令:查看进程jvm参数: jps -v

输出程序main class的完整package名或程序的jar文件完整路径名: jps -l

输出传递给main方法的参数: jps -m

§ jinfo

jvm infomation

作用:和jps功能类似, 但是支持根据指定pis查看指定进程可以查看JVM参数、系统参数、调整jvm参数

但不支持查看java程序的内存使用情况

§ javap

把java字节码文件反汇编为Java源码文件。

§ javac

java编译工具

javac的执行过程:

§ JDK可视化工具

§ jconsole

可监控jvm,即可监控本地jvm也可监控远程jvm,管理应用程序,可以检查死锁等诸多问题。

§ jvisualvm

Q:jvisualvm可以监控远程服务器的运行状态

可以在java程序运行起来后再运行, 通过某些协议连接到java进程中。

运行时, 可以不需要配置配置环境、虚拟机参数等。

java可视化编程软件有哪些_几款Java开发者必备常用的工具,准点下班不在话下...相关推荐

  1. colorpix取色小工具_五款互联网人必备的免费工具,超级实用

    运营公举小磊磊(公众号ID:gongjulei)所有文章均为独家原创,未经许可,不得转载. 一名互联网人,从来都不会嫌工具多.小公举今天找到了5款互联网人必备的免费工具,都是我亲自试用过的.话不多说, ...

  2. 从入门到精通!java可视化编程软件哪个好

    1.我往Redis里写的数据怎么没了? 使用Redis的同学你要明白一点,你为什么用Redis?用redis的作用是什么?用redis的好处是什么?凡事多思考一下为什么,多想想背后的原因. 就在不久前 ...

  3. java 视频录制软件有哪些_有哪些好用的视频录制工具?

    我是岳航运: 大家好,在猴子数据分析学院毕业后,在零售行业从事数据分析工作多年,这期间也在参与了"睡后收入项目",也就是畅销书<数据分析思维>中有一章是我写的. 正是因 ...

  4. 几款Java开发者必备常用的工具,准点下班不在话下

    摘要:一问一答的形式轻松学习掌握java工具. 以一问一答的形式学习java工具 Q:检查内存泄露的工具有? A: jmap生成dump转储文件,jhat可视化查看. Q:某进程CPU使用率一直占满, ...

  5. c 抄了java 多少东西,几款Java开发者必备常用的工具,准点下班不在话下

    摘要:一问一答的形式轻松学习掌握java工具. 以一问一答的形式学习java工具 Q:检查内存泄露的工具有? A: jmap生成dump转储文件,jhat可视化查看. Q:某进程CPU使用率一直占满, ...

  6. java多线程贪吃蛇实验报告_贪吃蛇java实验报告.docx

    贪吃蛇java实验报告 贪吃蛇java实验报告 篇一:JAVA贪吃蛇课程设计报告 <Java应用开发> 课程设计报告 题 目:指导老师:姓 名:专 业:班 级:日 期: JAVA小游戏 - ...

  7. 用php web编程作业,代做CSE2ISD作业、代做Web,php程序作业、代写Java/web编程作业、代写C/C++/Java留学生作业...

    代做CSE2ISD作业.代做Web,php程序作业.代写Java/web编程作业.代写C/C++/Java留学生作业 日期:2018-10-08 10:00 CSE2ISD – Information ...

  8. java并发编程3:使用JDK并发包(java.util.concurrent)构建程序

    原文地址为: java并发编程3:使用JDK并发包(java.util.concurrent)构建程序 java.util.concurrent 概述 JDK5.0 以后的版本都引入了高级并发特性,大 ...

  9. Java网络编程和NIO详解开篇:Java网络编程基础

    老曹眼中的网络编程基础 转自:https://mp.weixin.qq.com/s/XXMz5uAFSsPdg38bth2jAA 我们是幸运的,因为我们拥有网络.网络是一个神奇的东西,它改变了你和我的 ...

  10. Java低级编程软件_JAVA语言说低级语言吗

    高级语言:C.C++.Java.Python.Pascal.Lisp.Prolog.FoxPro.易语言等都是高级语言,相对于低级语言来说,高级语言采用易于识别和记忆的字符来作为关键字,也更接近人类的 ...

最新文章

  1. webscraper多页爬取_【实践】笔记_Chrome插件webscraper爬取天眼通数据
  2. gulp前端自动化工具的快速入门案例
  3. JS编程建议——2:正确辨析JavaScript句法中的词、句和段
  4. jzoj3845-简单题【dp】
  5. php读取excel的数据,php读取excel文件数据
  6. vs2017安装好后颜色主题、字体、语言包的设置
  7. 阿里datav地图json地址
  8. 真惭愧--连这样的小事都没有坚持下来
  9. html中document和Document的区别。
  10. 阿里云获取手机验证码
  11. 统计局解读1月制造业采购经理指数:服务业回升明显
  12. MC34063A MC34063 贴片SOP-8 变换器控制芯片 电流0.8A 1.2A 1.5A
  13. ADB向手机安装APK失败
  14. windows10只显示图标不显示缩略图
  15. Leanback(1)-播放控制栏下添加新的行
  16. 蚂蚁金服是如何实现App端侧的极致体验的?
  17. 通达信顾比倒数线指标公式,信号不漂移
  18. OTP动态令牌工作原理分析
  19. 基于java的医院分诊系统的设计与实现
  20. 三星R467笔记本不开机,通病故障,红警快修维修全过程

热门文章

  1. 全军出击 iOS和Android,绝地求生全军出击安卓和ios能一起玩吗_绝地求生全军出击安卓ios数据互通吗_玩游戏网...
  2. Eclipse主题皮肤
  3. HFSS19 官方中文教程系列 L04
  4. python深度学习——案例讲解
  5. 高效的敏捷测试第十三课 自动化测试、用例测试、接口测试、大数据测试
  6. 安川焊接机器人做圆弧运动编程_安川MOTOMAN工业机器人编程与操作(3)
  7. 十个超级简单的Python代码,拿走即用
  8. java并发包aqu_Java并发包之SynchronousQueue
  9. Android 原生工程接入mPaas框架
  10. mseed读取[2]