• Title/Summary/Keyword: Dalvik

Search Result 29, Processing Time 0.022 seconds

Enhancement of Android Runtime Performance using Method Signature (Method Signature를 이용한 안드로이드 런타임 성능 향상)

  • Joe, In-Whee;Kim, Won-Il
    • The Journal of Korean Institute of Communications and Information Sciences
    • /
    • v.36 no.11B
    • /
    • pp.1323-1328
    • /
    • 2011
  • In this paper, we have shown Dalvik virtual machine implementation to reduce the profiling overhead from the trace of the JIT compiler for the specific method. By running the same Java method on the original Dalvik VM and the modified Dalvik VM, we have achieved around 30% performance improvement with this algorithm. In this paper, to increase the reader's understanding of Android Dalvik virtual machine, we will explain the architecture of Dalvik JIT compiler and we will provide the detailed explanation with source codes for modified parts of Dalvik virtual machine. From the industry perspective, we can expect competitive benefits over the competitors with performance improvement in Android core.

Static Dalvik Bytecode Optimization for Android Applications

  • Kim, Jeehong;Kim, Inhyeok;Min, Changwoo;Jun, Hyung Kook;Lee, Soo Hyung;Kim, Won-Tae;Eom, Young Ik
    • ETRI Journal
    • /
    • v.37 no.5
    • /
    • pp.1001-1011
    • /
    • 2015
  • Since just-in-time (JIT) has considerable overhead to detect hot spots and compile them at runtime, using sophisticated optimization techniques for embedded devices means that any resulting performance improvements will be limited. In this paper, we introduce a novel static Dalvik bytecode optimization framework, as a complementary compilation of the Dalvik virtual machine, to improve the performance of Android applications. Our system generates optimized Dalvik bytecodes by using Low Level Virtual Machine (LLVM). A major obstacle in using LLVM for optimizing Dalvik bytecodes is determining how to handle the high-level language features of the Dalvik bytecode in LLVM IR and how to optimize LLVM IR conforming to the language information of the Dalvik bytecode. To this end, we annotate the high-level language features of Dalvik bytecode to LLVM IR and successfully optimize Dalvik bytecodes through instruction selection processes. Our experimental results show that our system with JIT improves the performance of Android applications by up to 6.08 times, and surpasses JIT by up to 4.34 times.

Register Allocation Scheme for Dalvik Virtual Machine (Dalvik 가상 머신 레지스터 할당 기법)

  • Kim, Jee-Hong;Kim, In-Hyuk;Eom, Young-Ik
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2011.06a
    • /
    • pp.570-573
    • /
    • 2011
  • Dalvik 가상 머신은 최적화가 쉽지 않았던 스택 기반의 가상 머신인 자바 가상 머신(JVM)과 달리 레지스터 기반의 가상 머신이므로 여러 최적화 기법을 적용할 수 있다. 따라서 Dalvik 가상 머신을 위한 새로운 레지스터 할당기법이 필요하다. 본 논문에서는 dx tool을 거친 레지스터 기반의 Dalvik byte code를 레지스터 재 할당하여 최적화하고, 이를 Dalvik JIT으로 보내어 다시 한번 레지스터 재할당 함으로써 최적화 효율을 높일 수 있는 최적화 기법을 제안하였다. 또한 제안 기법과 Dalvik JIT의 복잡도를 비교함으로써 제안기법을 검증하였다.

