编程技术分享平台

网站首页 > 技术教程 正文

JVM调优工具介绍(3)

xnh888 2025-01-14 18:14:01 技术教程 42 ℃ 0 评论

JVM调优是java开发实践中的一大重点和难点,许多程序员在开发过程中碰到过jvm调优的难题,但是熟悉一款强大的java调优工具可以令开发工作事半功倍,java调优工具除了我们前面介绍的jinfo、jmap之外还有很多。本篇来继续介绍几款其他的jvm调优工具。

1、 jstack:java堆栈跟踪工具

jstatck(Stack Trace for Java)命令用于生成虚拟机当前时刻的线程快照(threaddump或者javacore文件),线程快照是当前虚拟机内每一条线程正在执行的堆栈的集合,生成线程快照的目的通常是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间挂起等,都是导致线程出现长时间停顿的常见原因,线程出现停顿时通过jstack来查看各个线程的调用栈,就可以知道没有响应的线程在后台干什么,或者等待什么资源,jstack的命令格式如下:

jstack [option] vmid

option选项的合法值与具体含义如表4-4所示:

选项

作用

-F

当正常输出的请求不被响应时,强制输出线程堆栈

-l

除了堆栈外,显示关于锁的附加信息

-m

如果调用到本地方法的话,可以显示C/C++的堆栈

表:4-4

从jdk5起,java.lang.Thread类新增了一个getAllStackTraces()的方法用于获取虚拟机中所有线程的StackTraceElement对象,使用这个方法可以通过简单的几行代码就可以实现jstack的大部分功能,在实际项目中不妨调用这个方法做个管理员,可以使用浏览器来查看线程堆栈,如代码清单4-5所示。



2、 基础工具总结:

其实除了以上介绍的这些工具之外,java还有很多jdk附带的工具,如图4-7所示,这些工具已经拥有了很长的历史,并且有些工具已经被java移除了。在更高版本的jadk中,这些工具已经拥有了功能强大的替代品,譬如:JCMD、JHSDB的命令行模式,但使用方法也是相似的,无论jdk发展到了什么版本,学习这些基础的工具命令都对自己了解java有很大的帮助。

基础工具:用于支持基本的程序运行和创建(表4-7)。

名称

主要作用

appletviewer

在不使用web浏览器的情况下运行和调试Applet、JDK11中移除。

extcheck

检查jar包冲突工具,jdk9中被移除。

jar

创建和管理jar文件

java

java运行工具,用于运行class文件或者jar文件

javac

用于java编程语言的编译器

javadoc

java的api文档生成器

javah

c语言头文件和sub函数生成器,用于编写JNI方法。

javap

java字节码分析工具。

jlink

将Module和它的依赖打包成一个运行时镜像文件。

jdb

基于JPDA协议的调试器,以类似于GDB的方式进行调试Java代码。

jdeps

java类依赖性分析器。

jdeprscan

用于搜索JAR包中使用了"deprecated"的类,从JDK9开始提供。

表4-7

安全:用于程序签名,设置安全测试等(见表4-8)


名称

主要作用

keytool

管理密钥库和证书、主要用于获取或缓存kerbeors协议的票据授权票据,允许用户查看本地凭据缓存和密钥表中的条目(用于kerberos协议)。

jarsigner

生成并验证JAR签名。

policytool

管理策略文件的GUI工具,用于管理用户策略文件(.java.policy)。在JDK10中被移除。

表4-8

国际化:用于创建本地语言文件,详见表4-9

名称

主要作用

native2ascii

本地编码到ASCII编码的转换器(native-to-ASCII Converter),"用于任意支持的字符编码"和与之对应的"ascii编码和Unicode转义"之间的相互转换。

表4-9

远程方法调用:用于跨web或者网络的服务交互,见表4-10

名称

主要作用

mic

Java RMI编译器,为使用JRMP或者HOP协议的远程对象生成stub、skeleton和tie类,也用于生成OMG IDL

rmiregistry

远程对象注册表服务,用于在当前主机的指定端口上创建

rmid

启动激活系统守护进程,允许在虚拟机中注册或者激活对象

serialver

生成并返回指定类的序列化版本id

java还有许多的其他基础开发工具,我们下篇接着介绍。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表