Java 程序调试技巧:-verbose, -Xlint, jconsole,-Xprof

欢迎跳转到本文原文链接Backend_Notes

以下程序调试技巧节选自 Java 核心技术卷一(p307-p308)

  • 可以通过捕获异常来生成堆栈信息,也可以直接使用 Thread.dumpStack()来获得堆栈信息

  • 要观察类的加载过程,可以使用 -verbose标志启动 JVM

  • -Xlint 可以告诉编译器对一些普遍容易出现的代码问题进行检测,如javac -Xlint:fallthrough

    • -Xlint 或 -XLint:all – 执行所以检查
    • -Xlint:deprecation – 检查废弃方法
    • -Xlint:fallthrough – 检查 switch 语句是否缺少 break 语句
    • -Xlint:finally – 警告 finally 子句不能正常执行
    • -Xlint:none – 不执行任何检查
    • -Xlint:serial – 警告没有 serialVersionUID 的串行化类
    • -Xlint:unchecked – 对通用类型与原始类型之间的危险转换给予警告
    • -Xlint:path – 检查类路径与源代码路径上所有目录是否存在
  • Java 虚拟机增加了对 Java 应用程序进行监控 monitoring 和管理 management 的支持,我们可以通过以下两个命令来使用,更多详情可以查看Using JConsole to Monitor Applications

    • jconsole 启动jconsole

    • jconsole processID 启动对应进程程序的监控,启动后如图:

    jconcole

  • 可以通过 jmap 工具获得一个堆堆转储,其中显示了堆中的每个对象

  • 可以通过 -Xprof 标志运行 Java 虚拟机,这会运行一个基本的剖析器来跟踪哪些代码中经常被调用的方法。输出结果中还会显示哪些方法是即时编译器编译的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值