5.5.2 Memory Performance

Memory efficiency may be compared by increasing the heap size parameter until RAM is exhausted. Because of the lack of locality in the confidence test program (see section 5.5.3 Locality Comparison), there will be a sharp performance cut-off above this point. The best comparative is the memory size at which the throughput of the two heaps is similarly degraded. Running LeapHeap on a uniprocessor machine with 128 MB RAM, the HeapTest program was found to take twice as long at 85 MB heap size as at 50 MB. With the native heap, the same doubling happened at 66 MB. This result exceeds the 20% bookkeeping disparity projected in section 5.2 Memory Efficiency. It should be noted that once page faulting starts, measurements tend not to be reproducible.

In the results from the memory test, the RAM penalty expected from thread-based bit preference (7 MB in this case) does not seem to show up. Bit preference was originally conceived as a multiprocessor-specific modification, since on multiprocessors it reduces cache contention as well as increasing locality. Then it was observed that the new LeapHeap version could outperform the native heap (and indeed earlier versions of LeapHeap)on a uniprocessor, even when page-faulting heavily. The reasons for this are not fully understood.

Fragmentation effects are not really caught by the test program.