<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      bapiera

      導航

      JVM之關鍵參數


      =============================================================
      JVM關鍵參數
      =============================================================

      本文列出來JVM的一些關鍵參數及使用方法,主要包括了Heap堆基礎參數,Heap堆的動態調整參數,新生代內存參數,永久代內存參數,JVM線程設置參數,各個垃圾回收器關鍵參數,codecache關鍵參數。本章末尾有思維導圖,可參考。


      -------------------------------------------------------------
      一、Heap堆的大小
      -------------------------------------------------------------


      1.1 Xmx 堆內存最大使用內存。使用方法: -Xmx___

      1.2 Xms 堆內存最小使用內存。使用方法 -Xms___

      1.3 MaxHeapSize Xmx等價于MaxHeapSize。使用方法:-XX:MaxHeapSize=___

      1.4 InitialHeapSize Xms等價于InitialHeapSize。使用方法:-XX:InitialHeapSize=___


      -------------------------------------------------------------
      二、Heap堆的動態調整
      -------------------------------------------------------------


      2.1 Xminf 指定了 jvm heap 在使用率小于 n 的情況下 ,heap 進行收縮 ,Xmx==Xms 的情況下無效。使用方法:-Xminf___

      2.2 Xmaxf 指定了 jvm heap 在使用率大于 n 的情況下 ,heap 進行收縮 ,Xmx==Xms 的情況下無效。使用方法:-Xmaxf___

      2.3 MinHeapFreeRatio Xminf等價于MinHeapFreeRatio。使用方法:-XX:MinHeapFreeRatio=___

      2.4 MaxHeapFreeRatio Xmaxf等價于MaxHeapFreeRatio。使用方法:-XX:MaxHeapFreeRatio=___

      2.5 MinHeapDeltaBytes 表示當我們要擴容或者縮容的時候,決定是否要做或者嘗試擴容的時候最小擴/縮多少,默認為192K。使用G1時,在當新生代無法存儲新創建的對象時,會先做一次擴容,擴容大小就是MinHeapDeltaBytes的值,如果還存不下就做GC。使用方法:-XX:MinHeapDeltaBytes=___

      tip:

      1.指定 jvm heap 在使用率小于 n 的情況下 ,heap 進行收縮 ,Xmx==Xms 的情況下無效
      2.默認大小40/70 PS收集器 自適應模式0/100
      3.這兩個值只作用于G1收集器,其他收集器只作用于老年代
      4.CMS-GC如果沒有指定老年代固定使用率觸發CMS GC的閾值,那么MinHeapFreeSize會配合CMSTriggerRatio參數計算出觸發CMS-GC的閾值(92%)


      -------------------------------------------------------------
      三、NewSize
      -------------------------------------------------------------


      3.1 Xmn 參數等價于同時設置了NewSize和MaxNewSize,并且值都相等,例如-Xmn128M,等同于-XX:NewSize=128M -XX:MaxNewSize=128M

      3.2 NewSize 設置新生代有效內存的初始化大小,也可以說是新生代有效內存的最小值,當新生代回收之后有效內存可能會進行縮容,這個參數就指定了能縮小到的最小值。使用方法:-XX:NewSize=___

      3.3 MaxNewSize 設置新生代有效內存的最大值,當對新生代進行回收之后可能會對新生代的有效內存進行擴容,那到底能擴容到多大。使用方法:-XX:MaxNewSize=___

      3.4 NewRatio 當前老生代可用內存/當前新生代可用內存的比值,默認是2。使用方法:XX:NewRatio=___

      tip:

      1.每次新生代有效內存大小調整之后,新生代的幾個組成部分也會重新調整位置,包括Eden,From和To三塊內存的起止位置
      2.NewRatio 如果新生代被回收之后,其有效內存可以進行調整的話,會根據此時老生代的有效內存和NewRatio等條件計算出新生代有效內存的變化值來進行擴容或者縮容;G1-GC下不建議設置新生代這些參數,盡量自適應,GC效率會更高,這也是官方推薦的

      3.5 新生代組成:Eden + from space + to space

      3.5.1 SurvivorRatio:Eden/一個Survivor的比值,默認是8,最小值為1。CMS-GC下如果MaxTenuringThreshold設置為0,相當于每次GC都直接晉升到老生代,此時如果SurvivorRatio沒有設置的話,會將SurvivorRatio默認設置為1024。使用方法:-XX:SurvivorRatio=___

      3.5.2 InitialSurvivorRatio 新生代初始可用內存與survivor的比值,默認情況下InitialSurvivorRatio為8,那表示From和To各自占整個新生代的1/8,而Eden占(1-2*1/8=3/4),并且只在啟動的時候有用。使用方法:-XX:InitialSurvivorRatio=___

      tip:

      1.InitialSurvivorRatio不能比3小,至少是3,否則會被JVM自動調整為3,MinSurvivorRatio也是一樣的
      2.如果我們JVM參數里設置過SurvivorRatio,但是沒有設置InitialSurvivorRatio,那么InitialSurvivorRatio的值會被默認設置為SurvivorRatio+2
      3.InitialSurvivorRatio只針對PS GC算法有用


      -------------------------------------------------------------
      四、Perm Size(JDK1.7及之前版本)
      -------------------------------------------------------------


      4.1 PermSize Perm內存初始值的大小,也是最小值(初始值21757952bite)。使用方法:-XX:PermSize=___

      4.2 MaxPermSize Perm內存的最大值,Perm空間的可用大小會在PermSize和MaxPermSize之間動態變化。使用方法:-XX:MaxPermSize=___

      tip:
      1.PermSize比MaxPermSize大,那么會將MaxPermSize設置為PermSize
      2.PermSize按照64K對齊,而MaxPermSize按照2M對齊
      3.真正可用的Perm邊界的值并不一定是按照上面的值對齊好后的值,PS-GC下,PermSize最終會按照512K對齊,但是jinfo看到的PermSize的值還是原來計算的64K對齊的值,CMS-GC下就按照64K對齊
      4.PermSize必須不小于1M
      5.Class對象默認情況下是存在Heap里,如果我們設置了-XX:+UnlockDiagnosticVMOptions -XX:+JavaObjectsInPerm這兩個參數,那將分配在Perm里


      -------------------------------------------------------------
      五、Metaspace(JDK1.7版本以上,代替了Perm Size)
      -------------------------------------------------------------


      5.1 -XX:MetaspaceSize=___

      5.2 CompressedClassSpaceSize JVM啟動的時候會專門分配一塊內存,大小是CompressedClassSpaceSize,正常情況會類似Perm一樣挨著Heap分配,這塊內存專門來存類元數據的klass部分( UseCompressedClassPointers未開啟,CompressedClassSpaceSize參數沒有效果)。使用方法:-XX:CompressedClassSpaceSize=___

      5.3 InitialBootClassLoaderMetaspaceSize InitialBootClassLoaderMetaspaceSize主要指定BootClassLoader的存儲非klass部分的數據的。使用方法:-XX:InitialBootClassLoaderMetaspaceSize=___

      tip:
      1.Metaspace如果類加載器很多的時候,最大的問題就是碎片化的問題
      2.jstat看到的Metaspace內存的使用率,分母是committed的size,而不是整個Reserved的內存


      -------------------------------------------------------------
      六、Thread Size(在JVM里大概可以分為兩類線程,Java線程和非Java線程,比如GC線程這些都屬于非Java線程,在JVM里還有一個VMThread,這個也是非Java線程)
      -------------------------------------------------------------


      6.1 Xss JAVA線程棧大小 Xss和ThreadStackSize是等價的(-Xss100K等價于-XX:ThreadStackSize=100) ThreadStackSize的值64位os下默認是1M,最小值是228k

      6.2 VMThreadStackSize JVM線程棧大小 64位os下默認大小為4M,32位下默認位2M

      6.3 CompilerThreadStackSize 設置編譯線程棧的大?。?4位os下默認大小為4M,32位下默認位2M)


      -------------------------------------------------------------
      七、垃圾回收器
      -------------------------------------------------------------


      7.1 G1 使用G1垃圾回收器:-XX:+UseG1GC

      7.1.1 -XX:MaxGCPauseMillis 目標(GC)最大停頓時間,設置之后G1會自動調整相關參數試圖達到此目標。使用方法:-XX:MaxGCPauseMillis=___(默認200ms)

      7.1.2 -XX:ParallelGCThreads 并行回收時GC的工作線程數量。默認是2,8核以上是8+((cpu-8)*5)/8。使用方法:-XX:ParallelGCThreads=___

      7.1.3 -XX:InitiatingHeapOccupancyPercent 指定整個堆使用率達到多少時觸發并發標記周期(默認45)。使用方法:-XX:InitiatingHeapOccupancyPercent=___


      7.2 CMS收集器 開啟CMS回收器 -XX:+UseConcMarkSweepGC

      7.2.1 -XX:ConcGCThreads 并發線程數量,默認ConcGCThreads = (ParallelGCThreads + 3)/4。使用方法:-XX:ConcGCThreads=___

      7.2.2 -XX:CMSInitiatingOccupancyFraction 觸發老年代GC百分比。老年代增長緩慢可以調大,可以降低CMS觸發頻率;老年代增長快可以調小,以避免頻繁觸發老年代串行回收器。默認68(CMS回收時若出現內存不足,則CMS回收失敗,強制觸發老年代串行回收器)
      ,若要使用必須加上-XX:+UseCMSInitiatingOccupancyOnly。使用方法:-XX:CMSInitiatingOccupancyFraction=___

      7.2.3 -XX:CMSFullGCsBEforeCompaction 設定多少次CMS回收后進行一次內存壓縮。使用方法:-XX:CMSFullGCsBeforeCompaction=___

      7.2.4 -XX:CMSClassUnloadingEnabled Whether class unloading enabled when using CMS GC(Perm)。使用方法:-XX:+CMSClassUnloadingEnabled

       

      7.3 PS收集器

      7.3.1 -XX:GCTimeRatio 吞吐量大小,若值為n,那么系統將花費不超過1/(1+n)的時間進行垃圾回收(默認99)。使用方法:-XX:GCTimeRatio=___

      7.3.2 -XX:UseAdaptiveSizePolicy 自適應策略,僅指定最大堆、目標吞吐量和最大停頓時間。使用方法:-XX:+UseAdaptiveSizePolicy


      -------------------------------------------------------------
      八、Codecache
      -------------------------------------------------------------


      8.1 InitialCodeCacheSize 初始CodeCacheSize大小(默認值2555904bytes)

      8.2 ReservedCodeCacheSize 最大CodeCacheSize大?。J值JDK-750331648、JDK8-251658240)

      8.3 Xmaxjitcodesize與ReservedCodeCacheSize等價

      8.4 CodeCacheMinimumFreeSpace 當CodeCache的可用大小不足這個值的時候,就會進行code cache full的處理。默認值(512000)

       

      轉載請注明出處,商用請征得作者本人同意,謝謝?。?!

      posted on 2020-08-31 22:55  柯南道爾的江戶川  閱讀(769)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 亚洲午夜爱爱香蕉片| 2021国产在线视频| 亚洲国产中文字幕精品| 成人片在线看无码不卡| 亚洲国产精品综合久久2007 | 日本一卡2卡3卡4卡无卡免费| 日韩一区二区黄色一级片| 国产18禁一区二区三区| 最新午夜男女福利片视频| 不卡一区二区国产精品| 老色鬼在线精品视频在线观看 | 免费av深夜在线观看| 日韩亚洲国产激情一区二区| 国产在线观看免费观看| 国产综合久久亚洲综合| 久久国产精品-国产精品| 国产成人精品一区二三区| 仪征市| 色橹橹欧美在线观看视频高清| 日本不卡一区二区三区在线| 偷拍精品一区二区三区| 久久久久青草线蕉亚洲| 中文字幕人妻不卡精品| 久久天天躁夜夜躁狠狠85| 免费人成黄页在线观看国产| 在线高清免费不卡全码| 毛片亚洲AV无码精品国产午夜| 亚洲日韩性欧美中文字幕| 男女猛烈激情xx00免费视频| 亚洲乱熟女一区二区三区| 国产精品日韩中文字幕| 精品国产乱码久久久久久婷婷| 乱女乱妇熟女熟妇综合网| 亚洲超碰97无码中文字幕| 免费观看的AV毛片的网站不卡| 亚洲 日本 欧洲 欧美 视频| 久久人人97超碰精品| 国产福利精品一区二区| 欧美午夜成人片在线观看| 亚洲国内精品一区二区| 欧美最猛黑人xxxx|