一、运行程序TestGC

二、用jps找出当前应用的进程号PID
 到jdk安装目录的bin目录下输入: jps -l

PID为1264

三、启动Process Explorer(下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/process-explorer)
1.找到PID为1264的进程,右键properties
2.看到该进程的所有线程的性能排序
3.找到名字为javaw.exe(eclipse启动)的两个线程,线程TID:10440,10308,其他为jvm线程可能是GC线程

四、jtack工具收集该进程日志
1.命令输入:jstack 1264 >1264.out

2.bin目录发现,已经保存该日志文件了

3.打开1264.out看到线程运行情况,线程ID是十六进制的

4.把上面找到排名靠前的TID:10440,10308,转成16进制为:

5.在日志中搜索该TID,找到对应代码

大功告成!

测试类如下:

package main.sort;

import java.util.ArrayList;

import javax.print.attribute.standard.MediaName;

public class TestGC {

    public static void main(String[] args) {
byte[] array=new byte[1024*64];
ArrayList<byte[]> list=new ArrayList<byte[]>();
new Thread(new MyThread()).start(); while(true){
list.add(array);
try {
Thread.sleep(200);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} } }
package main.sort;

public class MyThread implements Runnable{

    @Override
public void run() {
// TODO Auto-generated method stub
testStack();
} public void testStack(){
try {
Thread.sleep(200);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
testStack();
}
}

jvm系列六、windows用jdk自带工具jps、jstack找出性能最差的代码的更多相关文章

  1. jvm性能监控(3)-jdk自带工具 jps jstack jmap

    一.概要: jps -l 查看现有的java进程 jps -l 显示所有正在运行的java进程id   jstack 查看Java线程      jstack -l pid; 做thread dump ...

  2. JDK自带工具jps,jstat,jmap,jconsole使用

    jps 与ps命令类似: ps -ef|grep java 用来显示本地的java进程,查看本地执行着几个java应用,并显示进程号. [root@SE43 ~]# jps //仅仅显示进程号 238 ...

  3. 利用JDK自带工具监控JVMCPU和内存指标

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  4. JDK自带工具keytool生成ssl证书

    前言: 因为公司项目客户要求使用HTTPS的方式来保证数据的安全,所以木有办法研究了下怎么生成ssl证书来使用https以保证数据安全. 百度了不少资料,看到JAVA的JDK自带生成SSL证书的工具: ...

  5. jvm系列(六):jvm调优-工具篇

    ## jdk自带的工具### jconsole Jconsole(Java Monitoring and Management Console)是从java5开始,在JDK中自带的java监控和管理控 ...

  6. jvm系列(六):Java服务GC参数调优案例

    本文介绍了一次生产环境的JVM GC相关参数的调优过程,通过参数的调整避免了GC卡顿对JAVA服务成功率的影响. 这段时间在整理jvm系列的文章,无意中发现本文,作者思路清晰通过步步分析最终解决问题. ...

  7. JDK自带工具一览表。妈妈再也不用担心你到处去下载小软件了~~

    原来JDK早早就给我准备好了要用到的工具..反编译,JVM性能监视.诊断. JDK(Java Development Kit)是Java程序员最核心的开发工具,没有之一. JDK是一个功能强大的Jav ...

  8. [转]JDK自带工具之问题排查场景示例

    最近看到了大量关于java性能调优.故障排查的文章,自己也写了一篇Java调优经验谈.接着此篇文章,其实一直打算写写一些常用调优工具以及它们的惯常用法的.后来在http://java-performa ...

  9. JDK自带工具之问题排查场景示例

    最近看到了大量关于java性能调优.故障排查的文章,自己也写了一篇< Java调优经验谈 >.接着此篇文章,其实一直打算写写一些常用调优工具以及它们的惯常用法的.后来在http://jav ...

随机推荐

  1. 本地Git与GitHub服务器建立连接(SSH方式通信)

    简介 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要 ...

  2. 应用程序发生异常 unknown software exception (0xc00000fd)... - 栈溢出(Stack overflow)

    今天在写程序的时候,弹出这样的提示对话框: 应用程序发生异常 unknown software exception (0xc00000fd): 相关代码是这样,在一个函数中读取一个csv文件,先根据这 ...

  3. Failed to load because no supported source was found

    Uncaught (in promise) DOMException: Failed to load because no supported source was found? 等待解决:

  4. (大数 万进制) N! hdu1042

    N! Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Subm ...

  5. 十二、java_网络编程

    目录: 一.网络基础 二.TCP/IP协议 三.IP地址 四.Socket通信 一.网络基础 什么是计算机网络: 把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大.功能强的网络系 ...

  6. C# WinForm文章收集

    DataGridView 使用方法集锦 https://blog.csdn.net/zhaoyu_m69/article/details/70307934 关于DataGridView的一些操作(很全 ...

  7. JavaEE学习总结(十六)— Servlet

    一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...

  8. 【转】LR分析法

    转自:http://guanjy0129.blog.163.com/blog/static/1115494452010614113333509/ LR分析法的归约过程是规范推导的逆过程,所以LR分析过 ...

  9. C# 窗体内有子控件时鼠标检测

    public partial class FormPop : Form { public FormPop() { InitializeComponent(); } private void FormP ...

  10. 02、@PropertySource指定配置文件的属性映射到JavaBean属性

    零.@PropertySource 功能类似于 <context:property-placeholder location="classpath*:/config/load.prop ...