• <em id="6vhwh"><rt id="6vhwh"></rt></em>

    <style id="6vhwh"></style>

    <style id="6vhwh"></style>
    1. <style id="6vhwh"></style>
        <sub id="6vhwh"><p id="6vhwh"></p></sub>
        <p id="6vhwh"></p>
          1. 国产亚洲欧洲av综合一区二区三区 ,色爱综合另类图片av,亚洲av免费成人在线,久久热在线视频精品视频,成在人线av无码免费,国产精品一区二区久久毛片,亚洲精品成人片在线观看精品字幕 ,久久亚洲精品成人av秋霞

            java heap space(java heap space 解決方法)

            更新時間:2023-03-01 13:31:16 閱讀: 評論:0

            JVM的OOM分為多種情況,下面會針對java.lang.OutOfMemoryError: Java heap space這種情況講解一下發生的原因與解決方案。

            在JAVA應用啟動時,會限制應用的使用空間。也就說,任何一個JAVA應用,都只能使用有限的內存空間。

            JAVA的內存空間在JDK7及以前劃分為堆與永久代。在JDK8之后移除了永久代,采用元空間來代替。

            在啟動時,通過指定JVM參數:`-Xmx` 來設置可使用的最大堆大小。如果沒有顯式的設置,則系統上默認為物理內存的1/4(根據物理內存的不同情況有不同的分配規則。但是普遍可以認為是1/4)。

            發生java.lang.OutOfMemoryError: Java heap space異常時,代表著應用嘗試從堆上申請一個區域時,堆沒有可配的空間。(注:可能有可使用的物理內存,但是沒有已經達到了JAVA應用可分配的內存大小)

            JVM是很智能的,在即將發生OOM時,會進行一次FullGC以回收可回收的對象來釋放空間。如果FullGC之后還是沒有可滿足大小的空間分配,才拋出java.lang.OutOfMemoryError: Java heap space。

            java.lang.OutOfMemoryError: Java heap space正常是怎么發生的呢?

            突發高峰期:程序在正常的用戶量和一定數據量時運行正常。但是,在某個高峰時導致超出預期閾值,內存存活對象使用空間的量超出最大堆,并且無法回收。內存泄露: 由于編程錯誤導致應用程序不再需要的對象(數據)一直被持有引用,導致無法被回收。隨著時間的推移,泄露的內存對象占用了所有的可用堆空間。分配合理的足夠內存

            最簡單的解決方法就給JVM分配足夠大的內存來滿足運行程序的需求。

            但是,需要注意在內存泄漏的情況下,分配再大的內存也只是推遲了java.lang.OutOfMemoryError: Java heap space的發生。

            而且,加大了JVM堆內存,也會增加在GC時的暫停時間(STW),影響程序的吞吐量,增加延遲。

            如何分配一個合理的內存空間,是需要針對GC進行優化的。也就是常說的JVM調優。

            JVM調優可以參考:「JVM」GC——調優介紹

            那么,如何調整通過分配JAVA堆空間來解決問題呢?

            首先,需要了解以下這些問題:

            哪些對象占用了大量的堆空間在哪些代碼中創建了這些對象

            上述的問題可以通過JVM自身的jmap來dump出運行時的堆棧信息。然后通過如:MAT,JProfiler,jconsole等空間來進行內存對象占用的跟蹤。

            MAT使用可以參考:[JVM] MAT進階使用

            當然,這種方式是比較原始的方式。建議通過如:Plumbr等JVM監控工具來跟蹤問題。

            Plumbr的報告信息

            以上圖的監控舉例簡要說明一下如何適當的進行堆空間的大小分配。

            上圖所示中,可以得到如下信息:

            所有相關對象的整個GCRoot引用內存消耗最多的對象:這些對象在代碼中的分配位置:

            根據上述的信息, 我們可以得到這樣的猜想:

            這個程序的需要的運行空間超過248MB,并且是無法在一定時間內釋放被回收。那么,按JVM調優的思路,建議分配的最大堆大小為:老年代活躍數據大小 * 3~4倍。

            所以,我們第一次調整時,可以分配:248 * 4 = 992。

            由于堆大小的無法確認,所以第一次調整直接調整為:-Xmx1024m。

            單位:

            -Xmx1024 即配置1024b = 1kb

            -Xmx1024k 即配置1mb

            -Xmx1024m 即配置1gb

            -Xmx1g 即配置1gb

            建議:

            在配置-Xmx時,應該將-Xms也配置成相同大小。避免JVM需要動態調整堆空間大小帶來的性能影響。

            本文由java架構筆記原創,歡迎關注,帶你一起長知識!

            本文發布于:2023-02-28 20:00:00,感謝您對本站的認可!

            本文鏈接:http://m.newhan.cn/zhishi/a/167764867676190.html

            版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。

            本文word下載地址:java heap space(java heap space 解決方法).doc

            本文 PDF 下載地址:java heap space(java heap space 解決方法).pdf

            標簽:解決方法   java   heap   space
            相關文章
            留言與評論(共有 0 條評論)
               
            驗證碼:
            推薦文章
            排行榜
            Copyright ?2019-2022 Comsenz Inc.Powered by ? 實用文體寫作網旗下知識大全大全欄目是一個全百科類寶庫! 優秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 九九热视频在线免费观看| 日本一区二区三区视频版| 久久婷婷大香萑太香蕉AV人| 狠狠躁夜夜躁人人爽天天bl| 偷窥盗摄国产在线视频| 久久热99这里只有精品| 91精品国产麻豆国产自产| 在线看高清中文字幕一区| 男人狂桶女人出白浆免费视频| 色噜噜亚洲男人的天堂| 欧美日本激情| 人妻暴雨中被强制侵犯在线| 成全观看高清完整版免费动漫电影| 亚洲天堂久久久| 精品无码三级在线观看视频| 一区二区三区午夜无码视频| 国产成人综合亚洲第一区| 好吊妞人成视频在线观看| 国产日韩一区二区天美麻豆| 成人欧美一区二区三区在线观看| 性色av一区二区三区夜夜嗨| 色欲香天天天综合网站无码| 国精品午夜福利视频| 久久亚洲色www成人| 中文字幕亚洲人妻一区| 中文字幕国产精品日韩| 中文在线8资源库| 久久精品国产免费观看频道| 色欲av久久一区二区三区久| 中文字幕精品亚洲字幕成| 亚洲欧洲日产国无高清码图片| 久久99国产精品久久99小说| 亚洲熟妇色xxxxx亚洲| 超清无码一区二区三区| 久久婷婷国产精品香蕉| 亚洲精品漫画一二三区| 亚洲国产精品人人做人人爱| 午夜爽爽爽男女免费观看影院| 国产日韩AV免费无码一区二区三区| 一级欧美牲交大片免费观看| 日韩一区二区三区三级|