Abstract
Garbage collection in the Java virtual machine is a core function that relieves application programmers of difficulties related to memory management. In this paper, we evaluate and analyze the performance of GenGC and GenRGC, garbage collectors for embedded Java virtual machines. For performance evaluation, we employ CVM, a real embedded Java virtual machine developed by Sun Microsystems, Inc., as a platform and also use a widely-used SpecJVM98 as a set of benchmark programs. To compare the performance of GenGC and GenRGC, we first evaluate the time of garbage collection and the delay time caused by garbage collection. Second, for more detailed performance analysis of GenRGC, we evaluate the time of garbage collection and the delay time caused by garbage collection while changing the sizes of a block and a frame. Third, we analyze the size of storage space required for performing GenRGC, and show GenRGC to be suitable for embedded environment with a limited mont of memory. Since CVM is the most representative one of embedded Java virtual machines, this performance study is quite meaningful in that we can predict the performance of garbage collectors in real application environments more accurately.
가비지 컬렉션은 자바 가상 머신의 핵심적인 기능으로서 개발자들이 겪는 메모리 관리의 어려움을 줄여준다. 본 논문에서는 임베디드 자바 가상 머신을 위한 가비지 컬렉터인 GenGC와 GenRGC의 성능을 평가하고 분석한다. 성능 평가를 위하여 썬 마이크로시스템즈사에서 개발한 실제 임베디드 자바 가상 머신인 CVM을 플랫폼으로 사용하며, SpecJVM98을 벤치마크 프로그램 집합으로 사용한다. 첫째, GenGC와 GenRGC의 성능을 비교하기 위하여 힙의 크기 및 각 영역의 크기를 변화시키면서 가비지 컬렉션 수행 시간 및 지연 시간을 비교한다. 둘째, GenRGC의 성능을 보다 세밀하게 분석하기 위하여 힙의 구성 요소 중 블록과 프레임의 크기를 변화시키면서 가비지 컬렉션 수행 시간 및 지연 시간을 측정하여 분석한다. 셋째, GenRGC를 사용하기 위하여 필요한 저장 공간의 크기를 분석하고, GenRGC가 제한된 메모리를 가지는 임베디드 환경에서 적합하다는 것을 보인다. CVM은 가장 대표적인 임베디드 자바 가상 머신이므로, 이와 같은 성능 연구는 실제 응용 환경에서 가비지 컬렉터의 성능을 보다 정확히 예측할 수 있다는 점에서 큰 의미를 갖는다.