2023-06-22 08:11:49 來源 : 互聯(lián)網(wǎng)
(資料圖)
1、常見的有以下幾種:1.內(nèi)存中加載的數(shù)據(jù)量過于龐大,如一次從數(shù)據(jù)庫取出過多數(shù)據(jù);2.集合類中有對對象的引用,使用完后未清空,使得JVM不能回收;3.代碼中存在死循環(huán)或循環(huán)產(chǎn)生過多重復(fù)的對象實(shí)體;4.使用的第三方軟件中的BUG;5.啟動(dòng)參數(shù)內(nèi)存值設(shè)定的過??;解決方法:JVM申請的heap會(huì)占用相同大小的地址空間(address space)。
2、在Windows 32位操作系統(tǒng)中,分配給每個(gè)程序的地址空間只有2GB(當(dāng)然也有3GB的開關(guān))。
3、而每個(gè)不同的JVM的堆和其創(chuàng)建的進(jìn)程棧都依賴于同一個(gè)進(jìn)程地址空間,所以這也是此消彼長的原因。
4、有方法可以提高創(chuàng)建線程的數(shù)量: 減少單個(gè)線程棧的大小,在JVM啟動(dòng)中使用-Xss參數(shù)。
本文到此分享完畢,希望對大家有所幫助。