Our algorithm works by measuring how many evicted fragments are regenerated in the cache later on. If a high percentage of new fragments added to the cache are actually regenerated from previously evicted fragments, then the cache is too small. Our algorithm compares this regenerated ratio to a threshold to decide whether to enlarge the cache. We found that just about any value reduces memory usage significantly. Requiring 1, 2, or 3 out of 5 new fragments to be regenerated, with decisions every 50 fragments or so, works well. Higher ratios do reduce memory further but at noticeable performance cost.
|Copyright © 2004 Derek Bruening|