Memory Subsystem Performance of Programs with Intensive Heap Allocation

Abstract

Heap allocation with copying garbage collection is a general storage management technique for modern programming languages. It is believed to have poor memory subsystem performance. To investigate this, we conducted an in-depth study of the memory subsystem performance of heap allocation for memory subsystems found on many machines. We studied the performance of mostly- functional Standard ML programs which made heavy use of heap allocation. We found that most machines support heap allocation poorly. However, with the appropriate memory subsystem organization, heap allocation can have good performance. The memory subsystem property crucial for achieving good performance was the ability to allocate and initialize a new object into the cache without a penalty. This can be achieved by having subblock placement with a subblock size of one word with a write allocate policy, along with fast page- mode writes or a write buffer. For caches with subblock placement, the data cache overhead was under 9% for a 64-K of larger data cache: without subblock placement the overhead was often higher than 50%.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Dec 13, 1993
Accession Number
ADA274122

Entities

People

  • Amer Diwan
  • David Tarditi
  • Eliot Moss

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • Cyber

DTIC Thesaurus Topics

  • Accumulators
  • Algorithms
  • Assembly
  • Computational Science
  • Computer Programming
  • Computer Science
  • Computers
  • Fluid Dynamics
  • Instruction Set Architecture
  • Instructions
  • Language
  • Operating Systems
  • Programming Languages
  • Simulations
  • Simulators
  • Standards
  • United States

Fields of Study

  • Computer science
  • Engineering

Readers

  • Parallel and Distributed Computing.