Memory consumption saving by optimization of promotion condition of generational GC in android

R. Mori, S. Yamaguchi, M. Oguchi. GCCE 2017

[IEEE]

Android OS has a process terminating function, which is called Low Memory Killer. The function automatically terminates application processes when the size of available memory becomes small. This function enables a user to invoke applications without manual termination of processes. However, re-use of an application that is terminated requires process re-creation. This takes longer time than that of non-terminated application. Thus, decreasing the number of process terminations is desired. For relieving memory shortage, reducing the size of memory consumed by applications is effective. In Android OS, application memory size is controlled by Garbage Collection (GC). Therefore, the number of process termination can be controlled by tuning of GC. In this paper, we focus on Android’s Generational GC, which is called Generational Semi-Space (GSS), and propose a new method for improving its promotion condition. In the Android GSS, every object is promoted after passing two times of GC independent to its features, e.g. its size. Our method controls promotion based on monitored statistical information that indicates smaller objects tend to die in shorter time. Our evaluation demonstrates that the proposed method can decrease application memory sizes and avoid the decline in performance.