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

熱點內容
程序員是如何度過一天的 瀏覽:987
中央傳命令 瀏覽:565
cad畫戶型圖修剪命令 瀏覽:211
代碼編譯伺服器配置 瀏覽:208
河南租伺服器帶寬怎麼確定雲主機 瀏覽:177
python公式報告 瀏覽:133
阿里雲伺服器換手機 瀏覽:714
linux標准教程pdf 瀏覽:968
騰訊雲在哪找伺服器 瀏覽:682
單片機專家app漢化版 瀏覽:397
pdf列印內存不足 瀏覽:844
單片機連通虛擬機檢測網址指令 瀏覽:310
韓國伺服器怎麼選 瀏覽:282
光敏感測器嵌入單片機 瀏覽:413
php實現多繼承 瀏覽:679
linux的python目錄文件 瀏覽:90
國內雲伺服器價格申請注冊 瀏覽:282
旅行攝影pdf 瀏覽:69
為什麼開不了允許app跟蹤 瀏覽:227
qq群中如何將文件移至文件夾 瀏覽:110