property | JVM参数 | 含义 | 取值 | 备注 |
dalvik.vm.checkjni || ro.kernel.android.checkjni 取true|false | -Xcheck:jni | 当调用jni函数时,打开jni检查 | ||
| -Xjnigreflimit:<N> | 设置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:<string> | |||
dalvik.vm.jniopts | dalvik.vm.jniopts | |||
-verbose:gc | ||||
dalvik.vm.heapstartsize | -Xms | 堆栈开始大小 | 4m | |
dalvik.vm.heapsize | -Xmx | 16m | ||
-XX:mainThreadStackSize=<N>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=<N> | 整数。并行GC的线程个数 | CPU核数-1. 这是定义除了主GC线程外的并行线程。对于单核来说,就是没有并行的GC线程。 |
-Xms<N>kK|mM|gG | heap初始化大小,单位可以是k, m, g。 | 2M |
-Xms<N>kK|mM|gG | heap初始化大小,单位可以是k, m, g。 | 2M |
-Xmx<N>kK|mM|gG | heap最大大小,单位可以是k, m, g。 | 256M |
-XX:HeapMinFree=<N>kK|mM|gG | heap最小free空间,单位可以是k, m, g。 | 0.5M |
-XX:HeapMaxFree=<N>kK|mM|gG | heap最大free空间,单位可以是k, m, g。 | 2M |
-XX:NonMovingSpaceCapacity=<N>kK|mM|gG | heap不可移动数据大小,单位可以是k, m, g。 | 64M |
-XX:HeapTargetUtilization=(0.1-0.9) | 堆内存的利用率 | 0.5 |
-XX:ForegroundHeapGrowthMultiplier= | heap增长乘数 | 2.0 |
-XX:ConcGCThreads= | 不暂停时GC线程数 | 0 |
-Xbootclasspath:
-classpath 或-cp
-Ximage: boot.art的地址。如 -Ximage:/data/dalvik-cache/arm64/boot.art
-Xss<N>K|M|G 定义线程栈的默认大小。如果调用java.lang.Thread.nativeCreate的时候堆栈传递0,则使用该值
-XX:LongPauseLogThreshold=<N> GC 停顿后输出gc log的最长时间。单位为ms
-XX:LongGCLogThreshold=<N> 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