zoukankan      html  css  js  c++  java
  • JAVA-虚拟机(3)-调优

    1,虚拟机调优工具

    【1】jconsole

    【2】jvisualvm

    【3】Memory Analyzer 

        参考:http://blog.csdn.net/fenglibing/article/details/6298326

    2,Sun JDK监控和故障处理命令

    【1】jps

        JVM Process Status Tool,显示指定系统内所有的HotSpot虚拟机进程。

        命令:jps [options] [hostid]

        options参数:

        -l : 输出主类全名或jar路径

        -q : 只输出LVMID

        -m : 输出JVM启动时传递给main()的参数

        -v : 输出JVM启动时显示指定的JVM参数

    【2】jstat

      JVM statistics Monitoring是用于监视虚拟机运行时状态信息的命令,它可以显示出虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据.

      命令:jstat [option] LVMID [interval] [count]

      参数:

        [option] : 操作参数

        LVMID : 本地虚拟机进程ID

        [interval] : 连续输出的时间间隔

        [count] : 连续输出的次数

      参考:http://www.importnew.com/23761.html

    【3】jmap

       JVM Memory Map)命令用于生成heap dump文件,如果不使用这个命令,还阔以使用-XX:+HeapDumpOnOutOfMemoryError参数来让虚拟机出现OOM的时候·

       自动生成dump文件。 jmap不仅能生成dump文件,还阔以查询finalize执行队列、Java堆和永久代的详细信息,如当前使用率、当前使用的是哪种收集器等。

       命令:jmap [option] LVMID

       option参数:

        dump : 生成堆转储快照

        finalizerinfo : 显示在F-Queue队列等待Finalizer线程执行finalizer方法的对象

        heap : 显示Java堆详细信息

        histo : 显示堆中对象的统计信息

        permstat : to print permanent generation statistics

        F : 当-dump没有响应时,强制生成dump快照

    【4】jhat

        JVM Heap Analysis Tool命令是与jmap搭配使用,用来分析jmap生成的dump,jhat内置了一个微型的HTTP/HTML服务器,生成dump的分析结果后,

        可以在浏览器中查看。在此要注意,一般不会直接在服务器上进行分析,因为jhat是一个耗时并且耗费硬件资源的过程,一般把服务器生成的dump文件

        复制到本地或其他机器上进行分析。

        命令:jhat [dumpfile]

    【5】jstack

            jstack用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位

        线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。 线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,

        就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack

        和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行的java程序中,看到

        当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的。

        命令:jstack [option] LVMID

        option参数:  

          -F : 当正常输出请求不被响应时,强制输出线程堆栈

          -l : 除堆栈外,显示关于锁的附加信息

          -m : 如果调用到本地方法的话,可以显示C/C++的堆栈

        参考:http://www.hollischuang.com/archives/110

    【6】jinfo

        JVM Configuration info)这个命令作用是实时查看和调整虚拟机运行参数。 之前的jps -v口令只能查看到显示指定的参数,

        如果想要查看未被显示指定的参数的值就要使用jinfo口令.

        命令:jinfo [option] [args] LVMID

        option参数:

          -flag : 输出指定args参数的值

          -flags : 不需要args参数,输出所有JVM参数的值

          -sysprops : 输出系统属性,等同于System.getProperties()

    3,Tomcat调优

          参考:http://www.importnew.com/23774.html 

    4,Eclipse调优

      参考:http://www.importnew.com/23774.html

  • 相关阅读:
    GDB编辑、搜索源码以及在线帮助
    GDB查看栈信息
    GDB信号处理
    GDB反向调试
    GDB调试多进程程序
    GDB后台调试命令
    GDB non-stop模式
    GDB调试多线程程序
    GDB禁用删除断点
    解决Mac OS下Eclipse、IntelliJ IDEA打开其他窗口默认全屏
  • 原文地址:https://www.cnblogs.com/wanhua-wu/p/6618459.html
Copyright © 2011-2022 走看看