《Java 底層原理》HSDB工具的使用說明


前言

Java對象信息對開發者來說並不是透明的,需要借助工具來更好查詢對象的運行情況,這里我們帶來HSDB工具。

演示

打開工具過程

1. 工具是JDK自帶的:目錄:jdk1.8.0_191\lib\sa-jdi.jar。

2. 使用cmd,並且切換到Jar所在目錄:C:\Program Files\Java\jdk1.8.0_191\bin 。

3. 執行命令下面,會自動彈出一個界面。

java -cp sa-jdi.jar sun.jvm.hotspot.HSDB

界面如下:

4. 准備一個測試案例看看如何使用該工具

public class JvmTest {
    public static void main(String[] args) {
        while(true);
    }
}

寫了一個死循環,把他運行起來,然后執行jps 命令。

jps -l     -- 查詢進程的id

找到我們需要的進程號,將該進程號填入HSDB工具中。

點擊Ok后會出現報錯:

提示缺少sawingdbg.dll,該文件在jre/bin目錄下:

移動到jre1.8.0_191\bin文件所在的目錄下面,從新運行命令並且加入進程號就能看到如下界面。

5. 查看對象信息

點擊打開

我們要根據內存地址找到Java底層對應的對象

輸入內存地址並且點擊compute Liveness。

入門案例結束

擴展

選擇mian線程,查看線程堆棧。

獲取內存地址去查看JVM對應的對象信息。

查詢對象情況:

總結

HSDB工具能非常好讓我們學習JVM了解Java對象的結構。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM