DOI QR코드

DOI QR Code

Stack Allocation-based Memory Performance Improvement Technique on Android 2.3 Dalvik Virtual Machine

안드로이드 2.3 달빅 가상머신에서 스택 할당 기법을 통한 메모리 성능 향상 기법

  • 임영규 (연세대학교 컴퓨터과학과) ;
  • 김정길 (남서울대학교 컴퓨터학과) ;
  • 김신덕 (연세대학교 컴퓨터과학과)
  • Received : 2011.08.25
  • Accepted : 2011.12.19
  • Published : 2011.12.31

Abstract

In this paper, we propose a stack allocation technique of Android Java objects in order to reduce the number of garbage collection which is one of major reason on Android performance degradation when running applications. The proposed technique is to allocate Java objects into stack rather than heap memory. To do so, stacked objects could escape the garbage collection process. We experiment the proposed technique in the latest Android 2.3 version. For the simulation, we take advantage of the well known Java benchmark, Caffeinemark, and our own. The result shows the performance degradation of Dalvik Virtual Machine execution time caused by the stack allocation of Java objects is very slight and the proposed method considerably reduces the frequency of garbage collection. This will increase application performance and give better user interfaces to Android phone users.

본 논문에서는 안드로이드 2.3에서 어플리케이션 실행 시 가비지 컬렉션(garbage collection)으로 인하여 발생하는 성능 저하를 감소시키기 위한 자바(Java) 객체들의 스택 할당(stack allocation) 기법을 제안하였다. 제안한 스택 할당 기법에서는 자바 객체들을 가비지 컬렉션이 되는 힙(Heap) 영역 대신에 스택에 할당함으로써 실행 시 가비지 컬렉션 대상이 되지 않게 한다. 제안한 기법의 성능 검증을 위하여 실제 자바 벤치마크에서 널리 사용되고 있는 Caffeinemark 및 자체 벤치마크 어플리케이션을 통해 안드로이드 스마트 폰에서 비교 실험을 하였다. 그 결과 자바 객체들의 스택 할당에 따르는 동작상의 오버헤드로 인한 수행 속도의 저하는 미미함을 보이면서도 가비지 컬렉션 수행 빈도는 상당히 감소시켜 어플리케이션 동작 및 사용자 인터페이스 성능 향상을 가져왔다.

Keywords

References

  1. http://news.cnet.com/8301-13506_3-20051610-17.html
  2. Dalvik Virtual Machine. http://www.dalvikvm.com.
  3. Technical Report, "Analysis of Dalvik Virtual Machine and Class Path Library," http://imsciences.edu.pk/serg/wp-content/uploads/2009/07/Analysis-of-Dalvik-VM.pdf.
  4. Escapee Analysis, http://www.java2s.com/Open-Source/Android/android-core/platform-dalvik/com/android/dx/ssa/EscapeAnalysis.java.java-doc.htm
  5. Jong-Deok Choi, Manish Gupta, Mauricio Serrano, Vugranam C. Sreedhar and Sam Midkiff, "Escape Analysis on Java," ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications(OOPSLA99). Denver, Colorado, November 1, 1999 pp. 1-19.
  6. David Gay and Bjarne Steensgaard, "Stack allocating objects in Java," Research Report, Microsoft Research, 1999.
  7. Dan Bornstein, "Dalvik virtual machine: internals,"http://sites.google.com/site/io/dalvik-vm-internals/2008-05-29-Presentation-Of-Dalvik-VM-Internals.pdf".
  8. Caffeinemark: http://www.benchmarkhq.ru/cm30

Cited by

  1. Android 플랫폼에서 구현 기술에 따른 화질 개선 연산 성능 비교 vol.14, pp.1, 2011, https://doi.org/10.9728/dcs.2013.14.1.7