Summary: | 碩士 === 國立清華大學 === 資訊工程學系 === 99 === Android is a java-based smart phone operating system. Java relies on a memory management mechanism named garbage collection to automatically deallocate program objects. Performance and power consumption of a Java application highly depend on the design of garbage collection. Currently, Android uses the mark-and-sweep garbage collection method. It is well known that mark-and-sweep garbage collection can pollute the cache and suspend the java application during the marking phase, because it has to traverse the whole heap to find unused objects. This not only reduces the responsiveness of the Android system, but also consumes energy, which is very undesirable for handheld devices that Android is targeting at.
A general strategy to solving the problem due to mark-and sweep is to use generational garbage collection, which only traverses part of the heap to find garbage. However, the copy-on-write feature in Android poses special problem for recording objects age in generational garbage collection in Android. To overcome the problem, in this thesis, we design a new generational garbage collection in Android, called table-based generational garbage collection (TGGC). The basic idea is to set aside the management structure of objects so that the management operations, such as age recording, do not disturb the memory space of the objects, causing copy-on-write. Our evaluation shows that TGGC can lower program pause time and reduce power consumption during garbage collection, when compared to the mark-and-sweep garbage collection.
|