<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] # 內存圖 ![](../images/screenshot_1574871182818.png) # Heap(堆)內存大小設置 ~~~ -Xms512m > 設置JVM堆初始內存為512M ~~~ ~~~ -Xmx1g > 設置JVM堆最大可用內存為1G ~~~ ## New Generation(新生代)內存大小設置 ~~~ -Xmn256m > 設置JVM的新生代內存大小(-Xmn 是將NewSize與MaxNewSize設為一致。256m),同下面兩個參數 > -XX:NewSize=256m > -XX:MaxNewSize=256m ~~~ **還可以通過新生代和老年代內存的比值來設置新生代大小** ~~~ -XX:NewRatio=3 > 設置新生代(包括Eden和兩個Survivor區)與老年代的比值(除去持久代)。設置為3,則新生代與老年代所占比值為1:3,新生代占整個堆棧的1/4 ~~~ ## Survivor內存大小設置 ~~~ -XX:SurvivorRatio=8 ~~~ > 設置為8,則兩個Survivor區與一個Eden區的比值為2:8,一個Survivor區占整個新生代的1/10 ## Eden內存大小設置 新生代減去`2*Survivor`的內存大小就是Eden的大小。 # Old Generation(老年的)的內存大小設置 堆內存減去新生代內存 如上面設置的參數舉例如下: 老年代初始內存為:`512M-256M=256M ` 老年代最大內存為:`1G-256M=768M` # Stack(棧)內存大小設置 `-Xss1m` 每個線程都會產生一個棧。在相同物理內存下,減小這個值能生成更多的線程。如果這個值太小會影響方法調用的深度。 # Permanent Generation(持久代)內存大小設置 方法區內存分配(JDK8以前的版本使用,JDK8以后沒有持久代了,使用的MetaSpace) ~~~ -XX: PermSize=128m 設置持久代初始內存大小128M -XX:MaxPermSize=512m 設置持久代最大內存大小512M ~~~ # Metaspace(元空間)內存大小設置 元空間(Metaspace)(JDK8) ~~~ -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m(JDK8) ~~~ JDK8的持久代幾乎可用完機器的所有內存,同樣設一個128M的初始值,512M的最大值保護一下。 > 1. 默認情況下,類元數據分配受到可用的本機內存容量的限制(容量依然取決于你使用32位JVM還是64位操作系統的虛擬內存的可用性)。 2. 一個新的參數 (MaxMetaspaceSize)可以使用。允許你來限制用于類元數據的本地內存。如果沒有特別指定,元空間將會根據應用程序在運行時的需求動態設置大小。 # Direct ByteBuffer(直接內存)內存大小設置 ~~~ -XX:MaxDirectMemorySize ~~~ > 此參數的含義是當Direct ByteBuffer分配的堆外內存到達指定大小后,即觸發Full GC。注意該值是有上限的,默認是64M,最大為sun.misc.VM.maxDirectMemory(),在程序中中可以獲得-XX:MaxDirectMemorySize的設置的值。 > 使用NIO可以api可以使用直接內存。 # 設置新生代代對象進入老年代的年齡 ~~~ -XX:MaxTenuringThreshold=15 ~~~ > 設置垃圾最大年齡。如果設置為0的話,則新生代對象不經過Survivor區,直接進入老年代。對于老年代比較多的應用,可以提高效率。如果將此值設置為一個較大值,則新生代對象會在Survivor區進行多次復制,這樣可以增加對象再新生代的存活時間,增加在新生代即被回收的概論。 他最大值為15歲,因為對象頭中用了4位進行存儲垃圾年齡 【1111(二進制)=15(十進制)】。 # 不常用的參數: `-XX:MaxHeapFreeRatio=70` > GC后java堆中空閑量占的最大比例,大于該值,則堆內存會減少 `-XX:MinHeapFreeRatio=40` > GC后java堆中空閑量占的最小比例,小于該值,則堆內存會增加 `-XX:PretenureSizeThreshold=1024` > (單位字節)對象大小大于1024字節的直接在老年代分配對象 `-XX:TLABWasteTargetPercent =1` > TLAB占eden區的百分比 默認1%
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看