堆內存大小的配置


設置

  • Java堆區用於存儲java對象實例,堆的大小在jvm啟動時就已經設定好了,可以通過 "-Xmx"和 "-Xms"來進行設置
    • -Xms 用於表示堆的起始內存,等價於 -XX:InitialHeapSize
      • -Xms 用來設置堆空間(年輕代+老年代)的初始內存大小
        • -X 是jvm的運行參數
        • ms 是memory start
    • -Xmx 用於設置堆的最大內存,等價於 -XX:MaxHeapSize
  • 一旦堆區中的內存大小超過 -Xmx所指定的最大內存時,將會拋出OOM異常
  • 通常會將-Xms和-Xmx兩個參數配置相同的值,其目的就是為了能夠在java垃圾回收機制清理完堆區后不需要重新分隔計算堆區的大小,從而提高性能
  • 默認情況下,初始內存大小:物理內存大小/64;最大內存大小:物理內存大小/4
    • 手動設置:-Xms600m -Xmx600m

查看

方式一: 終端輸入jps, 然后jstat -gc 進程id

方式二:(控制台打印)Edit Configurations  ->  VM Options 添加  -XX:+PrintGCDetails

方式三:

 1 public class HeapSpaceInitial {
 2     public static void main(String[] args) {
 3 
 4         //返回Java虛擬機中的堆內存總量
 5         long initialMemory = Runtime.getRuntime().totalMemory() / 1024 / 1024;
 6         //返回Java虛擬機試圖使用的最大堆內存量
 7         long maxMemory = Runtime.getRuntime().maxMemory() / 1024 / 1024;
 8 
 9         System.out.println("-Xms : " + initialMemory + "M");
10         System.out.println("-Xmx : " + maxMemory + "M");
11 12 }

 

 

附:JVM學習目錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM