초록
많은 내장형 자바 시스템들이 제한된 메모리를 가지고 있으므로 JITC를 위해 충분한 코드 캐시가 주어지지 않아 자바의 수행 성능이 떨어질 수 있다. 본 논문에서는 이를 극복하고자 수행 중에 코드 캐시 공간이 부족하면 일부 메소드의 머신 코드를 영구적 메모리의 파일 시스템에 저장해 두었다가 재호출 때에 다시 코드 캐시로 읽어와서 재활용하는 코드 캐시를 확장하는 수행 방식을 제안한다. 이는 기존의 클라이언트 선행 컴파일 기법을 수행 중에 코드 캐시 확장을 위해 적용한 것이다. 우리가 제안한 자바 수행 구조는 코드 캐시가 반으로 줄었을 때의 일반적인 자바 수행 방식보다 1.6배 좋은 성능을 보여주고 있다.
Many embedded Java systems are equipped with limited memory, which can constrain the code cache size provided for Java just-in-time compilation, affecting the Java performance. This paper proposes expanding the limited code cache when it is full, by saving the machine code for some methods in the code cache into the file system of the permanent storage and reloading it to the code cache when they are re-invoked later. This is applying the client ahead-of-time compilation during the execution time for the purpose of enlarging the code cache. Our experimental results indicate that the proposed execution method can improve the performance by as much as 1.6 times compared to the conventional method, when the code cache size is reduced by half.