手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

JVM中常用堆栈跟踪内建指令

[日期:2018-01-29] 来源:Linux社区  作者:jim123 [字体: ]

在使用Java的程序中难免会遇上程序异常的现象,此时就可以使用JDK下的jstack和jmap来跟踪观察JVM中的内存堆栈信息用以分析,不过注意的是如果是在Windows版本或者是开源版中一般都是没有的,如果需要使用需要安装相应的开发调试工具,下面就简单的说一说:

jstack 一般而言之后跟着都是Java程序运行的pid或者是相应的Java代码文件,如:jstack $pid,平时可以把相关的堆栈信息再导出到某一个文件中正用以进一步观察,如:jstack $pid > file.dump

jmap 同jstack的功能效果是差不多的,不过相比而言它会更为的强大一些,同样它之后也是跟着Java程序运行的pid,但是它还有一些参数选项:

默认是没有带这些参数选项的,仅能打印一些简单的信息
-heap    用于打印Java的堆栈的摘要信息
-histo[:live]    用于打印堆栈的实时信息,常用于堆栈的实时跟踪
-clstats    用于打印Java中的类加载的信息
-finalizerinfo    用于打印关于等待确定的对象的信息
-dump:<dump-options>    把相关的堆栈信息dump至二进制文件中用于开发调试工具中使用,如:jmap -dump:format=b,file=Java_jmp.bin $pid
-F    该选项跟着-dump选项一起使用,表示在dump出的二进制文件中不打印打印堆栈的实时信息,但是其他的信息都有打印
-J<flag>    将标志传给Java程序,即在做断点

总之在Java的程序发生异常的时候利用其中相关的堆栈跟踪内建指令都能很好的排查其中的问题

本文永久更新链接地址http://www.linuxidc.com/Linux/2018-01/150652.htm

linux
相关资讯       JVM  堆栈指令 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款