JVM內存管理<一>:Java內存異常問題排查

一、 內存溢出問題的排查

1. 使用工具 - jdk自帶

  • jmap
  • visualvm

2. 流程

  1. 堆轉儲:
    (1) 方法一:程序運行時,采用:jmap -dump:format=b,file=d:\\data\\xxlJob.hprof 23300 進行堆文件的轉儲
    (2) 方法二:在內存溢出的時候,打印堆轉儲文件
-XX:+HeapDumpOnOutOfMemoryError           # 開啟OOM時自動轉儲堆
-XX:HeapDumpPath=/path/to/dump/dir/       # 指定堆轉儲文件路徑
-XX:OnOutOfMemoryError="command args"     # OOM時執行外部命令
  1. 導入visualVM中
    文件->裝入->選擇堆轉儲文件

在這里插入圖片描述

  1. 分析:自定義的對象的數量、大小都不應該太大
    a. 通過大小、對象數量進行排序,查看靠前的對象是否存在自定義的對象
    b. 通過名稱排序,查看自定義的對象中,哪個對象最靠前

在這里插入圖片描述

二、gc頻繁問題的排查

1. 了解堆分配的策略

a. 優先分配到年輕代
b. 大對象直接分配到老年代
c. 長期存活的對象進入老年代
d. 對象擔保策略:如果年輕代的對象的總容量大于了老年代的剩余容量,需要進行一次full gc

2. 頻繁minor gc

原因
(1) 內存分配過小
(2) 內存泄漏
(3) 頻繁的對象創建

排查和解決方案
(1)經過mimor gc之后,對象仍舊無法被清除,導致full gc:考慮內存泄漏問題,查看是否存在內存泄漏,可以通過jmap + visualvm進行排查
(2) 如果是并發高的場景:minor gc之后,考慮eden分配過小,嘗試增大內存的分配量,尤其是eden區的
(3) 如果不是高并發,內存還有急速升高的情況,可能是對象創建太過頻繁,或者創建了大對象導致的
總結:分配大內存 + 排查堆轉儲文件,查看哪個自定義對象的占用內存較大,優化代碼

3. 頻繁full gc

原因
(1)minor gc分配太小,導致頻繁minor gc,進而對象年齡急速增加,進入老年代
(2)full gc 分配太小,空間擔保機制,使得minor gc之前,需要進行full gc
(3)內存泄漏或者大對象的創建

解決方案:
(1)首先嘗試分配大內存
(2)如果不行,通過排查堆轉儲文件,也就是使用jmap和visualvm查看較大的自定義對象

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

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

相關文章

Android中Glide.with().load().into() 應付面試源碼解析

1. with(this):生命周期綁定 Glide.with(Activity/Fragment/Context) 核心機制:創建與 UI 生命周期綁定的 RequestManager 底層實現: 通過 RequestManagerRetriever 獲取單例 非 Application 上下文: 向 Activity/Fragment 添加…

#### es相關內容的索引 ####

倒排索引 結構 #### es倒排索引的結構 ####-CSDN博客 向量索引 結構應用 #### es向量檢索 的 結構及應用_es 向量 文本檢索-CSDN博客 ann算法 ann算法的種類有哪些,之間的區別,各自的適用場景-CSDN博客 地理信息索引 es地理信息索引的類型以及geo_po…

小飛電視:智能電視與移動設備的娛樂新選擇

在數字娛樂時代,人們對于影視內容的需求日益增長,不僅追求豐富多樣的節目選擇,還希望獲得便捷、個性化的觀看體驗。小飛電視正是這樣一款專為智能電視和移動設備設計的視頻娛樂應用,它憑借海量的影視資源、高清流暢的播放效果以及…

刪除node并且重裝然后重裝vue

參考第一篇文章 node.js卸載與安裝超詳細教程_node卸載重裝-CSDN博客 第二篇文章安裝vue Vue安裝與配置教程(非常詳細)_安裝vue-CSDN博客

基于YOLOv10算法的交通信號燈檢測與識別

