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

排查Java應用內存泄漏問題的步驟

 更新時間:2020年11月24日 09:50:00   作者:西北偏北  
這篇文章主要介紹了排查Java應用內存泄漏問題的步驟,幫助大家更好的理解和學習Java,感興趣的朋友可以了解下

什么是內存泄漏

內存泄漏是指java應用的堆內存使用率持續(xù)升高,直至內存溢出。
內存泄漏的的原因可能有多種

  • 分配給應用程序的內存本身過小。而應用的業(yè)務代碼,確實需要生成大量的對象
  • 代碼bug,某些需要被回收的對象,由于代碼bug,卻持續(xù)的被引用,導致java虛擬機無法回收這些對象。從而撐爆內存

無論哪種內存泄露,我們的解決方法都是要定位到具體是什么對象,占用了大量內存,從而方便我們基于此進行代碼分析,debug,找出代碼問題。
而能夠幫助我們實現(xiàn)這一目的的方式就是獲取java應用的內存 dump

如何獲取內存dump

使用命令獲取jcmd

首先需要獲取java 進程id,獲取到java進程后
使用命令

jcmd <pid> GC.heap_dump <file-path>

如果執(zhí)行報錯

com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded

一般是由于執(zhí)行jcmd的用戶同java應用本身不是同一個用戶。解決辦法是切換到應用對應的用戶下再執(zhí)行上述命令

sudo -u [userid] /jcmd <pid> GC.heap_dump <file-path>

如果應用在本地

如果應用是在本地,除了用上述方法外,還可以用JVisualVM 、JConsole

程序異常退出時自動dump

但更為重要的,為了準確還原應用故障的現(xiàn)場,最好通過指定java 執(zhí)行參數(shù),在程序出錯時,自動dump

java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=<file-or-dir-path>

如何分析內存dump

獲取到dump文件后,需要使用eclipse.org 出品的 Memory Analyzer 工具。使用其中的Dominator Tree,查看各對象的內存占用情況

找出占用內存最多的對象及其類信息

以上就是排查Java應用內存泄漏問題的步驟的詳細內容,更多關于Java應用內存泄漏的資料請關注腳本之家其它相關文章!

相關文章

  • 一文探索Apache HttpClient如何設定超時時間

    一文探索Apache HttpClient如何設定超時時間

    Apache HttpClient是一個流行的Java庫,用于發(fā)送HTTP請求,這篇文章主要為大家介紹了Apache HttpClient如何設定超時時間,感興趣的小伙伴可以學習一下
    2023-10-10
  • Java實現(xiàn)飛機航班管理系統(tǒng)的思路詳解

    Java實現(xiàn)飛機航班管理系統(tǒng)的思路詳解

    這篇文章主要介紹了Java實現(xiàn)飛機航班管理系統(tǒng)的思路詳解,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Java8簡單了解Lambda表達式與函數(shù)式接口

    Java8簡單了解Lambda表達式與函數(shù)式接口

    這篇文章主要介紹了Java8簡單了解Lambda表達式與函數(shù)式接口,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • 運行Jar包出現(xiàn)提示xxx中沒有主清單屬性報錯問題解決方法

    運行Jar包出現(xiàn)提示xxx中沒有主清單屬性報錯問題解決方法

    這篇文章主要介紹了運行Jar包出現(xiàn):xxx中沒有主清單屬性報錯,當出現(xiàn)報錯:xxx中沒有主清單屬性,解決方法也很簡單,在pom.xml配置中,加上相應配置即可,需要的朋友可以參考下
    2023-08-08
  • VScode+Java配置與使用的詳細步驟

    VScode+Java配置與使用的詳細步驟

    這篇文章主要介紹了VS code+Java配置與使用的詳細步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • 關于SpringBoot簡介、官網構建、快速啟動的問題

    關于SpringBoot簡介、官網構建、快速啟動的問題

    SpringBoot 是由Pivotal團隊提供的全新框架,其設計目的是用來簡化Spring應用的初始搭建以及開發(fā)過程,這篇文章主要介紹了SpringBoot簡介、官網構建、快速啟動,需要的朋友可以參考下
    2022-07-07
  • BaseJDBC和CRUDDAO的寫法實例代碼

    BaseJDBC和CRUDDAO的寫法實例代碼

    這篇文章主要介紹了BaseJDBC和CRUDDAO的寫法實例代碼,代碼注釋十分詳細,具有一定參考價值,需要的朋友可以了解下。
    2017-09-09
  • mybatis 忽略實體對象的某個屬性(2種方式)

    mybatis 忽略實體對象的某個屬性(2種方式)

    這篇文章主要介紹了mybatis 忽略實體對象的某個屬性方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • mybatis-plus常用注解@TableId和@TableField的用法

    mybatis-plus常用注解@TableId和@TableField的用法

    本文主要介紹了mybatis-plus常用注解@TableId和@TableField的用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • JAVA項目如何打包部署到Linux服務器上

    JAVA項目如何打包部署到Linux服務器上

    本文詳細介紹了在服務器上部署環(huán)境包括JDK、MySQL、Tomcat的設置,以及使用Idea-Maven-SpringBoot進行jar包打包部署的流程,內容涵蓋了MySQL配置注意事項、pom.xml配置、打包命令等關鍵步驟,同時,也提供了如何將jar包上傳到Linux服務器并運行的具體方法
    2024-10-10

最新評論