日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java中的OutOfMemoryError

發布時間:2023/12/3 java 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中的OutOfMemoryError 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自??Java中的OutOfMemoryError

引子:今天在<Sharding-JDBC官方群>里有個哥們稱“不連sjdbc不會把內存吃光,連sjdbc跑一會就把內存吃光”,倍感詫異,我們已經用sj很久了,一直未發現sj吃內存的情況,遂向他要了測試程序。測試之后才發現他所謂的吃內存是報了“java.lang.OutOfMemoryError: unable to create new native thread”的錯,殊不知創建線程不使用JVM Memory,這個報錯不是程序吃內存,跟sjdbc更是沒有關系。他的數據庫連接池maxActive=30,開線程較多時(我開了10000個),前面的線程沒有釋放數據庫連接,后面的線程就要等待,造成線程積壓,最終無法創建新線程,自然“unable to create new native thread”。所以還需要掃盲式的向諸位普及一下Java中的內存溢出。


1.java.lang.OutOfMemoryError: unable to create new native thread

就是上面例子里面提到的情況。Java中當你創建線程的時候,JVM會在JVM 內存創建一個Thread同時創建一個系統本地線程,這個系統線程使用的內存不是JVM memory,而是系統剩余的內存,所以遇到這種情況有時候需要通過“減少內存”的手段來解決(指減少堆內存)。通常情況下我們有個計算公式來估算能創建線程數的多少:countOfThreads=(processMaxMemory - JVM Memory - otherOsMemory) / (threadStackSize)?,這里的MaxProcessMemory是指一個進程可以占用的最大內存,比如在32位window下是2G,otherOsMemory是保留的操作系統內存,threadStackSize是通過-Xss參數設置的線程棧大小,當然,還會受到系統最大可創建的線程數量的限制。


2.Java.lang.OutOfMemoryError: Java heap space

這種是我們最常見的Java堆溢出,我們配置JVM參數時使用-Xms配置堆的最小值,使用-Xmx配置堆的最大值(通常會將-Xms和-Xmx配置成相同,避免堆的自動擴展)。Java堆中存放的是對象實例,當Java堆中對象達到限制就會產生內存溢出,常見的情況有:死循環往一個List中添加對象,一次性將大文件或者從數據庫查詢的大批量數據加載到內存中。對于這種情況,我們通過JVM配置-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/Data/domains/trans-account/server1/logs來保存內存快照,然后用相關內存分析工具進行分析。


3.?java.lang.OutOfMemoryError: PermGen space

?PermGen space的全稱是Permanent Generation space,是內存的永久保存區域,主要存儲虛擬機加載的類、常量、靜態變量等元數據信息,垃圾收集行為在這個區域幾乎不出現。對于有大量JSP、大量使用CGLib字節碼增強的應用,會很容易出現這種錯誤,出現問題時,我們經常通過增大-XX:MaxPermSize參數來解決。


4.?java.lang.OutOfMemoryError: GC overhead limit exceeded

GC overhead limt exceed檢查是Hotspot VM定義的一個策略,通過統計GC時間來預測是否要OOM了,提前拋出異常,防止OOM發生。官方對此的定義是:“并行/并發回收器在GC回收時間過長時會拋出OutOfMemroyError。過長的定義是,超過98%的時間用來做GC并且回收了不到2%的堆內存。用來避免內存過小造成應用不能正常工作。”這種情況跟第二種情況有重合的地方,也是通過檢查是否有死循環或者占用大內存的代碼,當然,可以使用-XX:-UseGCOverheadLimit(默認是+UseGCOverheadLimit)來去除GC時間的限制。


5.?java.lang.OutOfMemoryError: nativeGetNewTLA

這個錯誤只有在JRockitJVM上才會遇到,大家工作環境中如果都默認使用Hotspot的話應該不會遇到這個問題,所以如果大家不感興趣完全可以不care(真的,私以為,沒有業務場景基礎的技術意淫都是耍流氓)。TLA是Thread Local Area(線程本地空間)的簡寫,線程本地空間是多線程程序里面為了更有效的進行內存分配而建立的緩存。每一個線程都有一份自己的緩存,當這個線程要創建對象的時候,就在這上面分配。如果你有很多線程同時并發,又要創建大量的對象,可能會出現這個問題。


