property
JVM參數
含義
取值
備注
dalvik.vm.checkjni || ro.kernel.android.checkjni
取true|false
-Xcheck:jni
當調用jni函數時,打開jni檢查
-Xjnigreflimit:
設定JNI全局引用的最大數量
整數,如2000
dalvik.vm.execution-mode
取int:portable|int:fast|int:jit
-Xint:portable
-Xint:fast
-Xint:jit
指後端類型
dalvik.vm.stack-trace-file
dalvik.vm.stack-trace-file
dalvik.vm.check-dex-sum
取true|false
dalvik.vm.check-dex-sum
log.redirect-stdio
取true|false
-Xlog-stdio
将stdout/stderr輸出定位到log
dalvik.vm.enableassertions
-ea:
dalvik.vm.jniopts
dalvik.vm.jniopts
-verbose:gc
dalvik.vm.heapstartsize
-Xms
堆棧開始大小
4m
dalvik.vm.heapsize
-Xmx
16m
-XX:mainThreadStackSize=K
主線程解釋模式下堆棧大小
dalvik.vm.jit.codecachesize
-Xjitcodecachesize:
設定jit code的大小。0表示關閉
dalvik.vm.heapgrowthlimit
-XX:HeapGrowthLimit=
dalvik.vm.heapminfree
-XX:HeapMinFree=
dalvik.vm.heapmaxfree
-XX:HeapMaxFree=
dalvik.vm.heaptargetutilization
-XX:HeapTargetUtilization=
dalvik.vm.nonmovingspace
-XX:NonMovingSpaceCapacity=
ro.config.low_ram
取true | false
-XX:LowMemoryMode
dalvik.vm.gctype
-Xgc:
dalvik.vm.backgroundgctype
-XX:BackgroundGC=
dalvik.vm.dexopt-flags
v=n|r|a
o=n|v|a|f
m=y
if (v==n) dalvik.vm.dexopt-flags
if (v==r)-Xverify:remote
if (v==a) -Xverify:all
if (o==n) -Xdexopt:none
if (o==v) -Xdexopt:verified
if (o==a) -Xdexopt:all
if (o==f) -Xdexopt:full
if (m==y) {
-Xdexopt:full
-Xgc:precise
}
dalvik.vm.lockprof.threshold
-Xlockprofthreshold:
dalvik.vm.jit.op
-Xjitop:
對于特定的位元組碼,強制以解釋模式執行
dalvik.vm.jit.method
dalvik.vm.jit.method
對特定方法,強制以解釋模式執行
vold.decrypt
取值trigger_restart_min_framework|1
-Ximage-compiler-option
–compiler-filter=verify-none
跳過代碼編譯,以最新方式啟動一個framework。用在data分區加密後輸入密碼
dalvik.vm.image-dex2oat-Xms
-Xms
dalvik.vm.image-dex2oat-Xmx
-Xmx
dalvik.vm.image-dex2oat-filter
–compiler-filter=
-Ximage-compiler-option
–image-classes=/system/etc/preloaded-classes
-Ximage-compiler-option
–compiled-classes=/system/etc/compiled-classes
dalvik.vm.image-dex2oat-flags
-Ximage-compiler-option
dalvik.vm.dex2oat-Xms
dalvik.vm.dex2oat-Xmx
dalvik.vm.extra-opts
dalvik.vm.profiler
-Xenable-profiler
dalvik.vm.profile.start-immed
-Xprofile-start-immediately
dalvik.vm.profile.period-secs
-Xprofile-period:
dalvik.vm.profile.duration-secs
-Xprofile-duration:
dalvik.vm.profile.interval-us
-Xprofile-interval:
dalvik.vm.profile.backoff-coeff
-Xprofile-backoff:
dalvik.vm.profile.top-k-thr
-Xprofile-top-k-threshold:
dalvik.vm.profile.top-k-ch-thr
-Xprofile-top-k-change-threshold:
dalvik.vm.profiler.type
-Xprofile-type:
dalvik.vm.profile.stack-depth
-Xprofile-max-stack-depth:
ro.dalvik.vm.native.bridge
-XX:NativeBridge=
ART中對參數的分解在ParsedOptions::Parse (runtime/parsed_options.cc)
-verbose:compiler|gc|heap|jdwp|jni|monitor|signals|startup|third-party-jni|threads|verifier
GC的幾個重要參數
參數
取值
預設值
-XX:ParallelGCThreads=
整數。并行GC的線程個數
CPU核數-1.
這是定義除了主GC線程外的并行線程。對于單核來說,就是沒有并行的GC線程。
-XmskK|mM|gG
heap初始化大小,機關可以是k, m, g。
2M
-XmskK|mM|gG
heap初始化大小,機關可以是k, m, g。
2M
-XmxkK|mM|gG
heap最大大小,機關可以是k, m, g。
256M
-XX:HeapMinFree=kK|mM|gG
heap最小free空間,機關可以是k, m, g。
0.5M
-XX:HeapMaxFree=kK|mM|gG
heap最大free空間,機關可以是k, m, g。
2M
-XX:NonMovingSpaceCapacity=kK|mM|gG
heap不可移動資料大小,機關可以是k, m, g。
64M
-XX:HeapTargetUtilization=(0.1-0.9)
堆記憶體的使用率
0.5
-XX:ForegroundHeapGrowthMultiplier=
heap增長乘數
2.0
-XX:ConcGCThreads=
不暫停時GC線程數
-Xbootclasspath:
-classpath 或-cp
-Ximage: boot.art的位址。如 -Ximage:/data/dalvik-cache/arm64/boot.art
-XssK|M|G 定義線程棧的預設大小。如果調用java.lang.Thread.nativeCreate的時候堆棧傳遞0,則使用該值
-XX:LongPauseLogThreshold= GC 停頓後輸出gc log的最長時間。機關為ms
-XX:LongGCLogThreshold= GCLog輸出的間隔。機關為ms
-XX:UseTLAB 有該标志時,表示使用線程本地配置設定政策(Thread Local Allocation Buffer),TLAB配置設定時可以避免線程同步。
anroid 5.1.1中,啟動ART虛拟機的實際參數例子
-Xzygote
-Xstacktracefile:/data/anr/traces.txt
exit
vfprintf
sensitiveThread
-verbose:gc
-Xms8m
-Xmx512m
-XX:mainThreadStackSize=24K
-XX:HeapGrowthLimit=256m
-XX:HeapMinFree=512k
-XX:HeapMaxFree=8m
-XX:HeapTargetUtilization=0.75
-XX:NonMovingSpaceCapacity=96m
-agentlib:jdwp=transport=dt_android_adb,suspend=n,server=y
-Ximage-compiler-option
--runtime-arg
-Ximage-compiler-option
-Xms64m
-Ximage-compiler-option
--runtime-arg
-Ximage-compiler-option
-Xmx64m
-Ximage-compiler-option
--image-classes=/system/etc/preloaded-classes
-Xcompiler-option
--runtime-arg
-Xcompiler-option
-Xms64m
-Xcompiler-option
--runtime-arg
-Xcompiler-option
-Xmx512m
-Duser.language=zh
-Duser.region=CN