An empirical study of a novel technique : rationed-memory compiling
Author(s)Leu, Ioan Tudor
Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science.
MetadataShow full item record
We present rationed-memory compiling, a new technique designed to reduce the memory consumption of programs. The technique lowers memory usage by decreasing the amount of memory that programs allocate, but not use actively. With rationed- memory compiling, whenever a program requests a memory block, the compiler returns a block smaller than the requested size. The compiler handles subsequent reads and writes to the memory block as usual if the accessed location is within the allocated block. If the accessed location is outside the allocated block, the compiler redirects the access to a hash table which stores and indexes out-of-bounds writes and returns the stored values on out-of-bounds reads from corresponding locations. For programs that over-allocate memory, the compiler yields savings because it allocates smaller memory blocks, while it also provides backup storage in the hash table for the writes outside the allocated blocks. We developed a C compiler that implements the rationed-memory technique and tested it on a series of programs that use a diverse range of data structures. Our tests show that the rationed-memory technique is very effective in reducing the memory usage of data structures implemented using arrays or buffers, such as stacks or queues. Furthermore, our study presents cases of over-allocation of memory in open-source applications, supporting our claim that the rationed-memory technique is a versatile tool with a great potential of reducing the memory consumption of programs.
Thesis (M. Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2005.Includes bibliographical references (p. 61-63).
DepartmentMassachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science.
Massachusetts Institute of Technology
Electrical Engineering and Computer Science.