当我们运行java程序时,发现程序不动,但又不知道是哪里出问题时,可以使用JDK自带的jstack工具去定位; 废话不说,直接上例子吧,在window平台上的; 死循环 写个死循环的程序如下: 先运行以上程序,程序进入死循环; 打开cmd,输入jps命令,jps很简单可以直接显示java进程的pid ...
分类:
编程语言 时间:
2016-04-11 12:08:10
阅读次数:
164
转: https://www.zhihu.com/question/39139518 http://www.jcp.org/en/jsr/detail?id=133 Java内存模型 jps, jstack, jmap, jconsole, jinfo, jhat, javap, … BTrace ...
分类:
编程语言 时间:
2016-03-23 21:58:06
阅读次数:
455
JVM本身提供了一组管理的API,通过该API,我们可以获取得到JVM内部主要运行信息,包括内存各代的数据、JVM当前所有线程及其栈相关信 息等等。各种JDK自带的剖析工具,包括jps、jstack、jinfo、jstat、jmap、jconsole等,都是基于此API开发的。本篇对 这部分内容进行
首先,编写一个死锁程序 程序运行结果是: 接下来在终端中输入jsp查看当前运行的java程序: 获取testJstack的进程ID为7480.然后使用命令: 将jstack检测结果放入文件deadlock.jstack。使用vim查看该文件:
分类:
编程语言 时间:
2016-03-13 22:28:19
阅读次数:
261
获取进程号使用命令:jps常用参数:-m输出传递给main方法的参数,如果是内嵌的JVM则输出为null。-l输出应用程序主类的完整包名,或者是应用程序JAR文件的完整路径。-v输出传给JVM的参数。示例:线程栈的获取使用命令:jstack,通常使用管道将信息输出到文件,便于分析常用参数..
分类:
编程语言 时间:
2016-03-08 00:48:56
阅读次数:
412
原文链接: http://my.oschina.net/feichexia/blog/196575 现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 ....
分类:
Web程序 时间:
2016-03-02 22:08:24
阅读次数:
456
在长期排查线上问题的过程中,总结了一些工具的用法和排查问题的思路,这里跟大家分享一下,在遇到类似的问题时,希望能给予一些帮助。 首先讲讲工具, jvm 自带的一些工具是必须熟练掌握的,例如jstack, jmap, jstat等,它们可以帮我们去深入了解JVM正在做的事情,主要的适用领域有这些: 1
分类:
编程语言 时间:
2016-02-26 20:26:49
阅读次数:
206
C:\Program Files\Java\jdk1.7.0_45\bin\jstack.exe 1、任务管理器:进程选择PID 2、命令行执行 cd C:\Program Files\Java\jdk1.7.0_45\bin jstack.exe jstack -l 964(启动-l可选,添加后输
分类:
编程语言 时间:
2016-02-20 20:18:14
阅读次数:
355
在Java软件的使用过程中,有时会莫名的出现奇怪的问题。而这些问题常常无法使用日志信息定位,这时我们就需要通过查看进程内部线程的堆栈调用关系来分析问题出在哪里。 举个例子,当我们在做某个操作时,莫名的会弹出多个警告框,其中有些信息是正常的,有些则不是。对于这些错误的警告信息,我们该如何定位是哪...
分类:
编程语言 时间:
2016-01-06 23:19:03
阅读次数:
141