`
liudeh_009
  • 浏览: 243316 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java性能调优工具

    博客分类:
  • jvm
阅读更多

一.  jps:显示当前用户的java进程的pid,进程的启动路径等.,jps的优点是能迅速的找到java相关的进程,缺点是只能查看 当前用户的java进程,查看系统上所有的java进程,还是得用ps -ef | grep java.

    常用参数示例:

    jps -l   输出应用程序main class的package名或者应用程序的jar文件路径名

     D:\>jps -l

        6064 test.jar

        4804 sun.tools.jps.Jps

     

      jps -v      输出应用程序启动的时候传递给JVM的参数

      D:\>jps -v

         6064 jar

         5336 Jps -Denv.class.path=.;D:\Program files\jdk1.6\lib; -Dapplication.home=D:\Program

         files\jdk1.6 -Xms8m

       更多参数及其含义:http://docs.oracle.com/javase/6/docs/technotes/tools/share/jps.html

 

二.  jstat.利用了JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控等等.

       常用参数示例:

 

      D:\>jstat -gcutil 6064 10000 3       统计gc时,heap信息变化情况

      S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT

     97.93   0.00  26.39  86.29   2.95   26    0.153     4    0.465    0.618

     97.93   0.00  55.49  86.29   2.95   26    0.153     4    0.465    0.618

     97.93   0.00  84.59  86.29   2.95   26    0.153     4    0.465    0.618

 

         

       10000 代表多久间隔显示一次,

        3 代表显示多少次。

       S0  — Heap上的 Survivor space 0 区已使用空间的百分比

       S1  — Heap上的 Survivor space 1 区已使用空间的百分比

       E   — Heap上的 Eden space 区已使用空间的百分比

       O   — Heap上的 Old space 区已使用空间的百分比

       P   — Perm space 区已使用空间的百分比

       YGC — 从应用程序启动到采样时发生 Young GC 的次数

       YGCT– 从应用程序启动到采样时 Young GC 所用的时间(单位秒)

       FGC — 从应用程序启动到采样时发生 Full GC 的次数

       FGCT– 从应用程序启动到采样时 Full GC 所用的时间(单位秒)

       GCT — 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)

       更多参数及其含义:

        http://docs.oracle.com/javase/6/docs/technotes/tools/share/jstat.html

 

.jstack: jstack可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现死锁的状态,jstack是非常有用的.

     D:\>jstack -l 5808 > jstack.log   打印出log会包含jvm运行的一些系统线程和用户的线程栈信息.

     下面截取部分用户线程的栈信息:

       "main" prio=6 tid=0x00549400 nid=0x163c waiting on condition [0x003bf000..0x003bfe30]

        java.lang.Thread.State: TIMED_WAITING (sleeping)

         at java.lang.Thread.sleep(Native Method)

         at com.ldh.GCTest.main(GCTest.java:12)

 

        Locked ownable synchronizers:

         - None

        从上面可以看出线程"main"的正在sleep

      

        D:\>jstack -m 5752 > jstack.log 不仅打印java栈信息,还会打印出通过jni调用的接口栈信息

         不过需要在linux执行才会有结果

       

        jvm常用线程,参见:http://blog.csdn.net/a43350860/article/details/8134234

        更多参数及其含义:http://docs.oracle.com/javase/1.5.0/docs/tooldocs/share/jstack.html

  

四. jmap: 打印出某个java进程(使用pid)内存内的所有‘对象’的情况(如:产生那些对象,及其数量),以及Heap size, Perm size的大小等。

       通过在VM参数后加-XX:+HeapDumpOnOutOfMemoryError -

XX:HeapDumpPath=/home/admin/logs/java.hprof ,在内存溢的时候会dump内存快照及指定内存快照的存储文件.也可以通过命令行dump命令执行时的内存快照.

      示例如下: 

      D:\>jmap -dump:format=b,file=D:/dump.log 5752

           Dumping heap to D:\dump.log ...

           Heap dump file created

     D:/dump.log的内容是二进制的,直接打开查看是不行的,可以通过mat进行查看,

     mat的下载地址:http://www.eclipse.org/mat/.mat分析的内容非常详细.

 

五.jconsole:jconsole是jdk自带的一个内存分析工具,它提供了图形界面。可以查看到被监控的jvm的内存信息,线程信息,类加载信息,MBean等信息。在java的安装目录的bin目标下.

 

六.jvisualvm:   它不但提供了jconsole类似的功能,还提供了jvm内存和cpu实时诊断,还有手动dump出jvm内存情况,手动执行gc.

 

 

 

 

 

 

 

 

    

 

 

分享到:
评论

相关推荐

    Java性能调优工具简介

    Java性能调优工具简介,包括Linux系统层面的调优工具介绍和java层面调优的工具介绍

    Java性能调优工具及方法介绍

    Java性能调优工具及方法介绍 可配合工具用于内存泄漏问题快速排查

    阿里+Java+开发手册、阿里巴巴Java性能调优实战

    阿里巴巴作为全球领先的科技企业,在Java开发和性能调优方面积累了丰富的实践经验,并将这些知识和经验总结提炼,编写成了《阿里+Java+开发手册、阿里巴巴Java性能调优实战》两本专业书籍。它们分别以嵩山版和华山版...

    java性能调优工具命令大全.zip

    jvm性能调优工具命令大全.zip jps jstat jmap jhat jstack jinfo jps JVM Process Status Tool GChisto jvisualvm ...

    Java性能调优大全

    这份“Java性能调优大全”提供了全面的指南,包括VisualVM的使用、JVM的性能优化、OMM(可能是指Oracle Management Monitor)的场景、jstat工具的详细解析以及性能分析工具的比较和内存溢出问题的解决方案。...

    Java 性能调优 Java 性能调优 Java 性能调优

    ### Java性能调优概述 #### 一、性能优化的重要性与基本概念 在现代软件开发中,性能优化是一项至关重要的任务。对于Java开发者来说,优化不仅仅意味着让程序运行更快,还包括了减少内存消耗、提高响应速度等多个...

    Java性能调优命令

    以下是一些常用的Java性能调优命令及其用法和相关知识点。 1. jps命令用于列出所有的JVM实例。通过该命令,开发者可以快速查看本机上所有Java应用程序的进程ID。例如,使用`jps`可以列出本机所有的JVM实例。 2. ...

    Java性能调优PPT

    ### Java性能调优知识点概述 #### 一、高性能Java代码编写原则 - **算法与数据结构**:选择合适的数据结构可以极大地提升程序运行效率。例如,对于查找操作频繁的场景,哈希表(如`HashMap`)比链表或数组更高效。...

    阿里巴巴Java性能调优实战(2021华山版).rar

    《阿里巴巴Java性能调优实战(2021华山版)》是一本专注于Java应用程序性能优化的专业书籍,由阿里巴巴的技术专家团队倾力打造。这本书基于阿里巴巴的实际业务场景,结合丰富的实践经验,为Java开发者提供了深入、...

    47-Java性能调优实战.zip

    本专题“47-Java性能调优实战”聚焦于电商系统的分布式事务处理,旨在帮助开发者掌握如何有效地解决内存持续上升的问题以及优化网络通信和NIO实现。 首先,内存持续上升是Java应用中常见的性能问题,可能导致系统...

    阿里巴巴java性能调优实战手册

    《阿里巴巴java性能调优实战手册》便是为了解决这一难题,向Java开发者们提供了一套实战指南,帮助他们提升软件性能和稳定性。 作者在书中开篇即以自己的故事带入,描述了在大型项目中遇到的性能瓶颈,以及通过与...

    Java性能调优指南.pptx

    【Java性能调优指南】 在Java开发中,性能调优是一项关键任务,它涉及到程序运行效率、资源利用和系统稳定性。本指南主要关注Java虚拟机(JVM)调优、编码最佳实践以及微基准测试的重要性。 **基本规则** 1. **...

    java性能调优及原理介绍.rar

    总结,Java性能调优是一个涉及广泛且深度的领域,需要综合运用各种工具和策略,从JVM配置到代码优化,再到数据库和系统层面的调整。这份资料全面详尽地介绍了相关知识,对于Java开发者来说是一份宝贵的参考资料。

    JAVA性能调优实战,这篇就够了

    Java性能调优是Java开发中不可或缺的一项技能,尤其在高并发、大数据量的互联网环境中,系统的性能优化至关重要。本文将从实战角度出发,探讨如何通过深入理解和应用Java底层源码来提升系统性能。 首先,要成为一名...

    java性能调优文档(sun)

    ### Java性能调优知识点 #### 一、概述 在《Sun Java System Application Server Enterprise Edition 8.2 Performance Tuning Guide》这份文档中,主要介绍了如何针对Sun Java System Application Server ...

    Java应用性能监控和调优(思维导图)

    将视频整合成为思维导图,看着方便,节省时间。 内容包括:(1)基于JDK命令后工具的监控(2)基于Btrace的监控调试...(4)java代码层优化(5)JVM层GC调优(6)基于JVisualVM的可视化监控(7)tomcat性能监控和调优

    HP-UX Java性能调优白皮书(日文版)

    2. 学习如何使用HP-UX提供的工具和命令进行Java性能调优。 3. 掌握如何配置Java支持,包括线程管理、文件打开限制、超时设置。 4. 掌握使用HPjconfig和HPjmeter等HP-UX专用工具进行系统参数调整和性能瓶颈检测。 5. ...

    Java性能调优 6步实现项目性能升级

    Java性能调优是每个开发人员都需要掌握的关键技能,特别是在大型企业级应用中,优化性能能够显著提高系统的响应速度,减少资源消耗,提升用户体验。本文将深入探讨标题和描述中提到的六大调优专题:数据库、Tomcat...

Global site tag (gtag.js) - Google Analytics