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

熱點內容
vscodepython模塊方法 瀏覽:344
如何知道伺服器有什麼漏洞 瀏覽:902
java電商訂單支付源碼 瀏覽:102
android手機滑鼠 瀏覽:465
php支付項目經驗 瀏覽:929
中國人民銀行在哪裡下載app 瀏覽:560
松餅pdf 瀏覽:667
萌新如何獲得命令 瀏覽:138
java設計模式及代碼 瀏覽:7
命令恢復資料庫 瀏覽:192
linuxoracle11gr2 瀏覽:972
攜程APP簽到在哪裡 瀏覽:389
dwg解壓方法 瀏覽:422
雲伺服器數據溝通 瀏覽:849
android地圖定位源碼 瀏覽:632
鴻蒙系統如何解除app安裝限制 瀏覽:497
阿里雲伺服器應用鏡像選哪個 瀏覽:343
win7策略更新命令 瀏覽:299
android源碼分析之設計模式 瀏覽:294
qq郵箱上的文件怎麼解壓在電腦上 瀏覽:504