導航:首頁 > 編程語言 > java堆內存大小

java堆內存大小

發布時間:2024-12-20 17:10:13

㈠ 為什麼java程序佔用的內存比指定的堆棧大小要大

本文簡明概要地說明了java程序的佔用內存構成
對象(Objects)
類(Classes)
線程(Theads)
本地數據結構(Native data structures)
本地代碼(Native code)
每個因素對內存佔用的影響又會隨著應用程序、運行環境和系統平台的不同而變化,那怎樣計算總的內存佔用量?是的,想得到一個准確的數字不是那麼容易,因為你很難控制本地(Native)部分。你能控制的部分只有堆大小:-Xmx,類佔用的內存:-XX:MaxPermSize,還有線程棧:-Xss控制每個線程佔用的內存。注意當把棧大小設置的太小時會導StackOverflow異常、程序出錯。所以,計算公式為:
(-Xmx)+(-XX:MaxPermSize)+線程數*(-Xss)+其它內存
其它內存部分取決於本地代碼佔用的內存,如NIO、Socket緩沖區、JNI等。它一般大約是JVM內存的5%左右。所以假設我們有下面的JVM參數和100個線程:
-Xmx1024m-XX:MaxPermSize=256m-Xss512k
那麼JVM進程至少會佔用內存數量為:1024m+256m+100*512k+(0.05*1330m)=1396.5m
我一般使用(1.5*堆最大值)來作為一個近似值表示一個Tomcat進程會需要的最小內存,如果你有需要增加MaxPermSize到256M以上的應用這個值可以更大些。

閱讀全文

與java堆內存大小相關的資料

熱點內容
瘦吧大數據在APP哪裡看 瀏覽:621
層次聚類演算法最小距離 瀏覽:693
抖音視頻加源碼 瀏覽:531
運營影視源碼 瀏覽:640
北京電信伺服器託管雲空間伺服器 瀏覽:369
一般學編程有必要嗎 瀏覽:753
機器人編程方法 瀏覽:992
表盤編程gt 瀏覽:9
java源代碼閱讀 瀏覽:736
程序員用什麼鍵盤羅技 瀏覽:169
為什麼安卓手機每天都要更新app 瀏覽:707
java怎麼成為程序員 瀏覽:290
西門子s7200編程電纜怎麼連接 瀏覽:532
下載網頁中的pdf文件 瀏覽:91
音樂緩存文件夾的軟體 瀏覽:396
Dkms編譯列印機驅動 瀏覽:996
解壓縮文件操作異常 瀏覽:557
等待代碼編譯時你會幹嘛 瀏覽:493
單片機c語言中變數右移8位 瀏覽:82
解壓的一個小短片 瀏覽:831