Large number of page-faults can severely degrade the performance of any sys
tem. While much attention has been paid on the virtual memory space of an e
ntire process, the paging behavior of one particular memory segment has not
been reported. Unlike the static behavior in most of the memory segments,
the heap segment has unique characteristics closely related to its memory m
anagement scheme. First, this paper presents a thorough study on the effect
of heap page-faults on the performance of Kaffe JVM version 1.0.5 and the
Kaffe Java virtual machine (JVM) with the modified buddy system. Second, a
modified least recently used (mLRU) is proposed to improve the performance
of the LRU page-replacement policy. Four different page-replacement policie
s, first-in-first-out (FIFO), Random, LRU and mLRU, are used to study the p
erformance of each JVM. Third, the Java applications used in this study are
SPECjvm98 benchmark suite. These programs represent real-world workload an
d are highly dynamic memory intensive. Fourth, an instrumented Kaffe JVM is
used to generate memory traces. Then, a simulator is used to analyze and r
econstruct the heap as the benchmark programs are executed. Finally, this s
tudy has shown that the modified buddy system has less page-fault occurrenc
es in six out of eight applications. The improvement can be up to 74%. More
over, the proposed mLRU can improve the performance up to 68.2%. (C) 2001 E
lsevier Science Inc. All rights reserved.