作业8:常用java命令(二)
一、jinfo(Configuration Info for Java)
1、功能:jinfo可以实时地查看和调整虚拟机的各项参数。
2、参数:
| 选项 | 作用 |
|---|---|
| -flag name | 打印改名字的VM设置 |
| -flag +|- name | 是否打印某个VM设置 |
| -flag name=value | 设置某个VM设置为某个值 |
| -sysprops | 打印系统中所有Java设置 |
| -flags | 打印所有VM设置 |
| 打印所有的VM和系统的Java设置 |
3、例子
$ jinfo -flags 8472
VM Flags:
-XX:CICompilerCount=4 -XX:ConcGCThreads=2 -XX:G1ConcRefinementThreads=8 -XX:G1HeapRegionSize=1048576 -XX:InitialHeapSize=268435456 -XX:MarkStackSize=4194304 -XX:MaxHeapSize=734003200 -XX:MaxNewSize=440401920 -XX:MinHeapDeltaBytes=1048576 -XX:NonNMethodCodeHeapSize=5835340 -XX:NonProfiledCodeHeapSize=122911450 -XX:ProfiledCodeHeapSize=122911450 -XX:ReservedCodeCacheSize=251658240 -XX:+SegmentedCodeCache -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:+UseG1GC -XX:-UseLargePagesIndividualAllocation
# 截取片断
$ jinfo -sysprops 8472
Java System Properties:
#Sat Jul 28 15:29:42 CST 2018
sun.desktop=windows
awt.toolkit=sun.awt.windows.WToolkit
java.specification.version=10
file.encoding.pkg=sun.io
sun.cpu.isalist=amd64
sun.jnu.encoding=GBK
java.class.path=D\:/software/IntelliJ IDEA 2018.1.1/lib/jps-launcher.jar;E\:/develop/software/java10/jdk/lib/tools.jar;D\:/software/IntelliJ IDEA 2018.1.1/lib/optimizedFileManager.jar
java.vm.vendor="Oracle Corporation"
jdt.compiler.useSingleThread=true
sun.arch.data.model=64
kotlin.incremental.compilation=true
user.variant=
kotlin.daemon.client.alive.path="C\:\\Users\\HBKJ\\AppData\\Local\\Temp\\kotlin-idea-4911978126183262642-is-running"
java.vendor.url=http\://java.oracle.com/
二、jstat(JVM Statistics Monitoring Tool)
1、功能:jstat用于监视JVM各种运行状态信息的命令行工具。可以显示本地或远程JVM进程中的类装载、内存、垃圾收集、JIT编译等运行数据。
2、参数:
| 选项 | 作用 |
|---|---|
| -class | 监视类加载、卸载数量、总空间以及类状态所耗费的时间 |
| -gc | 监视Java Heap状态,包含Eden、S0、S1、Old、MetaSpace等容量、已用空间、GC耗费时间合计等信息 |
| -gcutil | 与gc类似,关注已使用空间占总空间的占比 |
| -gccause | 与gcutil类似,额外输出导致上次GC的原因 |
| -gcnew | 监视新生代GC的状况 |
| -gcold | 监视老年代GC的状况 |
| -gccapacity | 与gc类似,关注Java堆各个区域使用到的最大和最小空间 |
| -gcnewcapacity | 与gcnew类似,关注新生代使用到的最大和最小空间 |
| -gcoldcapacity | 与gcold类似,关注老年代使用到的最大和最小空间 |
| -gcmetacapacity | 与gc类似,关注MetaSpace使用到的最大和最小空间 |
| -compiler | 输出JIT编译器编译过的方法、耗时等信息 |
| -printcompilation | 输出已经被JIT编译的方法 |
3、例子
$ jstat -gcnew 8472 1000 3
S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT
0.0 2048.0 0.0 2048.0 15 15 3584.0 97280.0 9216.0 3 0.009
0.0 2048.0 0.0 2048.0 15 15 3584.0 97280.0 9216.0 3 0.009
0.0 2048.0 0.0 2048.0 15 15 3584.0 97280.0 9216.0 3 0.009
$ jstat -gcnewcapacity 8472 1000 1
NGCMN NGCMX NGC S0CMX S0C S1CMX S1C ECMX EC YGC FGC
0.0 716800.0 99328.0 0.0 0.0 716800.0 2048.0 716800.0 97280.0 3 0
$ jstat -gccause 8472 1000 1
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT LGCC GCC
0.00 100.00 9.47 17.63 97.47 92.84 3 0.009 0 0.000 0.009 Metadata GC Threshold No GC
$ jstat -gcutil 8472 1000 1
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
0.00 100.00 9.47 17.63 97.47 92.84 3 0.009 0 0.000 0.009
$ jstat -class 8472 1000 1
Loaded Bytes Unloaded Bytes Time
3622 7032.7 0 0.0 1.22
3622 7032.7 0 0.0 1.22
$ jstat -compiler 8472 1000 1
Compiled Failed Invalid Time FailedType FailedMethod
1640 1 0 1.63 1 java/util/concurrent/ConcurrentHashMap putVal
$ jstat -printcompilation 8472 1000 1
Compiled Size Type Method
1640 49 1 io/netty/util/internal/shaded/org/jctools/queues/atomic/BaseLinkedAtomicQueue isEmpty
三、jmap(Memory Map for Java)
1、功能:jmap用于生成堆转储快照(headdump或dump文件)。
2、生成dump文件的方法
- jmap
- -XX:HeapDumpOnOutOfMemoryError,JVM发生OOM异常自动生成
- -XX:HeapDumpOnCtrlBreak参数,运行期间 Ctrl+Break 生成
- Linux系统下通过kill -3 生成
3、选项
| 选项 | 作用 |
|---|---|
| -clstats | 打印类加载器的状态 |
| -finalizerinfo | 打印在F-Queue等待Finalizer线程执行finalize方法的对象 |
| -histo[:live] | 打印堆中对象统计信息,如类、实例数量和合计容量 |
| -dump | 显示堆详细信息,如使用哪种回收器、参数配置、分代状况等 |
| 额外:live | 只输出存活对象 |
| 额外:format=b | 二进制格式(文件小) |
| 额外:file=filename | 输出文件 |
4、例子
# 截取片断
$ jmap -clstats 8472
Index Super InstBytes KlassBytes annotations CpAll MethodCount Bytecodes MethodAll ROAll RWAll Total ClassName
1 -1 24694880 472 0 0 0 0 0 24 584 608 [B
2 -1 1305288 472 0 0 0 0 0 24 584 608 [I
3 11 461040 640 0 21624 132 5437 47840 23488 48432 71920 java.lang.Class
4 11 405576 584 128 13056 103 4108 51560 17416 49168 66584 java.lang.String
5 -1 372136 472 0 0 0 0 0 24 584 608 [Ljava.lang.Object;
6 11 343424 560 0 1352 9 213 2760 1488 3520 5008 java.util.concurrent.ConcurrentHashMap$Node
7 -1 150464 472 0 0 0 0 0 24 584 608 [C
8 11 148000 552 0 1376 7 149 1856 1152 2952 4104 java.util.HashMap$Node
9 2532 135280 528 0 688 3 56 1848 472 2776 3248 java.lang.ref.SoftReference
10 -1 101840 472 0 0 0 0 0 32 584 616 [Ljava.util.concurrent.ConcurrentHashMap$Node;
11 -1 91200 488 0 1272 14 109 3408 1528 3872 5400 java.lang.Object
12 9 69840 544 0 520 2 17 792 336 1704 2040 sun.util.locale.LocaleObjectCache$CacheEntry
13 -1 66272 472 0 0 0 0 0 32 584 616 [Ljava.util.HashMap$Node;
$ jmap -finalizerinfo 8472
No instances waiting for finalization found
# 截取片断
$ jmap -histo 8472
num #instances #bytes class name (module)
-------------------------------------------------------
1: 18142 24747712 [B (java.base@10.0.1)
2: 1378 2076168 [I (java.base@10.0.1)
3: 3874 463096 java.lang.Class (java.base@10.0.1)
4: 17191 412584 java.lang.String (java.base@10.0.1)
5: 3616 376776 [Ljava.lang.Object; (java.base@10.0.1)
6: 10755 344160 java.util.concurrent.ConcurrentHashMap$Node (java.base@10.0.1)
7: 183 152336 [C (java.base@10.0.1)
8: 4625 148000 java.util.HashMap$Node (java.base@10.0.1)
# 生成dump文件可以用jhat分析
# 借助其他网站的在线分析工具
# jvisualvm分析
# windbg分析等
$ jmap -dump:live,format=b,file=heap.bin 8472
Heap dump file created
四、jhat(JVM Heap Analysis Tool)
1、功能:分析jmap生成的堆转储快照。
2、例子
$ jhat heap.bin
通过浏览器查看即可
3、其他好用的堆转储快照分析工具
- IBM Memory Analyzer
- Eclipse Memory Analysis
- jvisualvm
作业8:常用java命令(二)的更多相关文章
- 笔记常用Linux命令(二) 进程和端口
查看系统进程 ps:用于报告当前系统的进程状态 a:显示所有终端机下执行的程序 ps -ef/ps aux: 这两个命令都是查看当前系统正在运行进程,两者的区别是展示格式不同. 如果想要查看特定的进程 ...
- 作业7:常用java命令(一)
一.Javac(java compiler) 1.功能:javac是一种前端编译器,负责将源代码转换为字节码. 2.例子 (1)代码 public class TestJavac { static c ...
- 常用java命令
javap 反编译 javap xxx.class 查看大概 javap -v -p xxx.class 查看详细 jps 查看有哪些java进程 jinfo 查看或设置java进程的 vm 参数,只 ...
- maven工具使用之常用maven命令(二)
1.创建java web项目: # mvn archetype:generate -DgroupId=com.igoodful.sdxs -DartifactId=hubu -Darche ...
- java中的常用类(二)
java中的常用类(二) Math类 Math类的声明:public final class Math extends Object Math类是与数学计算有关的类,里面的方法都是静态方法,直接使用类 ...
- 黑马程序员——JAVA基础之常用DOS命令和环境变量的配置
------- android培训.java培训.期待与您交流! ---------- 1.常用dos命令: dir 显示当前文件下目录 ...
- Java学习中,常用的命令管理(Java 学习中的小记录)
Java学习中,常用的命令管理 作者:王可利(Star·星星) 一.Window中常见的dos命令 在哪里操作dos命令: Win7 ---> 开始 ---->所有程序---& ...
- java基础基础总结----- 常用DOS命令(一)
常用DOS命令 dir(directory):列出当前目录下的文件以及文件夹 mkdir (make directory) : 创建目录 rd (remove directory): 删除目录 cd ...
- Java命令学习系列(二)——Jstack
Java命令学习系列(二)——Jstack 2015-04-18 分类:Java 阅读(512) 评论(0) jstack是java虚拟机自带的一种堆栈跟踪工具. 功能 jstack用于生成java虚 ...
随机推荐
- cloud toolkit同时部署多个服务器
首先安装cloud toolkit安装完成之后重启idea 添加host主机信息: 部署到远程服务器 具体信息: 配置本地查看服务器日志信息 启动脚本信息 start.sh #! /bin/sh so ...
- koa 项目实战(七)登录接口
1.登录接口 /** * @route POST api/users/login * @desc 登录接口地址 * @access 接口是公开的 */ router.post('/login', as ...
- Mac下持续集成-查看占用的端口及kill
(base) localhost:~ ligaijiang$ lsof -i tcp:8080 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME Q ...
- http2.0多路复用
http/1中的每个请求都会建立一个单独的连接,除了在每次建立连接过程中的三次握手之外,还存在TCP的慢启动导致的传输速度低.其实大部分的http请求传送的数据都很小,就导致每一次请求基本上都没有达到 ...
- CNN基础框架简介
卷积神经网络简介 卷积神经网络是多层感知机的变种,由生物学家休博尔和维瑟尔在早期关于猫视觉皮层的研究发展而来.视觉皮层的细胞存在一个复杂的构造,这些细胞对视觉输入空间的子区域非常敏感,我们称之为感受野 ...
- 软件-设计-Adobe-Adobe XD:百科
ylbtech-软件-设计-Adobe-Adobe XD:百科 创建线框.设计.创建原型.展示以及共享适用于 Web.移动设备和语音等的卓越体验 - 以上操作在一款应用程序中即可完成.XD 面向需要进 ...
- SAN LAN MAN WAN的区别
主要是范围不同 SAN: System Area NetworkLAN: Local Area NetworkMAN: Metropolitan Area NetworkWAN: Wide Area ...
- Linux终端中文显示乱码
今天,帮我们同学处理一下中文显示乱码的问题.这个是个国内Linux用户烦恼的问题,由于大部分的Linux发行版都是以英语为主体的,而且英文在通用性和稳定性上都比中文要好一些,各种奇怪的BUG也要少一点 ...
- 图片滚动js代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...
- jQuery.extend函数
http://www.cnblogs.com/luckboy/archive/2009/06/25/1510870.html 1.扩展jQuery静态方法. 1$.extend({ 2test:fun ...