DEX2C: Translation of Dalvik Bytecodes into C Code and its Interface in a Dalvik VM

  • Kim, Minseong;Han, Youngsun;Cho, Myeongjin;Park, Chanhyun;Kim, Seon Wook
    • IEIE Transactions on Smart Processing and Computing
    • /
    • v.4 no.3
    • /
    • pp.169-172
    • /
    • 2015
  • Dalvik is a virtual machine (VM) that is designed to run Java-based Android applications. A trace-based just-in-time (JIT) compilation technique is currently employed to improve performance of the Dalvik VM. However, due to runtime compilation overhead, the trace-based JIT compiler provides only a few simple optimizations. Moreover, because each trace contains only a few instructions, the trace-based JIT compiler inherently exploits fewer optimization and parallelization opportunities than a method-based JIT compiler that compiles method-by-method. So we propose a new method-based JIT compiler, named DEX2C, in order to improve performance by finding more opportunities for both optimization and parallelization in Android applications. We employ C code as an intermediate product in order to find more optimization opportunities by using the GNU C Compiler (GCC), and we will detect parallelism by using the Intel C/C++ parallel compiler and the AESOP compiler in our future work. In this paper, we introduce our DEX2C compiler, which dynamically translates Dalvik bytecodes (DEX) into C code with method granularity. We also describe a new method-based JIT interface in the Dalvik VM for the DEX2C compiler. Our experiment results show that our compiler and its interface achieve significant performance improvement by up to 15.2 times and 3.7 times on average, in Element Benchmark, and up to 2.8 times for FFT in Smartbench.

Analysis of dynamic compilation of Dalvik VM for effective Android NFC performance (효율적인 안드로이드 NFC 동작을 위한 Dalvik VM의 동적 컴파일 분석)

  • Yoo, Hyun-Joo;Kim, Young-Sub;Lee, Su-Hyun;Jung, Min-Soo
    • Proceedings of the Korea Multimedia Society Conference
    • /
    • 2012.05a
    • /
    • pp.113-115
    • /
    • 2012
  • 스마트폰은 다양한 서비스를 위한 기술이 집약되어 있으며 그 중 NFC(근거리 무선 통신) 기술은 기존의 모바일 RFID 기술보다 진일보하여 태그 읽기/쓰기 기능을 비롯하여 모바일 결제에 이르기까지 활용 범위가 매우 넓다. 이러한 NFC 기술을 활용한 안드로이드 어플리케이션의 구동에 있어 실시간 처리의 효율성은 서비스의 안정성에 크게 영향을 미친다. 따라서 안드로이드 플랫폼에서 보다 안정적인 실시간 서비스 실행을 위해 기존 안드로이드 실시간 처리 영역인 Dalvik VM의 동적 컴파일 메커니즘과 현재 발표되어 있는 개선된 방식의 메커니즘을 분석 정리하고자 한다. 또한 이를 바탕으로 향후 스마트 폰의 NFC 구동에 있어 Dalvik VM의 보다 최적화된 컴파일 방식을 제안할 수 있도록 연구하고자 한다.

  • PDF

Analysis of Dalvik Virtual Machine (Dalvik Virtual Machine 분석)

  • Cho, Yeongpil;Kwon, Yongin;Yang, Seungjun;Paek, Yunheung
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2012.04a
    • /
    • pp.45-46
    • /
    • 2012
  • 현재 스마트폰에서 가장 널리 쓰이는 OS는 안드로이드이다. 안드로이드는 오픈 소스 플랫폼이기 때문에 이를 수정하여 기존 기술을 개선하거나 새로운 기술을 개발하려는 시도가 많이 이루어지고 있다. 이를 위해 필수적으로 시행해야 할 것이 Dalvik Virtual Machine을 분석하는 작업이다. 이에, 본 연구는 Dalvik Virtual Machine의 주요 요소를 분석하였다.

Performance Comparison of Android Dalvik and Java Virtual Machines (안드로이드 달빅과 자바 가상머신의 성능비교)

  • Lee, Jong-Hyuk;Kim, Hyung-Shin
    • Journal of the Korea Academia-Industrial cooperation Society
    • /
    • v.12 no.1
    • /
    • pp.486-492
    • /
    • 2011
  • In this paper we analyzed performance of Andriod's Davik virtual machine(VM) using standard benchmark and compared the result with the embedded Java virtual machine. We used a well known benchmark suit named SPECJVM for the measurement. For the fair comparison, Sun Java embedded JVM is ported and the same benchmark is ported on it. The Odriod smartphone hardware platform is used as the target hardware. We have added a Just-In-Time compiler to Dalvik, which is not supported in the recent Android release, and measured performance improvement. The experiment result show that Dalvik achieved 15% and Dalvik with JIT shows 63% of the Sun's JVM performance.

