導航:首頁 > 編程語言 > 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堆內存大小相關的資料

熱點內容
程序員吃雞蛋炒菜 瀏覽:173
在哪裡看俄羅斯電視劇app 瀏覽:308
怎麼找資料庫伺服器地址 瀏覽:486
伺服器調試怎麼翻譯 瀏覽:921
php如何處理ajax請求 瀏覽:211
php數組下標存在 瀏覽:706
php獲取ip歸屬地 瀏覽:175
撩女程序員怎麼辦 瀏覽:508
百度伺服器做什麼 瀏覽:192
打開軟體加速伺服器有什麼危害 瀏覽:87
php去除數組下標 瀏覽:794
ipad的app內容哪裡看 瀏覽:284
遇見空間app在哪裡 瀏覽:547
用命令對一個文件內容進行統計 瀏覽:317
華為交換機配置命令縮寫 瀏覽:344
鏈接伺服器出現問題怎麼處理 瀏覽:833
華為手機怎麼打開加密 瀏覽:676
開利中央空調壓縮機 瀏覽:742
程序員面臨脫發 瀏覽:872
javaweb管理系統源碼下載 瀏覽:733