目錄 一.🦁 寫在前面1.1 實現模塊劃分1.2 優化與實時性支持 二.🦁 相關技術與理論基礎2.1 各版本yolo對比2.2 YOLOv10網絡結構 三.🦁 結果分析3.1 訓練損失與驗證損失分析3.2 精確率(Precision)、召回率(Re…

洪水風險圖制作全流程:HEC-RAS 與 ArcGIS 的耦合應用

技術點目錄 一、HER-RAS理論二、一維數學模型基本地形導入三、恒定流、非恒定流一維數學模型水流計算四、一維數學模型計算結果分析五、一維數學模型增設構筑物六、二維河道水動力模擬七、HEC-RAS在潰壩模型中的應用八、HEC-RAS在洪水風險圖中的應用了解更多 —————————…

視覺大語言模型未能充分利用視覺表征

視覺大語言模型未能充分利用視覺表征 FesianXu 20250612 at Wechat Search Team 前言 這兩天看到一篇新掛在arxiv上的文章 [1],討論了下視覺大語言模型的視覺表征退化問題。先前的研究將VLM缺陷歸咎于視覺編碼器薄弱,并提出集成編碼器方案以彌補不足&am…

SSRF3 任意文件讀取

一.任意文件讀取 http://192.168.112.12/pikachu-master/vul/ssrf/ssrf_curl.php?urlfile:///etc/passwd 讀取文件使用 file://文件路徑即可,這里我們換協議為file,然后從根目錄開始讀取。 /etc/passwd 我們這樣修改完url路徑后查看結果可以看到文件內…

洛谷P3953 [NOIP 2017 提高組] 逛公園

洛谷P3953 [NOIP 2017 提高組] 逛公園 洛谷題目傳送門 題目背景 NOIP2017 D1T3 題目描述 策策同學特別喜歡逛公園。公園可以看成一張 N N N 個點 M M M 條邊構成的有向圖,且沒有 自環和重邊。其中 1 1 1 號點是公園的入口, N N N 號點是公園的出…

Vue3+TypeScript+Element Plus 表格展開行優化方案

在 Vue3 TypeScript Element Plus 項目中優化表格展開行的內存使用,主要從 渲染優化、數據管理 和 內存回收 三方面入手。以下是最佳實踐和完整解決方案: 1. 懶加載展開內容(核心優化) 只當行展開時才渲染內容,避免…

OpenCV——直方圖與匹配

直方圖與匹配 一、直方圖簡介二、直方圖統計三、直方圖比較四、直方圖均衡化五、自適應的直方圖均衡化六、直方圖反向投影七、模板匹配 一、直方圖簡介 圖像直方圖(Histogram)是一種頻率分布圖,它描述了不同強度值在圖像中出現的頻率。圖像直…

通義大模型在文檔自動化處理中的高效部署指南(OCR集成與批量處理優化)

1. 傳統OCR解決方案常面臨識別精度低、版面分析能力弱、處理效率瓶頸等問題。通義大模型憑借其多模態理解和生成能力,為文檔處理領域帶來革命性突破。本文將深入探討如何高效部署通義大模型實現端到端的文檔自動化處理,特別聚焦OCR集成與批量處理優化兩…

Ubuntu20.04通過ssh協議配置遠程終端

一、在目標計算機(即被連接的計算機)上操作: 1、安裝 OpenSSH 服務器: sudo apt update sudo apt install openssh-server3、啟動并設置 SSH 服務開機自啟: sudo systemctl enable --now ssh二、在源計算機&#xf…

《HTTP權威指南》 第7章 緩存

帶著問題學習: 緩存如何提高性能如何衡量緩存的有效性緩存置于何處作用最大HTTP如何保持緩存副本的新鮮度緩存如何與其他緩存及服務器通信 web緩存是可以自動保存常見文檔副本的HTTP設備。 緩存優點 減少冗余的數據傳輸,節省網絡費用緩解網絡瓶頸問題&…

第十三章 模板

函數模板 函數模板使用 函數模板注意事項 自動類型推導,必須推導出一致的數據類型T,才可以使用 模板必須要確定出T的數據類型,才可以使用 普通函數和函數模板的類型轉化 普通函數隱式類型轉化(char轉int) 函數模板正常使用不會發生…

云計算-專有網絡VPC

🌐 什么是 VPC?(Virtual Private Cloud) VPC(Virtual Private Cloud,虛擬私有云) 是公有云服務商提供的一種網絡隔離服務,允許用戶在云中創建一個邏輯隔離的私有網絡環境。你可以在這…

關于*gin.Context的理解

關于*gin.Context的理解 作為初學者,在學習go語言用gin開發web時,我對*gin.Context感到困惑。本文章以自我總結為主,大部分為來自詢問ai后的總結,如有問題歡迎指出。 *gin.Context可以理解為一個gin框架的上下文對象指針&#x…

Qt中的OpenGL (6)[坐標系統]

文章目錄 文章說明學習目標目錄結構坐標系統局部空間世界空間觀察空間裁剪空間正射投影矩陣透視投影矩陣組合進入3D世界頂點數據著色器設置數據矩陣設置文章說明 本文是學習OpenGL的筆記,主要參考大神JoeyDeVries的LearnOpenGL第八課《坐標系統》,并將教程中的代碼基于Qt進行…

Spring Aop @After (后置通知)的使用場景?

核心定義 After 是 Spring AOP 中的另一種通知(Advice)類型,通常被稱為“后置通知”或“最終通知”。 它的核心作用是: 無論目標方法是正常執行完成,還是在執行過程中拋出了異常,After 通知中的代碼 總是…

UNet改進(4):交叉注意力(Cross Attention)-多模態/多特征交互

在計算機視覺領域,UNet因其優異的性能在圖像分割任務中廣受歡迎。本文將介紹一種改進的UNet架構——UNetWithCrossAttention,它通過引入交叉注意力機制來增強模型的特征融合能力。 1. 交叉注意力機制 交叉注意力(Cross Attention)是一種讓模型能夠動態地…