Mobile devices have become very popular and are now playing an important role in our lives. They can be easily found around in our houses, companies, streets, and every other place. Those devices are constrained by resources such as memory capacity, computing power and battery life. Although a lot of innovations had been made on these resource limited devices, there still exists a need to enhance those limitations in order to satisfy customers who tend to favor the much more powerful personal computers over such devices. Various researches had been devoted in purpose of improving memory management in terms of performance, efficiency, ease of use, and safety. One of these approaches is a region-based memory management. Each allocation site selects a specific region, after that allocated objects are placed in this region. Memory is reclaimed by destroying the region, freeing all the objects allocated therein. In this paper, we propose reusing of local regions to reduce heap memory usage in memory limited environments. The basic idea of this proposal is reusing of upper local regions where objects that are allocated to these regions are not accessed until the current method is finished. However, because of additional disk operations and garbage collections this method causes performance overheads. In order to drive simulations of memory behavior, garbage collection, and buffer cache we used traces of running the SpecJVM98 benchmark. In the end, we were able to save the heap memory up to a maximum of 9.3% and 4.2% on average. However, the caused performance overhead was estimated to an amount of 8.87% on average and conservatively 20.37% without buffer cache. We believe our method of reusing local regions is able to overcome memory constraints in memory limited environments.
오늘날 모바일 기기들은 현대 생활에 있어서 널리 사용되고 매우 중요한 역할을 하고 있다. 그리고 집, 회사, 거리와 같은 일상 생활 주변에서 이러한 기기들을 쉽게 발견할 수 있다. 그것들은 메모리 용량, 수행 속도, 배터리 시간으로 인해 자원적 제약을 가진다. 비록 기술의 발전으로 인해 자원 제약적인 기기들의 한계를 극복하고 있지만 더 강력한 개인 컴퓨터에 익숙한 소비자들을 만족시키기 위해서는 여전히 이러한 제약들을 극복할 필요성이 있다. 많은 연구가들이 수행 속력, 효율성, 용이성, 안전성을 위하여 메모리 관리 기법들을 개선시켰다. 그러한 방법들 중에서 지역별 메모리 관리 기법은 각각의 오브젝트 할당 위치에서 따라 정해진 지역에 할당 시키고 그 지역이 제거된다면 그 곳에 할당된 모든 오브젝트의 메모리를 반환하는 방법이다. 본 논문에서는 메모리 제약적인 환경에서 힙 메모리 사용량을 줄이기 위해 로컬 지역을 재사용하는 방법을 제시한다. 기본 아이디어는 현재 함수가 수행될 동안 사용하지 않는 상위 로컬 지역을 재사용하는 것이다. 그러나 이러한 방법은 추가적인 디스크 사용과 가비지 콜렉션의 증가로 속력 오버헤드가 생긴다. 본 논문에서 메모리 동작, 가비지 콜렉션, 그리고 버퍼 캐쉬를 시뮬레이션하기 위해 SpecJVM98 벤치 마크를 사용했다. 결국, 최고 9.3%, 평균적으로 4.2%의 힙 메모리를 절약할 수 있었고 버퍼 캐쉬가 256M일 경우 평균적으로 8.87%, 버퍼 캐쉬가 없을 경우 평균적으로 20.37%의 속력 오버헤드가 생겼다. 지역을 재사용 함으로써 메모리 제약적인 환경에서 메모리의 한계를 극복할 수 있을 것이다.