A static region-based compiler for the Dalvik virtual machine

被引:1
作者
You, Yi-Ping [1 ]
Chen, Jian-Ru [1 ]
机构
[1] Natl Chiao Tung Univ, Dept Comp Sci, Hsinchu 30010, Taiwan
关键词
Android; Dalvik virtual machine; region-based compilation;
D O I
10.1002/spe.2344
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The Dalvik virtual machine (VM) is an integral component used to execute applications in Android, which is one of the leading operating systems for mobile devices. The Dalvik VM is an interpreter and is equipped with a trace-based just-in-time compiler for enhancing the execution performance of frequently executed paths, or traces. However, traces generated by the Dalvik VM can be stopped in a conditional branch or a method call/return, which means that these traces usually have a short lifetime, decreasing the effectiveness of the compiler optimizations applied to them. Furthermore, the just-in-time compiler applies only a few simple optimizations because of performance considerations. In this article we present a traces-to-region (T2R) framework that extends traces to regions and statically compiles these regions into native binaries so as to improve the execution of Android applications. The T2R framework involves three main stages: (i) the profiling stage, in which the run-time trace information of an application is extracted; (ii) the compilation stage, in which regions are constructed from the extracted traces and are statically compiled into a native binary; and (iii) the execution stage, in which the compiled binary is loaded into the code cache when the application starts to execute. Experiments performed on an Android tablet demonstrated that the T2R framework was effective in improving the execution performance of applications by 10.5-16.2% and decreasing the size of the code cache by 4.6-28.5%. Copyright (c) 2015 John Wiley & Sons, Ltd.
引用
收藏
页码:1109 / 1130
页数:22
相关论文
共 23 条
[1]   The Jikes research virtual machine project: Building an open-source research community [J].
Alpern, B ;
Augart, S ;
Blackburn, SM ;
Butrico, M ;
Cocchi, A ;
Cheng, P ;
Dolby, J ;
Fink, S ;
Grove, D ;
Hind, M ;
McKinley, KS ;
Mergen, M ;
Moss, JEB ;
Ngo, T ;
Sarkar, V ;
Trapp, M .
IBM SYSTEMS JOURNAL, 2005, 44 (02) :399-417
[2]  
ARM Ltd, 2012, CORT A9 TECHN REF MA
[3]   Improving virtual machine performance using a cross-run profile repository [J].
Arnold, M ;
Welc, A ;
Rajan, VT .
ACM SIGPLAN NOTICES, 2005, 40 (10) :297-311
[4]  
Bebenita M., 2010, PPPJ, P59
[5]  
Bornstein D., 2008, DALVIK VM INTERNALS
[6]  
Cheng B., 2010, JIT COMPILER ANDROID
[7]  
Childers B, 2003, P 17 INT S PAR DISTR, P205
[8]  
GreeneComputing, 2012, LINP FOR ANDR
[9]  
Hank R. E., 1995, Proceedings of the 28th Annual International Symposium on Microarchitecture (Cat. No.95TB100012), P158, DOI 10.1109/MICRO.1995.476823
[10]  
Hookway R. J., 1997, Digital Technical Journal, V9, P3