使用jhat查看dump.hprof文件內具體對象的屬性值信息

jhat是JDK自帶的堆轉儲分析工具,可以用來查看.hprof文件中對象的具體內容。本文演示使用的是JKD8.

一、啟動jhat

執行啟動命令。

jhat -J-Xmx4g your_heap_dump.hprof

-J-Xmx4g表示為jhat分配4GB內存,根據你自己情況調整大小。your_heap_dump.hprof是dump出來的hprof文件名

回車執行命令后,會啟動jhat并分析hprof,需要稍作等待一下,執行效果如下圖

瀏覽器輸入:http://localhost:7000

即可訪問jhat,查看對應dump出來的hprof文件內的堆棧信息、對象信息。

二、使用Heap Histogram查詢具體實例

在上面的打開的jhat頁面,拉到最底部,會顯示jhat帶的一些其它工具或者功能。

點擊how heap histogram,可以使用heap histogram查看堆棧信息,實例信息。

然后自己輸入關鍵字搜索自己想看的對象信息,比如InMemoryWebSessionStore

點擊進去可以看到相關對象信息

三、使用OQL查詢dump.hprof文件內具體對象的屬性值、內容

OQL(Object Query Language)是JHAT提供的一種查詢語言,可以幫助你從堆轉儲(heap dump)中查詢和分析對象

OQL類似于SQL,但專門用于查詢Java堆中的對象。基本結構如下:

select <JavaScript expression to select>
[ from [instanceof] <class name> <identifier>
[ where <JavaScript boolean expression> ] ]

可以查詢對象的所有實例,實現了某個接口的所有實例,對象的實例數等。具體可以查詢公開資料。

還以InMemoryWebSessionStore這個類舉例,查看下系統當前所有的session信息。先看下這個類的源文件

org.springframework.web.server.session.InMemoryWebSessionStore

從源代碼可以看出,系統的seesion存在InMemoryWebSessionStore對象的sessions屬性里,是一個ConcurrentHashMap。

在jhat頁面,下拉到最底部,點擊“Execute Object Query Language (OQL) query”,打開OLQ頁面

就像平時寫sql一樣,輸入執行語句:

select s.sessions from org.springframework.web.server.session.InMemoryWebSessionStore s 

點擊執行 execute,得到查詢結果節點查詢結果,即可看到這個系統具體得session信息:

可以看出當前系統有1000個seesion。點擊table,可以查看具體的session信息:

隨便找一個對象,點擊進去看看具體的session信息:

查看map value值

可以查看到session的創建時間和state等。這里看下創建時間

將上述時間毫秒值用再現轉換工具可知,具體時間是2025-06-17 19:10:08

其他對象信息可以進一步進去看詳情,這里篇幅有限不在演示示例。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/909730.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/909730.shtml
英文地址,請注明出處:http://en.pswp.cn/news/909730.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

freeRTOS之隊列(queue)

一.概述 1.介紹 隊列(queue)可以用于"任務到任務"、“任務到中斷”、"中斷到任務"直接傳輸信息。 2.核心功能 線程安全&#xff1a;自動處理多任務訪問時的互斥問題。 數據復制&#xff1a;入隊時復制數據&#xff08;而非引用&#xff09;&#xff0c;…

【python】typing用法

一、基礎類型提示 1. 基本類型注解 # 變量類型注解 age: int 30 name: str "Alice" is_student: bool False height: float 1.752. 函數注解 def greet(name: str, age: int) -> str:return f"Hello {name}, you are {age} years old!"二、組合類…

web前端開發核心基礎:Html結構分析,head,body,不同標簽的作用

前端技術協同關系 協作流程&#xff1a;HTML構建頁面框架—>css美化樣式&#xff08;選擇器屬性&#xff09;—>JavaScript實現交互&#xff08;類似于python的腳本語言&#xff09;擴展基礎&#xff1a;在上面三項基礎上學習Vue\React、構建工具WePack和瀏覽器工作原理…

精益數據分析(105/126):移動應用核心指標解析與用戶分層營收策略

精益數據分析&#xff08;105/126&#xff09;&#xff1a;移動應用核心指標解析與用戶分層營收策略 在移動應用市場競爭白熱化的今天&#xff0c;單純追求下載量已無法保證商業成功&#xff0c;精細化運營核心指標成為盈利關鍵。本文將深入解析每日活躍用戶平均營收&#xff…

被CC攻擊了,對服務器有什么影響?

博客正文&#xff1a; 最近&#xff0c;不少網站管理員和運維人員反映遭遇了CC攻擊&#xff0c;導致服務器性能異常甚至癱瘓。那么&#xff0c;CC攻擊究竟會對服務器造成哪些影響&#xff1f;本文將為你簡要解析CC攻擊的原理及其帶來的危害&#xff0c;幫助你更好地理解并應對…

Tensorflow安裝出現dependency conflict錯誤

Python版本&#xff1a; 3.11.4 pip版本已升到最新 電腦上有mac的原裝Python2.x&#xff0c;我裝的3.11.4&#xff0c;還有個什么依賴的3.9 運行 pip3 install tensorflow 出現類似以下錯誤 &#xff08;我報錯的是另一個不是tensorflow—estimator&#xff0c;但基本就是…

2025年HTTP半開與錯誤攻擊防御指南:原理拆解與實戰防護

你以為限流就能防住HTTP攻擊&#xff1f;黑客用協議畸形包AI調度正在撕裂傳統防線&#xff01; 一、HTTP半開攻擊&#xff1a;慢速絞殺服務器資源 ? 攻擊原理剖析 HTTP半開攻擊&#xff08;如Slowloris&#xff09;是一種應用層DoS攻擊&#xff0c;通過建立大量半開連接耗盡…

