ART虚拟机参数说明

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线程数 0


-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


你可能感兴趣的:(ART揭秘)