Estimating Size of Class Area Using Probe Classes in Java Virtual Machine

자바가상기계에서 탐침 클래스를 이용한 클래스 영역 크기의 예측

  • Yang, Hee-Jae (Department of Computer Engineering, Kyungsung University)
  • Published : 2005.07.01

Abstract

Class area is a portion of memory where the constants, fields, and codes of the classes loaded into the Java virtual machine are kept. Knowing the size of the class area is very important especially for embedded Java system with limited memory resources. This paper induces a formula which makes it possible estimate the size of the area. The formula needs some constant values specific to target JVM implementation. We also show that these values can be found using some simple probe classes. An experimental result is included in this paper to confirm the correctness of our approach.

클래스 영역은 자바가상기계 내에서 각종 상수와 필드, 메소드 등이 위치하는 메모리공간의 한 부분이다. 임베디드 자바 시스템과 같이 제한적 메모리 자원을 갖는 시스템에서는 클래스 영역의 크기를 아는 것이 매우 중요하다. 본 논문에서는 이 영역의 크기를 예측할 수 있게 하는 일반적 수식을 유도하였다 이 수식은 구현되는 자바가상기계에 의존적인 몇 개의 상수들을 필요로 하는데, 우리는 이들 상수들이 몇 개의 간단한 탐침 클래스에 의해 구해질 수 있음을 보였다. 본 접근 방식의 정확성을 증명하기 위한 실험 결과도 함께 나타내었다.

Keywords

References

  1. G. Nutt, Operating Systems: A Modem Perspective, 2nd ed., Addison-Wesley, 1997
  2. T. Lindholm and F. Yellin, The Java Virtual Machine Specification, Addison-Wesley, 1997
  3. J. Engel, Programming for the Java Virtual Machine, Addison-Wesley, 1999
  4. GNU, Unix Manual Page for Size (1)
  5. RTJ Computing, simpleRTJ: A Small Footprint Java VM for Embedded and Consumer Devices, http://www.rtjcom.com
  6. Ying Zhao and Sharad Malik, 'Exact memory size estimation for array computations without loop unrolling', Proc of the 36th ACM/IEEE Conference on Design automation, June 1999 https://doi.org/10.1145/309847.310074
  7. Florin Balasa, Francky Catthoor, and Hugo de Man, 'Exact evaluation of memory size for multi-dimensional signal processing systems', Proc of the 1993 IEEE/ACM International Conference on Computer-Aided Design, November 1993 https://doi.org/10.1109/ICCAD.1993.580159
  8. Peter Grun, Florin Balasa, and Nikil Dutt, 'Memory size estimation for multimedia applications', Proc of the 6th International Workshop on Hardware/Software Codesign, March 1998
  9. Jin-Soo Kim and Yarsun Hsu, 'Memory system behavior of Java programs: methodology and analysis', Proc of the 2000 ACM SIGMETRICS International Conference on Measurement and Modeling of Computer Systems, June 2000 https://doi.org/10.1145/339331.339422
  10. L. R. Clausen, U. P. Schultz, C. Consel, and G. Muller, 'Java Bytecode Compression for Low-End Embedded Systems', ACM Transaction on Programming Languages and Systems, vol.22, no.3, May 2000, pp. 471-489 https://doi.org/10.1145/353926.353933
  11. J. Ramanujam, Jinpyo Hong, Mahmut Kandemir, and A. Narayan, 'Reducing memory requirements of nested loops for embedded systems', Proc of the 38th Conference on Design Automation, June 2001 https://doi.org/10.1145/378239.378523
  12. D. Rayside, E. Mamas, and E. Hans, 'Compact Java Binaries for Embedded Systems', Proc of the 9th NRC/IBM Centre for Advanced Studies Conf. (CASCON '99), 1999, pp.1-14
  13. William Pugh, 'Fixing the Java memory model', Proc of the ACM 1999 Conference on Java Grande, June 1999 https://doi.org/10.1145/304065.304106
  14. Jeremy Manson, William Pugh, and Sarita V. Adve, 'The Java memory model', Proc of the 32nd ACM SIGPLAN-SIGACT Sysposium on Principles of Programming Languages, January 2005 https://doi.org/10.1145/1040305.1040336