This paper argues that economic theory can improve our understanding of memory management. We introduce the allocation curve, as an analogue of the demand curve from microeconomics. An allocation curve for a program characterises how the amount of garbage collection activity required during its execution varies in relation to the heap size associated with that program. The standard treatment of microeconomic demand curves (shifts and elasticity) can be applied directly and intuitively to our new allocation curves. As an application of this new theory, we show how allocation elasticity can be used to control the heap growth rate for variable sized heaps in Jikes RVM. Categories and Subject Descriptors D.3.4 [Programming Languages]: Processors—Memory management (garbage collection) General Terms Economics, Measurement Keywords Microeconomics, Allocation curve, Elasticity, Memory management, Garbage collection, Java
Jeremy Singer, Richard E. Jones, Gavin Brown, Mike