欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JVM的常用命令匯總

 更新時間:2022年10月26日 10:42:35   作者:人間湊個數(shù)  
監(jiān)測java應用,最方便的就是直接使用jdk提供的現(xiàn)成工具,在jdk的安裝的bin目錄下,已經(jīng)提供了多種命令行監(jiān)測工具。本文為大家總結了幾個JVM的常用命令,需要的可以參考一下

簡介

監(jiān)測java應用,最方便的就是直接使用jdk提供的現(xiàn)成工具,在jdk的安裝的bin目錄下,已經(jīng)提供了多種命令行監(jiān)測工具,以便于開發(fā)人員和運維人員監(jiān)測java應用和診斷問題,因此,此類工具是java應用監(jiān)測的重要手段。也是作為java開發(fā)人員需要掌握的基本技能。

jps

查看java進程。

The jps command lists the instrumented Java HotSpot VMs on the target system. The command is limited to reporting information on JVMs for which it has the access permissions.

jinfo

(1)實時查看和調整JVM配置參數(shù)

The jinfo command prints Java configuration information for a specified Java process or core file or a remote debug server. The configuration information includes Java system properties and Java Virtual Machine (JVM) command-line flags.

(2)查看用法

jinfo -flag name PID 查看某個java進程的name屬性的值
jinfo -flag MaxHeapSize PID

jinfo -flag UseG1GC PID

(3)修改 參數(shù)只有被標記為manageable的flags可以被實時修改。

jinfo -flag [+|-] PID

jinfo -flag <name>=<value> PID

(4)查看曾經(jīng)賦過值的一些參數(shù)

jinfo -flags PID

jstat

(1)查看虛擬機性能統(tǒng)計信息

The jstat command displays performance statistics for an instrumented Java HotSpot VM. The target JVM is identified by its virtual machine identifier, or vmid option.

(2)查看類裝載信息 jstat -class PID 1000 10 查看某個java進程的類裝載信息,每1000毫秒輸出一次,共輸出10次。

(3)查看垃圾收集信息

jstat -gc PID 1000 10

jstack

(1)查看線程堆棧信息

The jstack command prints Java stack traces of Java threads for a specified Java process, core file, or remote debug server.

(2)用法

jstack PID

(4)排查死鎖案例

DeadLockDemo

//運行主類

public class DeadLockDemo

{

    public static void main(String[] args)

    {

        DeadLock d1=new DeadLock(true);

        DeadLock d2=new DeadLock(false);

        Thread t1=new Thread(d1);

        Thread t2=new Thread(d2);

        t1.start();

        t2.start();

    }

}

//定義鎖對象

class MyLock{

    public static Object obj1=new Object();

    public static Object obj2=new Object();

}

//死鎖代碼

class DeadLock implements Runnable{

    private boolean flag;

    DeadLock(boolean flag){

        this.flag=flag;

    }

    public void run() {

    if(flag) {

        while(true) {

            synchronized(MyLock.obj1) {

                System.out.println(Thread.currentThread().getName()+"----if獲得obj1鎖");

            synchronized(MyLock.obj2) {

                System.out.println(Thread.currentThread().getName()+"----if獲得obj2鎖");

            }

        }

    }

}

else {

    while(true){

        synchronized(MyLock.obj2) {

            System.out.println(Thread.currentThread().getName()+"----否則獲得obj2鎖");

        synchronized(MyLock.obj1) {

            System.out.println(Thread.currentThread().getName()+"----否則獲得obj1鎖");

        }

    }

}

}

}

}

運行結果

jstack分析

把打印信息拉到最后可以發(fā)現(xiàn)

jmap

(1)生成堆轉儲快照

The jmap command prints shared object memory maps or heap memory details of a specified process, core file, or remote debug server.

(2)打印出堆內存相關信息

jmap -heap PID

jinfo -flag UsePSAdaptiveSurvivorSizePolicy 35352
-XX:SurvivorRatio=8

(3)dump出堆內存相關信息

jmap -dump:format=b,file=heap.hprof PID

(4)要是在發(fā)生堆內存溢出的時候,能自動dump出該文件就好了

一般在開發(fā)中,JVM參數(shù)可以加上下面兩句,這樣內存溢出時,會自動dump出該文件。

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=heap.hprof。

設置堆內存大小: -Xms20M -Xmx20M

啟動,然后訪問localhost:9090/heap,使得堆內存溢出

(5)關于dump下來的文件

一般dump下來的文件可以結合工具來分析,這塊后面再說。

到此這篇關于JVM的常用命令匯總的文章就介紹到這了,更多相關JVM常用命令內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • java 實現(xiàn)黃金分割數(shù)的示例詳解

    java 實現(xiàn)黃金分割數(shù)的示例詳解

    這篇文章主要介紹了java 實現(xiàn)黃金分割數(shù)的示例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • IntelliJ?IDEA2022.3?springboot?熱部署含靜態(tài)文件(最新推薦)

    IntelliJ?IDEA2022.3?springboot?熱部署含靜態(tài)文件(最新推薦)

    這篇文章主要介紹了IntelliJ?IDEA2022.3?springboot?熱部署含靜態(tài)文件,本文結合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-01-01
  • Spring?Boot實現(xiàn)文件上傳的兩種方式總結

    Spring?Boot實現(xiàn)文件上傳的兩種方式總結

    應用開發(fā)過程中,文件上傳是一個基礎的擴展功能,它的目的就是讓大家共享我們上傳的文件資源,下面這篇文章主要給大家總結介紹了關于Spring?Boot實現(xiàn)文件上傳的兩種方式,需要的朋友可以參考下
    2023-05-05
  • Java中的JPA實體關系:JPA一對一,一對多(多對一),多對多

    Java中的JPA實體關系:JPA一對一,一對多(多對一),多對多

    Java Persistence API(JPA)是Java平臺上的一個對象關系映射(ORM)規(guī)范,用于簡化數(shù)據(jù)庫操作,其中實體關系的映射是核心內容之一,本文將深入淺出地探討JPA中的三種基本實體關系類型:一對一、一對多、多對多,揭示常見問題、易錯點及其避免策略,希望能幫助大家
    2024-06-06
  • Java Swing JRadioButton單選按鈕具體使用

    Java Swing JRadioButton單選按鈕具體使用

    這篇文章主要介紹了Java Swing JRadioButton單選按鈕具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • 在idea中將創(chuàng)建的java web項目部署到Tomcat中的過程圖文詳解

    在idea中將創(chuàng)建的java web項目部署到Tomcat中的過程圖文詳解

    這篇文章主要介紹了在idea中將創(chuàng)建的java web項目部署到Tomcat中的過程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • javaweb圖書商城設計之訂單模塊(5)

    javaweb圖書商城設計之訂單模塊(5)

    這篇文章主要為大家詳細介紹了javaweb圖書商城設計之訂單模塊,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Spring Batch 入門示例

    Spring Batch 入門示例

    本文將向您展示如何使用Spring Boot創(chuàng)建一個的Spring Batch的Hello World示例。對和我一樣入門的有一定的幫助,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 深入理解Java之jvm啟動流程

    深入理解Java之jvm啟動流程

    這篇文章主要介紹了深入理解Java之jvm啟動流程,文章內容講解的很清晰,有對這方面感興趣的同學可以研究下
    2021-02-02
  • Java模擬實現(xiàn)ATM機

    Java模擬實現(xiàn)ATM機

    這篇文章主要為大家詳細介紹了Java模擬實現(xiàn)ATM機,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03

最新評論