Summary: | 碩士 === 國立交通大學 === 資訊工程系所 === 94 === Size-ordered segregated list allocator is a widely-used object allocator. Upon object allocation, traversals are required to locate the free list holding large enough free chunks. Because some free lists might become empty, increasing the traversals upon object allocation, the performance of size-ordered segregated list allocator still has room for improvement. This is especially true in garbage collection environment.
Therefore, we propose a table lookup mechanism to reduce the traversals. The main structure in this mechanism is a table which is a mapping from allocation request of each size to the closest non-empty free list holding large enough chunks. By looking up the table, only one traversal is required to locate the closest non-empty free list, hence speeding up object allocation. We take Java, a popular object-oriented programming language with automatic garbage collection, as example. The result shows that our proposed mechanism can improve the heap management performance by 100%. We also studied the impact of using different coalescing strategies on heap management performance in garbage collection environment, and showed that the trade-off to choosing a coalescing strategy will change, in the presence of our proposed mechanism. Immediate coalescing strategy, which is not used because it results in slower allocation speed, becomes a better one after our proposed mechanism is added. The result also indicates that fragmentation problem is a more serious issue in garbage collection environment than allocation performance if the allocation speed is fast enough.
|