Reusing Local Regions in Memory-limited Java Virtual Machines

메모리가 제한적인 자바가상기계에서의 지역 재사용

  • 김태인 (한국과학기술원 전산학과) ;
  • 김성건 (한국과학기술원 전산학과) ;
  • 한환수 (한국과학기술원 전산학과)
  • Published : 2007.06.15

Abstract

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. We believe our method of reusing local regions is able to overcome memory constraints in memory-limited environments.

많은 연구들을 통해 수행 속력, 효율성, 용이성, 안전성을 위하여 메모리 관리 기법들을 개선시켰다. 그러한 방법들 중에서 지역별 메모리 관리 기법은 각각의 객체 할당 위치에서 따라 정해진 지역에 할당 시키고 그 지역이 제거된다면 그 곳에 할당된 모든 객체의 메모리를 반환하는 방법이다. 본 논문에서는 메모리 제약적인 환경에서 힙 메모리 사용량을 줄이기 위해 로컬 지역을 재사용하는 방법을 제시한다. 기본 아이디어는 현재 함수가 수행될 동안 사용하지 않는 상위 로컬 지역을 재사용하는 것이다. 이러한 방법을 사용함으로써 메모리 제약적인 환경에서 메모리의 한계를 극복할 수 있을 것이다.

Keywords

References

  1. J.-D.Choi, M.Gupta, M.J.Serrano, V.C.Sreedhar, S.Midkiff, 'Escape Analysis for Java,' In Conference on Object-Oriented Programming, System, Languages and Applications (OOPSLA'99), pp. 1-19, 1999 https://doi.org/10.1145/320384.320386
  2. J.Whaley, M.Rinard, 'Compositional Pointer and Escape Analysis for Java Programs,' In Conference on Object-Oriented Programming, System, Languages and Applications (OOPSLA'99), pp. 187-206, 1999 https://doi.org/10.1145/320384.320400
  3. S. Cherem, R. Rugina, 'Region Analysis and Transformation for Java Programs,' In Proceedings of the 2004 International Symposium on Memory Management (ISMM'04), pp. 131-142, 2004 https://doi.org/10.1145/1029873.1029884
  4. M. Tofte, J.P. Talpin, 'Region-based Memory Management,' Information and Computation, Vol. 132, No. 2, pp. 109-176, 1997 https://doi.org/10.1006/inco.1996.2613
  5. M. Tofte, L. Birkedal, M. Elsman, N. Hallenberg, 'A Retrospective on Region-based Memory Management,' Higher-Order and Symbolic Computation, Vol. 17, No. 3, pp. 245-265, 2004 https://doi.org/10.1023/B:LISP.0000029446.78563.a4
  6. D. Gay, A. Aiken, 'Memory Management with Explicit Regions,' In Conference on Programming Language Design and Implementation (PLDI'98), pp. 313-323, 1998
  7. D. Gay, A. Aiken, 'Language Support for Regions,' In Conference on Programming Language Design and Implementation (PLDI'01), pp. 70-80, 2001 https://doi.org/10.1145/378795.378815
  8. F. Qian, L.Hendren, 'An Adaptive, Region-based Allocator for Java,' In Proceedings of the 2002 International Symposium on Memory Management (ISMM'02), pp. 127-138, 2002 https://doi.org/10.1145/512429.512446
  9. E. Corry, 'Optimistic Stack Allocation For Java-Like Languages,' In Proceedings of the 2006 International Symposium on Memory Management (ISMM'06), pp. 162-173, 2006 https://doi.org/10.1145/1133956.1133978
  10. H. G. Baker, 'CONS should not CONS its arguments, or a lazy alloc is a smart alloc,' ACM SIGPLAN Notices, Vol.27, No.3, pp.24-34, 1992 https://doi.org/10.1145/130854.130858
  11. T.Lindholm, F.Yellin, 'The Java Virtual Machine Specification Second Edition,' Addison-Wesley, 1999. KaffeVM, http://www.kaffe.org