• Java命令使用 jmap,jps,jstack,jstat,jhat,jinfo


    Jmap:可以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小等等

    Jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。

    使用方法 jmap -histo pid。如果使用SHELL ,可采用jmap -histo pid>a.log日志将其保存到文件 中,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。jmap -dump:format=b,file=outfile 3024可以 将3024进程的内存heap输出出来到outfile文件里,再配合MAT(内存分析工具)。

    Code:

    D:Program FilesJavajdk1.8.0_102in              
    $ jmap -heap 47960                                  
    Attaching to process ID 47960, please wait...       
    Debugger attached successfully.                     
    Server compiler detected.                           
    JVM version is 25.102-b14                           
                                                        
    using thread-local object allocation.               
    Parallel GC with 4 thread(s)                        
                                                        
    Heap Configuration:                                 
       MinHeapFreeRatio         = 0                     
       MaxHeapFreeRatio         = 100                   
       MaxHeapSize              = 734003200 (700.0MB)   
       NewSize                  = 42991616 (41.0MB)     
       MaxNewSize               = 244318208 (233.0MB)   
       OldSize                  = 87031808 (83.0MB)     
       NewRatio                 = 2                     
       SurvivorRatio            = 8                     
       MetaspaceSize            = 21807104 (20.796875MB)
       CompressedClassSpaceSize = 1073741824 (1024.0MB) 
       MaxMetaspaceSize         = 17592186044415 MB     
       G1HeapRegionSize         = 0 (0.0MB)             
                                                        
    Heap Usage:                                         
    PS Young Generation                                 
    Eden Space:                                         
       capacity = 32505856 (31.0MB)                     
       used     = 19961640 (19.036903381347656MB)       
       free     = 12544216 (11.963096618652344MB)       
       61.40936574628276% used                          
    From Space:                                         
       capacity = 5242880 (5.0MB)                       
       used     = 4268096 (4.07037353515625MB)          
       free     = 974784 (0.92962646484375MB)           
       81.407470703125% used                            
    To Space:                                           
       capacity = 5242880 (5.0MB)                       
       used     = 0 (0.0MB)                             
       free     = 5242880 (5.0MB)                       
       0.0% used                                        
    PS Old Generation                                   
       capacity = 87031808 (83.0MB)                     
       used     = 16867360 (16.085968017578125MB)       
       free     = 70164448 (66.91403198242188MB)        
       19.380684358527862% used                         
                                                        
    5691 interned Strings occupying 486856 bytes.       

    https://www.cnblogs.com/qlqwjy/p/7953491.html

    jps:显示当前所有java进程pid的命令,简单实用

    D:Program FilesJavajdk1.8.0_102in
    $ jps
    15856 RemoteMavenServer
    17412 Jps
    47960 Launcher
    5224

    jstack:

    jstack用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。

    线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。

    如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。

    另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的。

    So,jstack命令主要用来查看Java线程的调用堆栈的,可以用来分析线程问题(如死锁)。

    D:Program FilesJavajdk1.8.0_102in
    $ jstack 15856
    2018-03-21 14:31:40
    Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.102-b14 mixed mode):
    ......

    具体:

    D:Program FilesJavajdk1.8.0_102in
    $ jstack 15856
    2018-03-21 14:31:40
    Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.102-b14 mixed mode):
    
    "RMI RenewClean-[localhost:2913]" #18 daemon prio=5 os_prio=0 tid=0x0000000016d52800 nid=0x1284 in Object.wait() [0x0000000017a7e000]
       java.lang.Thread.State: TIMED_WAITING (on object monitor)
            at java.lang.Object.wait(Native Method)
            at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
            - locked <0x00000000d00fbc40> (a java.lang.ref.ReferenceQueue$Lock)
            at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:553)
            at java.lang.Thread.run(Thread.java:745)
    
    "RMI Scheduler(0)" #17 daemon prio=5 os_prio=0 tid=0x0000000016d50000 nid=0x27d4 waiting on condition [0x000000001797e000]
       java.lang.Thread.State: TIMED_WAITING (parking)
            at sun.misc.Unsafe.park(Native Method)
            - parking to wait for  <0x00000000d0010a50> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
            at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
            at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
            at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
            at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
            at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
            at java.lang.Thread.run(Thread.java:745)
    
    "GC Daemon" #14 daemon prio=2 os_prio=-2 tid=0x0000000016b8f000 nid=0x421c in Object.wait() [0x000000001757f000]
       java.lang.Thread.State: TIMED_WAITING (on object monitor)
            at java.lang.Object.wait(Native Method)
            at sun.misc.GC$Daemon.run(GC.java:117)
            - locked <0x00000000d0009450> (a sun.misc.GC$LatencyLock)
    
    "RMI Reaper" #13 prio=5 os_prio=0 tid=0x0000000016b8e000 nid=0x3b18 in Object.wait() [0x000000001747f000]
       java.lang.Thread.State: WAITING (on object monitor)
            at java.lang.Object.wait(Native Method)
            at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
            - locked <0x00000000d00014d0> (a java.lang.ref.ReferenceQueue$Lock)
            at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
            at sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:351)
            at java.lang.Thread.run(Thread.java:745)
    
    "RMI TCP Accept-0" #12 daemon prio=5 os_prio=0 tid=0x0000000016b8d800 nid=0x4890 runnable [0x000000001737e000]
       java.lang.Thread.State: RUNNABLE
            at java.net.DualStackPlainSocketImpl.accept0(Native Method)
            at java.net.DualStackPlainSocketImpl.socketAccept(DualStackPlainSocketImpl.java:131)
            at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
            at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:199)
            - locked <0x00000000d000f990> (a java.net.SocksSocketImpl)
            at java.net.ServerSocket.implAccept(ServerSocket.java:545)
            at java.net.ServerSocket.accept(ServerSocket.java:513)
            at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:400)
            at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:372)
            at java.lang.Thread.run(Thread.java:745)
    
    "RMI TCP Accept-33846" #11 daemon prio=5 os_prio=0 tid=0x00000000160a0000 nid=0x2ee8 runnable [0x0000000016a7e000]
       java.lang.Thread.State: RUNNABLE
            at java.net.DualStackPlainSocketImpl.accept0(Native Method)
            at java.net.DualStackPlainSocketImpl.socketAccept(DualStackPlainSocketImpl.java:131)
            at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
            at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:199)
            - locked <0x00000000d0016fd8> (a java.net.SocksSocketImpl)
            at java.net.ServerSocket.implAccept(ServerSocket.java:545)
            at java.net.ServerSocket.accept(ServerSocket.java:513)
            at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:400)
            at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:372)
            at java.lang.Thread.run(Thread.java:745)
    
    "Service Thread" #9 daemon prio=9 os_prio=0 tid=0x0000000015ef7800 nid=0x2538 runnable [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
    
    "C1 CompilerThread2" #8 daemon prio=9 os_prio=2 tid=0x0000000015eb2000 nid=0x2534 waiting on condition [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
    
    "C2 CompilerThread1" #7 daemon prio=9 os_prio=2 tid=0x0000000015e7b000 nid=0x45b0 waiting on condition [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
    
    "C2 CompilerThread0" #6 daemon prio=9 os_prio=2 tid=0x0000000015e79000 nid=0x2500 waiting on condition [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
    
    "Attach Listener" #5 daemon prio=5 os_prio=2 tid=0x0000000014abd800 nid=0x2530 waiting on condition [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
    
    "Signal Dispatcher" #4 daemon prio=9 os_prio=2 tid=0x0000000014a71800 nid=0x24fc runnable [0x0000000000000000]
       java.lang.Thread.State: RUNNABLE
    
    "Finalizer" #3 daemon prio=8 os_prio=1 tid=0x0000000002cee800 nid=0xcac in Object.wait() [0x0000000015dbf000]
       java.lang.Thread.State: WAITING (on object monitor)
            at java.lang.Object.wait(Native Method)
            at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
            - locked <0x00000000d0009eb0> (a java.lang.ref.ReferenceQueue$Lock)
            at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
            at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)
    
    "Reference Handler" #2 daemon prio=10 os_prio=2 tid=0x0000000002ce5000 nid=0x32e0 in Object.wait() [0x0000000015cbe000]
       java.lang.Thread.State: WAITING (on object monitor)
            at java.lang.Object.wait(Native Method)
            at java.lang.Object.wait(Object.java:502)
            at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
            - locked <0x00000000d0001688> (a java.lang.ref.Reference$Lock)
            at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)
    
    "main" #1 prio=5 os_prio=0 tid=0x0000000002bf4000 nid=0x17ac in Object.wait() [0x000000000289f000]
    
       java.lang.Thread.State: TIMED_WAITING (on object monitor)
            at java.lang.Object.wait(Native Method)
            at com.intellij.execution.rmi.RemoteServer.start(RemoteServer.java:80)
            - locked <0x00000000d0009ef0> (a java.lang.Object)
            at org.jetbrains.idea.maven.server.RemoteMavenServer.main(RemoteMavenServer.java:22)
    
    "VM Thread" os_prio=2 tid=0x0000000014a27000 nid=0xb18 runnable
    
    "GC task thread#0 (ParallelGC)" os_prio=0 tid=0x0000000002c0a000 nid=0x3ca8 runnable
    
    "GC task thread#1 (ParallelGC)" os_prio=0 tid=0x0000000002c0b800 nid=0x35f8 runnable
    
    "GC task thread#2 (ParallelGC)" os_prio=0 tid=0x0000000002c0d800 nid=0x1044 runnable
    
    "GC task thread#3 (ParallelGC)" os_prio=0 tid=0x0000000002c0f000 nid=0x3ff8 runnable
    
    "VM Periodic Task Thread" os_prio=2 tid=0x0000000015f45800 nid=0x293c waiting on condition
    
    JNI global references: 261
    View Code

    https://www.cnblogs.com/chenpi/p/5377445.html

    jstat:

    jstat(JVM Statistics Monitoring Tool)是用于监控虚拟机各种运行状态信息的命令行工具。他可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形的服务器上,它是运行期定位虚拟机性能问题的首选工具。
    jstat位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。可见,Jstat是轻量级的、专门针对JVM的工具,非常适用。

    D:Program FilesJavajdk1.8.0_102in
    $ jstat -gc 5224
     S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
    34048.0 34048.0 11948.2  0.0   272640.0 86062.3   278508.0   155625.8  351652.0 327552.2 50564.0 45442.3    228    5.785  44     24.346   30.131
    
    D:Program FilesJavajdk1.8.0_102in
    $ jstat -class 5224
    Loaded  Bytes  Unloaded  Bytes     Time
     62628 122416.9     2277  3099.5      82.53
    
    D:Program FilesJavajdk1.8.0_102in
    $ jstat -compiler 5224
    Compiled Failed Invalid   Time   FailedType FailedMethod
       80139      1       0   664.16          1 org/apache/xerces/impl/XMLNSDocumentScannerImpl scanStartElement
    
    D:Program FilesJavajdk1.8.0_102in
    $ jstat -gcutil 5224
      S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT
     35.09   0.00  36.40  55.88  93.15  89.87    228    5.785    44   24.346   30.131

    选项option代表这用户希望查询的虚拟机信息,主要分为3类:类装载、垃圾收集和运行期编译状况,具体选项及作用如下:

    –class 监视类装载、卸载数量、总空间及类装载所耗费的时间
    –gc 监视Java堆状况,包括Eden区、2个Survivor区、老年代、永久代等的容量
    –gccapacity 监视内容与-gc基本相同,但输出主要关注Java堆各个区域使用到的最大和最小空间
    –gcutil 监视内容与-gc基本相同,但输出主要关注已使用空间占总空间的百分比
    –gccause 与-gcutil功能一样,但是会额外输出导致上一次GC产生的原因
    –gcnew 监视新生代GC的状况
    –gcnewcapacity 监视内容与-gcnew基本相同,输出主要关注使用到的最大和最小空间
    –gcold 监视老年代GC的状况
    –gcoldcapacity 监视内容与——gcold基本相同,输出主要关注使用到的最大和最小空间
    –gcpermcapacity 输出永久代使用到的最大和最小空间
    –compiler 输出JIT编译器编译过的方法、耗时等信息
    –printcompilation 输出已经被JIT编译的方法

    常见术语

    1、jstat –class<pid> : 显示加载class的数量,及所占空间等信息。

    Loaded 装载的类的数量
    Bytes 装载类所占用的字节数
    Unloaded 卸载类的数量
    Bytes 卸载类的字节数
    Time 装载和卸载类所花费的时间

    2、jstat -compiler <pid>显示VM实时编译的数量等信息。

    Compiled 编译任务执行数量
    Failed 编译任务执行失败数量
    Invalid 编译任务执行失效数量
    Time 编译任务消耗时间
    FailedType 最后一个编译失败任务的类型
    FailedMethod 最后一个编译失败任务所在的类及方法

    3、jstat -gc <pid>: 可以显示gc的信息,查看gc的次数,及时间。

    S0C 年轻代中第一个survivor(幸存区)的容量 (字节)
    S1C 年轻代中第二个survivor(幸存区)的容量 (字节)
    S0U 年轻代中第一个survivor(幸存区)目前已使用空间 (字节)
    S1U 年轻代中第二个survivor(幸存区)目前已使用空间 (字节)
    EC 年轻代中Eden(伊甸园)的容量 (字节)
    EU 年轻代中Eden(伊甸园)目前已使用空间 (字节)
    OC Old代的容量 (字节)
    OU Old代目前已使用空间 (字节)
    PC Perm(持久代)的容量 (字节)
    PU Perm(持久代)目前已使用空间 (字节)
    YGC 从应用程序启动到采样时年轻代中gc次数
    YGCT 从应用程序启动到采样时年轻代中gc所用时间(s)
    FGC 从应用程序启动到采样时old代(全gc)gc次数
    FGCT 从应用程序启动到采样时old代(全gc)gc所用时间(s)
    GCT 从应用程序启动到采样时gc用的总时间(s)

    4、jstat -gccapacity <pid>:可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小

    NGCMN 年轻代(young)中初始化(最小)的大小(字节)
    NGCMX 年轻代(young)的最大容量 (字节)
    NGC 年轻代(young)中当前的容量 (字节)
    S0C 年轻代中第一个survivor(幸存区)的容量 (字节)
    S1C 年轻代中第二个survivor(幸存区)的容量 (字节)
    EC 年轻代中Eden(伊甸园)的容量 (字节)
    OGCMN old代中初始化(最小)的大小 (字节)
    OGCMX old代的最大容量(字节)
    OGC old代当前新生成的容量 (字节)
    OC Old代的容量 (字节)
    PGCMN perm代中初始化(最小)的大小 (字节)
    PGCMX perm代的最大容量 (字节)
    PGC perm代当前新生成的容量 (字节)
    PC Perm(持久代)的容量 (字节)
    YGC 从应用程序启动到采样时年轻代中gc次数
    FGC 从应用程序启动到采样时old代(全gc)gc次数

    5、jstat -gcutil <pid>:统计gc信息

    S0 年轻代中第一个survivor(幸存区)已使用的占当前容量百分比
    S1 年轻代中第二个survivor(幸存区)已使用的占当前容量百分比
    E 年轻代中Eden(伊甸园)已使用的占当前容量百分比
    O old代已使用的占当前容量百分比
    P perm代已使用的占当前容量百分比
    YGC 从应用程序启动到采样时年轻代中gc次数
    YGCT 从应用程序启动到采样时年轻代中gc所用时间(s)
    FGC 从应用程序启动到采样时old代(全gc)gc次数
    FGCT 从应用程序启动到采样时old代(全gc)gc所用时间(s)
    GCT 从应用程序启动到采样时gc用的总时间(s)

    6、jstat -gcnew <pid>:年轻代对象的信息。

    S0C 年轻代中第一个survivor(幸存区)的容量 (字节)
    S1C 年轻代中第二个survivor(幸存区)的容量 (字节)
    S0U 年轻代中第一个survivor(幸存区)目前已使用空间 (字节)
    S1U 年轻代中第二个survivor(幸存区)目前已使用空间 (字节)
    TT 持有次数限制
    MTT 最大持有次数限制
    EC 年轻代中Eden(伊甸园)的容量 (字节)
    EU 年轻代中Eden(伊甸园)目前已使用空间 (字节)
    YGC 从应用程序启动到采样时年轻代中gc次数
    YGCT 从应用程序启动到采样时年轻代中gc所用时间(s)

    7、jstat -gcnewcapacity<pid>: 年轻代对象的信息及其占用量。

    NGCMN 年轻代(young)中初始化(最小)的大小(字节)
    NGCMX 年轻代(young)的最大容量 (字节)
    NGC 年轻代(young)中当前的容量 (字节)
    S0CMX 年轻代中第一个survivor(幸存区)的最大容量 (字节)
    S0C 年轻代中第一个survivor(幸存区)的容量 (字节)
    S1CMX 年轻代中第二个survivor(幸存区)的最大容量 (字节)
    S1C 年轻代中第二个survivor(幸存区)的容量 (字节)
    ECMX 年轻代中Eden(伊甸园)的最大容量 (字节)
    EC 年轻代中Eden(伊甸园)的容量 (字节)
    YGC 从应用程序启动到采样时年轻代中gc次数
    FGC 从应用程序启动到采样时old代(全gc)gc次数

    8、jstat -gcold <pid>:old代对象的信息。

    PC Perm(持久代)的容量 (字节)
    PU Perm(持久代)目前已使用空间 (字节)
    OC Old代的容量 (字节)
    OU Old代目前已使用空间 (字节)
    YGC 从应用程序启动到采样时年轻代中gc次数
    FGC 从应用程序启动到采样时old代(全gc)gc次数
    FGCT 从应用程序启动到采样时old代(全gc)gc所用时间(s)
    GCT 从应用程序启动到采样时gc用的总时间(s)

    9、stat -gcoldcapacity <pid>: old代对象的信息及其占用量。

    OGCMN old代中初始化(最小)的大小 (字节)
    OGCMX old代的最大容量(字节)
    OGC old代当前新生成的容量 (字节)
    OC Old代的容量 (字节)
    YGC 从应用程序启动到采样时年轻代中gc次数
    FGC 从应用程序启动到采样时old代(全gc)gc次数
    FGCT 从应用程序启动到采样时old代(全gc)gc所用时间(s)
    GCT 从应用程序启动到采样时gc用的总时间(s)

    10、jstat -gcpermcapacity<pid>: perm对象的信息及其占用量。

    PGCMN perm代中初始化(最小)的大小 (字节)
    PGCMX perm代的最大容量 (字节)
    PGC perm代当前新生成的容量 (字节)
    PC Perm(持久代)的容量 (字节)
    YGC 从应用程序启动到采样时年轻代中gc次数
    FGC 从应用程序启动到采样时old代(全gc)gc次数
    FGCT 从应用程序启动到采样时old代(全gc)gc所用时间(s)
    GCT 从应用程序启动到采样时gc用的总时间(s)

    11、jstat -printcompilation <pid>:当前VM执行的信息。

    Compiled 编译任务的数目
    Size 方法生成的字节码的大小
    Type 编译类型
    Method 类名和方法名用来标识编译的方法。类名使用/做为一个命名空间分隔符。方法名是给定类中的方法。上述格式是由-XX:+PrintComplation选项进行设置的

    ====================================================

    jhat:

    jhat(Java Heap Analysis Tool),是一个用来分析java的堆情况的命令。之前的文章讲到过,使用jmap可以生成Java堆的Dump文件。生成dump文件之后就可以用jhat命令,将dump文件转成html的形式,然后通过http访问可以查看堆情况。

    jhat命令解析会Java堆dump并启动一个web服务器,然后就可以在浏览器中查看堆的dump文件了。

    D:Program FilesJavajdk1.8.0_102in
    $ jps -l
    15856 org.jetbrains.idea.maven.server.RemoteMavenServer
    228 sun.tools.jps.Jps
    47960 org.jetbrains.jps.cmdline.Launcher
    5224
    
    D:Program FilesJavajdk1.8.0_102in
    $ jmap -dump:format=b,file=heapDump 5224
    Dumping heap to D:Program FilesJavajdk1.8.0_102inheapDump ...
    Heap dump file created
    
    D:Program FilesJavajdk1.8.0_102in
    $ jhat heapDump
    Reading from heapDump...
    Dump file created Wed Mar 21 14:44:10 CST 2018
    Snapshot read, resolving...
    Resolving 4992940 objects...
    Chasing references, expect 998 dots..............................
    Eliminating duplicate references.................................
    Snapshot resolved.
    Started HTTP server on port 7000
    Server is ready.

    jinfo:列出jvm进程相关配置信息

    D:Program FilesJavajdk1.8.0_102in
    $ jinfo 5224
    Attaching to process ID 5224, please wait...
    Debugger attached successfully.
    Server compiler detected.
    JVM version is 25.102-b14
    Java System Properties:
    
    java.vendor = Oracle Corporation
    sun.java2d.uiScale.enabled = true
    idea.config.path = D:/Program Files (x86)/JetBrains/IDEA Configuration And Cache/config
    sun.management.compiler = HotSpot 64-Bit Tiered Compilers
    sun.nio.ch.bugLevel =
    idea.paths.selector = IntelliJIdea2017.2
    jnidispatch.path = D:Program Files (x86)JetBrainsIDEA Configuration And Cachesystem	mpjna4994633568019551061.dll
    winp.unpack.dll.to.parent.dir = false
    os.name = Windows 10
    sun.boot.class.path = D:Program FilesJavajdk1.8.0_102jrelib
    esources.jar;D:Program FilesJavajdk1.8.0_102jrelib
    t.jar;D:Program FilesJavajdk1.8.0_102jrelibsunrsasign.jar;D:Program FilesJavajdk1.8.0_102jrelibjsse.jar;D:Program FilesJavajdk1.8.0_102jrelibjce.jar;D:Program FilesJavajdk1.8.0_102jrelibcharsets.jar;D:Program FilesJavajdk1.8.0_102jrelibjfr.jar;D:Program FilesJavajdk1.8.0_102jreclasses;D:Program Files (x86)JetBrainsideaIU-2017.2.1.winliboot.jar
    idea.system.path = D:/Program Files (x86)/JetBrains/IDEA Configuration And Cache/system
    sun.desktop = windows
    java.vm.specification.vendor = Oracle Corporation
    idea.plugins.path = D:/Program Files (x86)/JetBrains/IDEA Configuration And Cache/config/plugins
    java.runtime.version = 1.8.0_102-b14
    jb.vmOptionsFile = D:Program Files (x86)JetBrainsideaIU-2017.2.1.wininidea64.exe.vmoptions
    jna.loaded = true
    io.netty.serviceThreadPrefix = Netty
    user.name = qhong
    sun.java2d.pmoffscreen = false
    java.rmi.server.disableHttp = true
    svnkit.http.methods = Basic,Digest,NTLM
    user.language = zh
    sun.boot.library.path = D:Program FilesJavajdk1.8.0_102jrein
    idea.fatal.error.notification = disabled
    jna.nosys = true
    idea.registered = true
    sun.io.useCanonCaches = false
    java.version = 1.8.0_102
    swing.bufferPerWindow = true
    user.timezone = Asia/Shanghai
    java.net.preferIPv4Stack = true
    sun.arch.data.model = 64
    java.util.concurrent.ForkJoinPool.common.threadFactory = com.intellij.concurrency.IdeaForkJoinWorkerThreadFactory
    jna.tmpdir = D:Program Files (x86)JetBrainsIDEA Configuration And Cachesystem	mp
    java.endorsed.dirs = D:Program FilesJavajdk1.8.0_102jrelibendorsed
    apple.awt.UIElement = true
    sun.cpu.isalist = amd64
    sun.jnu.encoding = GBK
    file.encoding.pkg = sun.io
    file.separator = 
    java.specification.name = Java Platform API Specification
    java.class.version = 52.0
    user.country = CN
    sun.awt.noerasebackground = true
    java.home = D:Program FilesJavajdk1.8.0_102jre
    java.util.concurrent.ForkJoinPool.common.parallelism = 4
    java.vm.info = mixed mode
    os.version = 10.0
    path.separator = ;
    java.vm.version = 25.102-b14
    idea.no.launcher = false
    user.variant =
    idea.max.content.load.filesize = 20000
    sun.awt.enableExtraMouseButtons = true
    java.awt.printerjob = sun.awt.windows.WPrinterJob
    javax.swing.rebaseCssSizeMap = true
    sun.io.unicode.encoding = UnicodeLittle
    awt.toolkit = sun.awt.windows.WToolkit
    idea.cycle.buffer.size = 1024
    log4j.defaultInitOverride = true
    io.netty.processId = 58409
    user.script =
    sun.awt.exception.handler = com.intellij.openapi.application.impl.AWTExceptionHandler
    user.home = C:Usersqhong
    idea.dynamic.classpath = false
    __idea.mac.env.lock = unlocked
    java.specification.vendor = Oracle Corporation
    idea.log.path = D:/Program Files (x86)/JetBrains/IDEA Configuration And Cache/system/log
    java.library.path = D:Program Files (x86)JetBrainsideaIU-2017.2.1.winin;C:WindowsSunJavain;C:Windowssystem32;C:Windows;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:Program FilesTortoiseGitin;C:Usersqhong.dnxin;C:Program FilesMicrosoft DNXDnvm;C:Program FilesMicrosoft SQL Server120DTSBinn;C:Program FilesMicrosoft SQL ServerClient SDKODBC110ToolsBinn;C:Program Files (x86)Microsoft SQL Server120ToolsBinn;C:Program FilesMicrosoft SQL Server120ToolsBinn;C:Program Files (x86)Microsoft SQL Server120ToolsBinnManagementStudio;C:Program Files (x86)Microsoft SQL Server120DTSBinn;%ANDROID_HOME%;%ANDROID_HOME%	ools;%ANDROID_HOME%uild-tools;%ANDROID_HOME%platform-tools;D:Program FilesTomcat8in;D:Program FilesJavajdk1.8.0_102in;D:Program FilesJavajdk1.8.0_102jrein;D:Program FilesMySQLin;D:Program Files (x86)JetBrainsIDEA Configuration And Cachemavenin;%GRADLE_HOME%in;D:Program Files (x86)JetBrainsIDEA Configuration And Cachemavenin;C:Program FilesGitcmd;D:Program Filescmder;C:Program FilesTortoiseSVNin;D:Program Files
    odejs;D:Program Filescurlin;C:UsersqhongAppDataLocalMicrosoftWindowsApps;;C:Program FilesMicrosoft VS Codein;C:UsersqhongAppDataLocalProgramsFiddler;.
    java.vendor.url = http://java.oracle.com/
    java.vm.vendor = Oracle Corporation
    java.runtime.name = Java(TM) SE Runtime Environment
    java.class.path = D:Program Files (x86)JetBrainsideaIU-2017.2.1.winlibootstrap.jar;D:Program Files (x86)JetBrainsideaIU-2017.2.1.winlibextensions.jar;D:Program Files (x86)JetBrainsideaIU-2017.2.1.winlibutil.jar;D:Program Files (x86)JetBrainsideaIU-2017.2.1.winlibjdom.jar;D:Program Files (x86)JetBrainsideaIU-2017.2.1.winliblog4j.jar;D:Program Files (x86)JetBrainsideaIU-2017.2.1.winlib	rove4j.jar;D:Program Files (x86)JetBrainsideaIU-2017.2.1.winlibjna.jar;D:Program FilesJavajdk1.8.0_102lib	ools.jar
    io.netty.machineId = 28:f0:76:ff:fe:16:65:0e
    java.vm.specification.name = Java Virtual Machine Specification
    idea.xdebug.key = -Xdebug
    java.vm.specification.version = 1.8
    idea.popup.weight = heavy
    sun.cpu.endian = little
    sun.os.patch.level =
    java.io.tmpdir = C:UsersqhongAppDataLocalTemp
    java.vendor.url.bug = http://bugreport.sun.com/bugreport/
    svnkit.log.native.calls = true
    java.rmi.server.hostname = localhost
    os.arch = amd64
    java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment
    idea.max.intellisense.filesize = 2500
    java.ext.dirs = D:Program FilesJavajdk1.8.0_102jrelibext;C:WindowsSunJavalibext
    idea.jre.check = true
    user.dir = D:Program Files (x86)JetBrainsideaIU-2017.2.1.winin
    line.separator =
    
    java.vm.name = Java HotSpot(TM) 64-Bit Server VM
    java.util.Arrays.useLegacyMergeSort = true
    file.encoding = UTF-8
    java.specification.version = 1.8
    sun.java2d.d3d = false
    
    VM Flags:
    Non-default VM flags: -XX:CICompilerCount=3 -XX:ErrorFile=null -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=null -XX:InitialHeapSize=536870912 -XX:MaxHeapSize=1572864000 -XX:MaxNewSize=348913664 -XX:MaxTenuringThreshold=6 -XX:MinHeapDeltaBytes=196608 -XX:NewSize=348913664 -XX:OldPLABSize=16 -XX:OldSize=187957248 -XX:-OmitStackTraceInFastThrow -XX:ReservedCodeCacheSize=524288000 -XX:SoftRefLRUPolicyMSPerMB=50 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseConcMarkSweepGC -XX:+UseFastUnorderedTimeStamps -XX:-UseLargePagesIndividualAllocation -XX:+UseParNewGC
    Command line:  -Xms512m -Xmx1500m -XX:ReservedCodeCacheSize=500m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Dfile.encoding=UTF-8 -Duser.name=qhong -Djb.vmOptionsFile=D:Program Files (x86)JetBrainsideaIU-2017.2.1.wininidea64.exe.vmoptions -Xbootclasspath/a:D:Program Files (x86)JetBrainsideaIU-2017.2.1.winliboot.jar -Didea.jre.check=true -Didea.paths.selector=IntelliJIdea2017.2 -XX:ErrorFile=C:Usersqhongjava_error_in_idea_%p.log -XX:HeapDumpPath=C:Usersqhongjava_error_in_idea.hprof

    http://blog.csdn.net/heyutao007/article/details/51862227

  • 相关阅读:
    12.14 Daily Scrum
    12.13 Daily Scrum
    12.12 Daily Scrum
    12.11 Daily Scrum
    12.10 Daily Scrum
    12.9 Daily Scrum
    12.8 Daily Scrum
    M1事后分析汇报以及总结
    alpa开发阶段团队贡献分
    第9周团队作业
  • 原文地址:https://www.cnblogs.com/hongdada/p/8616774.html
Copyright © 2020-2023  润新知