java -Xms64m #JVM啓動時的初始堆大小 -Xmx128m #最大堆大小 -Xmn64m #年輕代的大小,其他的空間是老年代 -XX:MaxMetaspaceSize=128m # -XX:CompressedClassSpaceSize=64m #使用 -XX:CompressedClassSpaceSize 設置爲壓縮類空間保留的最大內存。 -Xss256k #線程 -XX:InitialCodeCacheSize=4m # -XX:ReservedCodeCacheSize=8m # 這是由 JIT(即時)編譯器編譯爲本地代碼的本機代碼(如JNI)或 Java 方法的空間 -XX:MaxDirectMemorySize=16m -XX:NativeMemoryTracking=summary #開啓內存追蹤 -jar app.jar
# 查看java運用pid jps -l # 查看堆/方法區/線程等內存佔用(必需啓動內存追蹤) jcmd 2923 VM.native_memory # 查看jvm默認值 Xmx Xms GC等 java -XX:+PrintFlagsFinal -version java -XX:+PrintCommandLineFlags -version # 查看gc次數/時間 jstat -gcutil 15004 / jstat -gc 15004 # 查看線程棧信息 jstack -l pid # 可視化查看內存/線程的信息 jvisualvm / jconsole # 導出dump文件 jmap -dump:format=b,file=heapdump.hprof pid 使用jvisualvm可打開hprof文件