File-based sharing for dynamically compiled code on Dalvik virtual machine

Yao Chih Huang*, Yu Sheng Chen, Wuu Yang, Jyh-Jiun Shann

*Corresponding author for this work

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

4 Scopus citations


Memory footprint is considered as an important design issue for embedded systems. Sharing dynamically compiled code among virtual machines can reduce memory footprint and recompilation overhead. On the other hand, sharing writable native code may cause security problems, due to support of native function call such as Java Native Interface (JNI). We propose a native-code sharing mechanism that ensures the security for Dalvik virtual machine (VM) on the Android platform. Dynamically generated code is saved in a file and is shared with memory mapping when other VMs need the same code. Protection is granted by controlling of file writing permissions. To improve the security, we implement a daemon process, named Query Agent, to control all accesses to the native code and maintain all the information of traces, which are the units of the compilation in the Dalvik VM. We implement our code sharing mechanism on Android version 2.1 system, and experiment on an arm-based system. We get 45% code-cache size reduction and 9% performance improvement from eliminating recompilation overhead.

Original languageEnglish
Title of host publicationICS 2010 - International Computer Symposium
Number of pages6
StatePublished - 1 Dec 2010
Event2010 International Computer Symposium, ICS 2010 - Tainan, Taiwan
Duration: 16 Dec 201018 Dec 2010

Publication series

NameICS 2010 - International Computer Symposium


Conference2010 International Computer Symposium, ICS 2010


  • Android
  • Code sharing
  • JIT compiler
  • JNI
  • Memory footprint
  • Virtual machine


Dive into the research topics of 'File-based sharing for dynamically compiled code on Dalvik virtual machine'. Together they form a unique fingerprint.

Cite this