6.java.lang.OutOfMemoryError: Requested array size exceeds VM limit?

這個錯誤比較少見,除非你真的new了一個非常非常大的數組(比如,一個億?YOU CAN TRY~)當出現這種情況,與其去增大JVM的-Xmx,不如好好看下你的代碼邏輯是不是出現了什么問題。


7.java.lang.OutOfMemoryError: request xxxxxx(size) bytes for xxxxxxx(reason). Out of swap space??

額,這種情況我真沒遇到過,不過我們可以了解一下:它是當虛擬機向本地操作系統申請內存失敗時拋出的。這和你用完了堆或者持久化中的內存的情況有些不同。這個錯誤通常是在你的程序已經逼近平臺限制的時候產生的。這個信息告訴你的是你可能已經用光了物理內存以及虛擬內存了。由于虛擬內存通常是用磁盤作為交換分區,因此你最先想到的解決方法可能是先增加交換分區的大小。


8.java.lang.OutOfMemoryError: xxxx<reason> xxxx<stack trace>(Native method)

這種報錯是從native method中拋出的,不是JVM執行的方法,如果遇到這種情況,咳,自求多福吧。



總結

以上是生活随笔為你收集整理的Java中的OutOfMemoryError的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产成人无码精品 | 亚洲自拍电影 | 亚洲精品91天天久久人人 | 无套内谢的新婚少妇国语播放 | 亚洲欧美自拍一区 | 亚洲av成人一区二区国产精品 | 欧美成人精品一区 | 能直接看的av网站 | 国产crm系统91在线 | 国产黄色自拍视频 | 日本黄色不卡 | 成人区视频 | jizz成人| 99ri精品 | 99久久久久久久久 | jizz国产精品 | 色干综合 | 日韩av高清在线播放 | 国产精品videossex久久发布 | 无码日韩精品一区二区 | 成人91免费 | 国产精品资源网站 | 久久免费在线观看视频 | 亚洲一区二区在线 | 韩国成人在线 | 国产污污视频在线观看 | 日韩三级成人 | 热热色原网址 | 欧美日韩啪啪 | www.日本免费 | 人体内射精一区二区三区 | 久章草影院 | 国产精品9999 | 成年人av在线 | 久久精品视频一区 | 成人69视频 | 国精品一区二区三区 | 毛片在线网 | 污污内射在线观看一区二区少妇 | 男人喷出精子视频 | 裸体黄色片 | 韩国av网| 国产3p视频 | 欧美一级日韩一级 | 国产精品欧美性爱 | 精品一区二区在线看 | 国内自拍视频在线观看 | 外国毛片| 日本成人免费网站 | 国产一区二区三区高清视频 | 亚洲熟区 | 精品国模一区二区三区欧美 | 丰满人妻熟妇乱偷人无码 | 日本xxxx裸体xxxx出水 | 小柔好湿好紧太爽了国产网址 | 欧美一区二区三区久久妖精 | 国产原创视频在线 | 成人精品免费 | 亚洲无av在线中文字幕 | 综合另类| 国产一区不卡在线观看 | 伊人婷婷综合 | 91在线看视频 | 亚洲aaaaa特级| 亚洲国产成人自拍 | 欧美激情综合 | 久久精品三级 | 久久久久久国产免费a片 | 久久精品国产一区 | 亚洲国产精品视频 | 成人福利在线免费观看 | 成人做爰69片免费观看 | www.啪 | 色中色综合 | 秋霞一区二区三区 | 日本色www| 亚洲精品白浆高清久久久久久 | 日本午夜影视 | 免费看a的网站 | 国产男男chinese网站 | 国产成人无码精品久在线观看 | 欧美呦呦呦 | 青青久在线视频 | 玖草影院 | 丰满少妇被猛烈进入高清播放 | 在线免费观看黄色小视频 | 久久伊人色 | 一级性生活大片 | 精品国产乱码久久久 | 天天想你免费观看完整版高清电影 | 欧美一区二区在线观看视频 | 亚洲 欧美 激情 另类 | 国产视频福利在线 | 日韩中文久久 | 成人羞羞国产免费动态 | 婷婷综合影院 | 啪啪免费网 | 中国亚洲老头同性gay男男… | 久久久成人精品一区二区三区 |