安装java的时候一般会安装JDK而不是JRE。其中一个原因就是JDK/bin目录下附送很多的工具,有助于定位java相关问题。
- visualVM
非常好的工具!可以看到分代内存的使用情况、线程的CPU使用率、类的内存使用情况。基本上做性能测试必须这个软件的。另外,安装visual gc插件后可以看到垃圾回收的情况,强烈建议安装visual gc插件。
内存情况:
线程情况:
安装visual gc插件后的情况:
不过,这个工具很多时候都只会在研发、测试环境上运行。生成环境是不会跑这个工具的。因为一、跑这个工具很耗费CPU、内存;其次,这个工具只在windows平台上跑,linux上只会通过jmap命令得知内存情况(很多时候通过ssh登录,怎么会有这么漂亮的界面咧)。
- jar
man这个命令说明:combines multiple files into a single JAR archive file。很多时候都用编译器打包的了。写脚本时候可能用到,其他很多时间用不上。。。
- jarsigner
Signs and verifies Java Archive (JAR) files 基本上也不用的。。。
- java
运行.class文件需要用到这个工具。这个工具有很多参数, 部分必须了解。
-classpath :增加一些依赖文件的路径
调内存:
参数
|
说明
|
例子 |
-Xss
|
stack的最大大小
|
-Xss128K
|
-Xms
|
heap的初始化size
|
|
-Xmx
|
heap的最大size
|
-Xmx16M
|
-Xmn
|
年轻代(survivor*2 + eden)的大小
|
|
-XX:PermSize
|
p区的初始化size
|
|
-XX:MaxPermSize
|
p区的最大size
|
-XX:MaxPermSize=10M
|
-XX:MaxDirectMemorySize
|
direct memory最大值
|
-XX:MaxDirectMemorySize=10M
|
调gc策略:
参数
|
说明
|
例子
|
-XX:+UseConcMarkSweepGC
|
使用cms垃圾收集器
|
|
‑XX:+CMSClassUnloadingEnabled
|
cms 回收perm区
|
记录coredump:
-XX:-HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/home/Javin/Desktop/oom_dump.hprof
- javac
- javadoc
- javah
- javap
- jcmd
- jconsole
- jdb
- jexec
- jhat
- jinfo
- jmap
- jps
- jrunscript
- jsadebugd
- jstack
- jstat
- jstatd