點擊上方“Coder編程”,選擇“置頂公衆號”
技術文章第一時間送達!
每天進步一點,不做curd工程師
JVM 的參數類型
標配參數
-version
-help
X 參數(瞭解)
-Xint:解釋執行
-Xcomp:第一次使用就編譯成本地代碼
-Xmixed:混合模式
XX 參數
Boolean 類型:-XX:+ 或者 - 某個屬性值(+ 表示開啓,- 表示關閉)
-XX:+PrintGCDetails:打印 GC 收集細節
-XX:-PrintGCDetails:不打印 GC 收集細節
-XX:+UseSerialGC:使用了串行收集器
-XX:-UseSerialGC:不使用了串行收集器
KV 設置類型:-XX:key=value
-XX:MetaspaceSize=128m
-XX:MaxTenuringThreshold=15
jinfo 舉例,如何查看當前運行程序的配置
java
public class HelloGC {
public static void main(String[] args) {
System.out.println("hello GC...");
try {
Thread.sleep(Integer.MAX_VALUE);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
我們可以使用 jps -l
命令,查出進程id
1923 org.jetbrains.jps.cmdline.Launcher
1988 sun.tools.jps.Jps
1173 org.jetbrains.kotlin.daemon.KotlinCompileDaemon
32077 com.intellij.idea.Main
1933 com.cuzz.jvm.HelloGC
32382 org.jetbrains.idea.maven.server.RemoteMavenServer
在使用jinfo -flag PrintGCDetails 1933
命令查看
-XX:-PrintGCDetails
可以看出默認是不打印 GC 收集細節
也可是使用jinfo -flags 1933 查看所以的參數
兩個經典參數:-Xms 和 - Xmx(如 -Xms1024m)
-Xms 等價於 -XX:InitialHeapSize
-Xmx 等價於 -XX:MaxHeapSize
盤點家底查看 JVM 默認值
查看初始默認值:-XX:+PrintFlagsInitial
cuzz@cuzz-pc:~/Project/demo$ java -XX:+PrintFlagsInitial
[Global flags]
intx ActiveProcessorCount = -1 {product}
uintx AdaptiveSizeDecrementScaleFactor = 4 {product}
uintx AdaptiveSizeMajorGCDecayTimeScale = 10 {product}
uintx AdaptiveSizePausePolicy = 0 {product}
uintx AdaptiveSizePolicyCollectionCostMargin = 50 {product}
uintx AdaptiveSizePolicyInitializingSteps = 20 {product}
uintx AdaptiveSizePolicyOutputInterval = 0 {product}
uintx AdaptiveSizePolicyWeight = 10 {product}
...
查看修改更新:-XX:+PrintFlagsFinal
bool UsePSAdaptiveSurvivorSizePolicy = true {product}
bool UseParNewGC = false {product}
bool UseParallelGC := true {product}
bool UseParallelOldGC = true {product}
bool UsePerfData = true {product}
bool UsePopCountInstruction = true {product}
bool UseRDPCForConstantTableBase = false {C2 product}
= 與 := 的區別是,一個是默認,一個是人物改變或者 jvm 加載時改變的參數
打印命令行參數(可以看默認垃圾回收器):
-XX:+PrintCommandLineFlags
cuzz@cuzz-pc:~/Project/demo$ java -XX:+PrintCommandLineFlags
-XX:InitialHeapSize=128789376 -XX:MaxHeapSize=2060630016 -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC
推薦
文末
歡迎關注個人微信公衆號:Coder編程
歡迎關注Coder編程公衆號,主要分享數據結構與算法、Java相關知識體系、框架知識及原理、Spring全家桶、微服務項目實戰、DevOps實踐之路、每日一篇互聯網大廠面試或筆試題以及PMP項目管理知識等。更多精彩內容正在路上~
新建了一個qq羣:315211365,歡迎大家進羣交流一起學習。謝謝了!也可以介紹給身邊有需要的朋友。文章收錄至
Github: https://github.com/CoderMerlin/coder-programming
Gitee: https://gitee.com/573059382/coder-programming
歡迎關注並star~微信公衆號
我知道你 “在看”