• 제목/요약/키워드: Dalvik virtual machine

검색결과 15건 처리시간 0.025초

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

  • 조인휘;김원일
    • 한국통신학회논문지
    • /
    • 제36권11B호
    • /
    • pp.1323-1328
    • /
    • 2011
  • 본 논문에서는 Android Dalvik 가상머신의 trace JIT 구현 코드를 수정하여 특정 Java 메소드를 별도의 프로 파일링 과정 없이 바로 JIT 컴파일이 이루어지도록 구현하였다. 동일한 Java 메소드에 대해 원본 Dalvik 가상머신과 본 논문의 방식을 적용한 가상머신에서 각각 실행하여 수행 시간을 측정하였고 본 논문이 제안한 방식을 이용하면 약 30% 정도의 성능 향상을 가져올 수 있음을 확인하였다. 본 논문에서는 Android Dalvik의 구조를 살펴보아 Dalvik 가상머신에 대한 이해를 돕고 변경한 Dalvik 가상머신 부분을 코드 수준에서 자세히 설명한다. 산업체에서는 Dalvik 가상머신의 수행 성능 최적화와 같은 Android의 핵심 기술 부분을 향상하여 Android를 사용하고 있는 타 경쟁사와 차별점을 가진 제품을 만드는데 도움이 될 수 있을 것이다.

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

  • 조영필;권용인;양승준;백윤흥
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2012년도 춘계학술발표대회
    • /
    • pp.45-46
    • /
    • 2012
  • 현재 스마트폰에서 가장 널리 쓰이는 OS는 안드로이드이다. 안드로이드는 오픈 소스 플랫폼이기 때문에 이를 수정하여 기존 기술을 개선하거나 새로운 기술을 개발하려는 시도가 많이 이루어지고 있다. 이를 위해 필수적으로 시행해야 할 것이 Dalvik Virtual Machine을 분석하는 작업이다. 이에, 본 연구는 Dalvik Virtual Machine의 주요 요소를 분석하였다.

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
    • /
    • 제37권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.

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

  • 이종혁;김형신
    • 한국산학기술학회논문지
    • /
    • 제12권1호
    • /
    • pp.486-492
    • /
    • 2011
  • 본 논문에서는 안드로이드에 탑재되는 가상머신인 달빅(Dalvik) 가상머신의 성능을 벤치마크를 구현하여 측정하고 기존 임베디드 자바 가상머신과의 성능을 비교한다. 달빅 가상머신의 성능 측정을 위하여 가상머신 성능 측정에 널리 사용되는 SPECJVM 벤치마크를 사용하였다. 달빅과의 성능 비교를 위하여 임베디드 자바 가상머신인 SUN Java 임베디드 버전을 비교 대상으로 선정하여 동일한 벤치마크를 사용하여 실행시간을 비교하였다. 성능 측정은 스마트폰 개발 하드웨어인 오드로이드(Odroid)에 가상머신과 벤치마크 프로그램들을 포팅하여 이루어 졌다. 또한, 달빅 가상머신의 최근 버전에서 구현되지 않은 적시(Just-In-Time) 컴파일 기능을 달빅에 추가하여 성능 개선 정도를 분석하였다. 분석 결과 안드로이드 달빅 가상머신은 SUN 가상머신 성능의 15% 수준을 보였으며, 적시 컴파일 기법을 적용한 달빅은 63% 수준에 도달함을 보였다.

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

  • 김지홍;김인혁;엄영익
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2011년도 한국컴퓨터종합학술대회논문집 Vol.38 No.1(A)
    • /
    • 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
    • /
    • 제4권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.

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

  • 홍성길;김강희
    • 정보처리학회논문지:컴퓨터 및 통신 시스템
    • /
    • 제2권6호
    • /
    • pp.231-236
    • /
    • 2013
  • 최근에 안드로이드 응용의 사용자 응답 시간을 향상시키기 위해 JIT 컴파일 방법을 사용하는 달빅 가상 머신에 AOT 컴파일 아이디어를 적용하는 방법들이 제안되었다. 그러나 기존 방법들은 DEX(Dalvik Executable)라는 달빅 실행 파일의 구조를 변경해야 하기 때문에, 이미 시장에 배포된 안드로이드 응용들을 대상으로 적용하기 어렵다. 본 논문은 DEX 실행 파일의 구조 변경 없이 달빅 가상 머신에서 핫 트레이스를 미리 컴파일하는 JITwP(JIT with Precompile) 기법을 제안한다. JITwP 기법은 달빅 가상 머신에 프리컴파일 힌트를 제공하여 타겟 응용의 응답 시간을 개선한다. 성능 평가 결과, 웹 브라우저 응용에 대해서 약 4%의 실행 시간을 단축하는 결과를 얻었다.