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

熱點內容
knn演算法如何減少計算次數 瀏覽:246
阿里雲伺服器地區價格 瀏覽:138
輕觸app顯示卸載功能怎麼關閉 瀏覽:474
程序員校招面試 瀏覽:381
u啟動盤開源碼 瀏覽:824
電腦不能解壓rar嗎 瀏覽:100
下面關於ssh命令正確的是 瀏覽:18
我的世界命令方塊怎麼得視頻 瀏覽:486
金蝶伺服器ip地址變更怎麼重新連接 瀏覽:256
安卓vr有什麼好的游戲 瀏覽:606
stc單片機高電平檢測 瀏覽:706
如何學單片機 瀏覽:765
圖片像素壓縮軟體 瀏覽:573
面試自我介紹程序員 瀏覽:296
為什麼叫單片機 瀏覽:600
如何為伺服器增加第三個ip 瀏覽:713
閱讀pdf的平板 瀏覽:885
網頁源碼廣告特徵 瀏覽:99
linux文件查看工具 瀏覽:579
androidgps經緯度轉換 瀏覽:334