Improving application startup time by automatic profiling (Automatic Usage Profiling을 통한 초기 앱 실행 속도 개선 방법)

  • Chae, Hyangseok;Baik, Jongmoon
    • Journal of Software Engineering Society
    • /
    • v.28 no.1
    • /
    • pp.1-6
    • /
    • 2019
  • Google released an initial version of Android that runs Dex(Dalvik Executable) through the Dalvik Runtime. Since Dalvik Runtime is based on interpreter, JIT(Just-in-time) compilation has been applied to improve performance. After Lollipop(Android 5.0) Dalvik Runtime has replaced with ART Runtime which support AOT (Ahead-of-time) compilation of Dex into Native Code. The late st Android has a problem that the application execution speed is slow until the AOT compilation is completed according to the actual usage record after the installation of the app. To improve the problem we have investigate the characteristics of profile that can improve the execution speed of the application and generate the profile automatically. Finally we propose a method that can optimize the application at install time. With the proposed method we can optimize selectively at install time and can help improving the execution speed of the app from the initial execution.

A Trace-based Precompile Method for Improving the Response Times of Android Applications (안드로이드 응용의 응답 시간 향상을 위한 트레이스 기반 프리컴파일 기법)

  • Hong, Sunggil;Kim, Kanghee
    • KIPS Transactions on Computer and Communication Systems
    • /
    • v.2 no.6
    • /
    • pp.231-236
    • /
    • 2013
  • Recently, to improve the user response times of Android applications, several studies have been proposed to combine the idea of Ahead-of-Time compilation into Dalvik virtual machine, which uses Just-in-Time compilation. The studies, however, require modifications of the Dalvik executables of target applications, thus are difficult to be adopted for legacy applications already deployed. This paper proposes a JITwP(JIT with Precompile) technique that precompiles hot traces at application launch time with no modification of the Dalvik executable. It improves the user response times of target applications by providing precompile hints prepared offline. Our experimental results demonstrate a 4% improvement in terms of execution time for the Web browser application.

Android plagiarism detection through Dalvik instruction similarity comparison (Dalvik명령어 유사도 비교를 통한 안드로이드 표절 탐지 기법)

  • Choi, Sung-ha;Hwang, Na-hyun;Park, Heewan
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2012.04a
    • /
    • pp.796-799
    • /
    • 2012
  • 스마트폰 애플리케이션 중에서 안드로이드 앱은 자바를 기반으로 한다. 따라서 자바 프로그램과 마찬가지로 디컴파일러 도구를 활용하여 원본 소스 코드를 얻어낼 수 있기 때문에 코드 도용에 대해서 매우 취약하다. 본 논문에서는 안드로이드에 대한 코드 도용과 표절을 막기 위한 기법을 제안한다. 효과적인 코드 도용 및 표절 여부를 탐지하기 위한 방법으로서, 안드로이드 달빅(Dalvik) 코드에 대해서 요약 단계를 거친 후 유사도를 측정하는 방법을 사용한다. 기존의 안드로이드 유사도 비교 연구에서는 달빅 코드가 정확하게 일치해야만 유사도가 높게 측정될 수 있었지만, 요약 단계를 통해서 변환된 달빅 코드를 비교하면 코드 도용시 일부 코드의 의도적인 수정이 있더라도 유사도가 높게 측정된다. 그 결과, 본 논문에서 제안하는 표절 탐지 기법이 기존 연구와 비교하여 표절에 대한 탐지 능력이 우수함을 확인하였다.