Mybatis(XML映射文件、動態SQL)

目錄 基礎操作 準備&#xff1a; 刪除&#xff1a; 新增&#xff1a; 更新&#xff1a; 查詢&#xff1a; 條件查詢&#xff1a; XML映射文件 動態SQL if foreach sql&include 基礎操作 準備&#xff1a; 準備數據庫表 創建一個新的springboot工程&#xff0…

python校園拼團系統

目錄 技術棧介紹具體實現截圖系統設計研究方法&#xff1a;設計步驟設計流程核心代碼部分展示研究方法詳細視頻演示試驗方案論文大綱源碼獲取/詳細視頻演示 技術棧介紹 Django-SpringBoot-php-Node.js-flask 本課題的研究方法和研究步驟基本合理&#xff0c;難度適中&#xf…

多模態大語言模型arxiv論文略讀(127)

When SAM2 Meets Video Camouflaged Object Segmentation: A Comprehensive Evaluation and Adaptation ?? 論文標題&#xff1a;When SAM2 Meets Video Camouflaged Object Segmentation: A Comprehensive Evaluation and Adaptation ?? 論文作者&#xff1a;Yuli Zhou, …

劍指offer32_二叉搜索樹的后序遍歷序列

二叉搜索樹的后序遍歷序列 輸入一個整數數組&#xff0c;判斷該數組是不是某二叉搜索樹的后序遍歷的結果。 如果是則返回true&#xff0c;否則返回false。 假設輸入的數組的任意兩個數字都互不相同。 數據范圍 數組長度 [ 0 , 1000 ] [0,1000] [0,1000]。 樣例 輸入&…

《仿盒馬》app開發技術分享-- 訂單結合優惠券結算(端云一體)

技術棧 Appgallery connect 開發準備 上一節我們已經實現了優惠券的選擇&#xff0c;并且成功的把券后的價格也展示給用戶&#xff0c;不能使用的優惠券我們也用友好的方式告知用戶&#xff0c;這一節我們來實現優惠券內容的下一步&#xff0c;優惠券內容結合訂單進行結算提…

Python+Selenium+Pytest+POM自動化測試框架封裝

&#x1f345; 點擊文末小卡片 &#xff0c;免費獲取軟件測試全套資料&#xff0c;資料在手&#xff0c;漲薪更快 1、測試框架簡介 1&#xff09;測試框架的優點 代碼復用率高&#xff0c;如果不使用框架的話&#xff0c;代碼會顯得很冗余。可以組裝日志、報告、郵件等一些…

宋代大模型:智能重構下的文明再發現

引言&#xff1a;當汴京城遇見生成式AI 一幅動態的《清明上河圖》正通過全息投影技術演繹汴京城的市井百態。這個虛實交融的場景&#xff0c;恰似宋代大模型技術的隱喻——以人工智能為紐帶&#xff0c;連接起東京夢華的繁盛圖景與數字時代的文明重構。作為人工智能與歷史學交…

K-means++:讓K-means“聰明”地選擇初始中心點

大家好&#xff01;歡迎來到我的技術分享博客~ &#x1f44b; 在前兩篇博客中&#xff0c;我們深入探討了經典的 K-means 算法 以及它的優化方案 Canopy K-means。如果你還沒有看過&#xff0c;強烈建議先回顧一下&#xff0c;因為今天的主題 K-means 和它們有著千絲萬縷的聯系…

Langchain學習筆記(1)——如何調用Huggingface的模型并實現實時返回生成結果

Langchain支持很方便的OpenAI模型的調用&#xff0c;可以做到快速開發大模型應用。但是要使用Huggingface上的開源模型就沒有那么方便了&#xff0c;本文就詳細闡述如何用Langchain開發基于Huggingface上的模型&#xff0c;并實時返回生成結果。 實時返回生成結果是LLM很關鍵的…

Java安全-常規漏洞問題(SQL注入,XXE,SSRF,RCE)

靶場搭建 靶場下載 &#xff1a; https://github.com/whgojp/JavaSecLab這個靶場是使用Springboot搭建的所以不要下載 jar 文件運行&#xff0c;要使用IDEA運行他的文件夾 先打開pom 然后進行maven一下 改一下端口 配置完成之后修改一下 運行的模式 使用phpstudy搞一個sql數…

基于視頻的 AI 內存庫,極速語義檢索

簡介 在大模型應用里&#xff0c;將文本數據分塊嵌入存儲在向量數據庫已經是標準做法。然而&#xff0c;傳統向量數據庫雖然功能強大&#xff0c;但其高昂的RAM和存儲需求&#xff0c;以及復雜的部署運維&#xff0c;常常讓開發者望而卻步。今天&#xff0c;介紹一個名為 Memv…

接口適配器模式實現令牌桶算法和漏桶算法

以下是令牌桶算法、漏桶算法和雪花算法的清晰對比解析。它們屬于完全不同的技術領域&#xff0c;前兩者用于流量控制&#xff0c;后者用于分布式ID生成&#xff1a; 1. 令牌桶算法&#xff08;Token Bucket&#xff09; 領域&#xff1a;流量整形 / 速率限制核心目標&#xff…

618背后的電商邏輯重構:從價格血戰到價值共生

“今年終于沒做數學題。” 618進行到一半&#xff0c;行云已經買了很多&#xff0c;大件的有iPad、iWatch&#xff0c;小件的有運動鞋、面膜、紙巾。往年她要湊湊減減&#xff0c;經常要找個店鋪湊單&#xff0c;下完單再馬上退掉&#xff0c;今年她沒廢太多腦細胞&#xff0c…