Conference Paper

Understanding memory allocation of scheme programs.

DOI: 10.1145/357766.351264 Conference: Proceedings of the fifth ACM SIGPLAN international conference on Functional programming, Volume: 35
Source: DBLP

ABSTRACT Memory is the performance bottleneck of modern architectures. Keeping memory consumption as low as possible enables fast and unobtrusive applications. But it is not easy to estimate the memory use of programs implemented in functional languages, due to both the complex translations of some high level constructs, and the use of automatic memory managers.To help understand memory allocation behavior of Scheme programs, we have designed two complementary tools. The first one reports on frequency of allocation, heap configurations and on memory reclamation. The second tracks down memory leaks1. We have applied these tools to our Scheme compiler, the largest Scheme program we have been developing. This has allowed us to drastically reduce the amount of memory consumed during its bootstrap process, without requiring much development time.Development tools will be neglected unless they are both conveniently accessible and easy to use. In order to avoid this pitfall, we have carefully designed the user interface of these two tools. Their integration into a real programming environment for Scheme is detailed in the paper.

  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: Machine: A Tutorial Reconstruction. MIT Press, 1991. Also Technical report 5, DEC Paris Research Laboratory, 1990.
  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: The amount of data stored in data warehouses grows very quickly so that they can get saturated. To overcome this problem, we propose a language for specifying forgetting functions on stored data. In order to preserve the possibility of performing interesting analyses of historical data, the specifications include the definition of some summaries of deleted data. These summaries are aggregates and samples of deleted data and will be kept in the data warehouse. Once forgetting functions have been specified, the data warehouse is automatically updated in order to follow the specifications. This paper presents both the language for specifications, the structure of the summaries and the algorithms to update the data warehouse.
    Research, Innovation and Vision for the Future, 2007 IEEE International Conference on; 04/2007
  • Source
    [Show abstract] [Hide abstract]
    ABSTRACT: Garbage collection is a key component of almost all modern programming languages. The advent of con-ventional object-oriented languages supported by managed run-times (e.g. Java, C♯ and even Managed C++) has brought garbage collection into the mainstream and, as memory manager performance is critical for many large applications, brought it to the attention of programmers outside its traditional functional programming language community. In this paper, I review how garbage collection got to where it is today, why it is desirable, what performance you might reasonably expect and I shall outline the directions in which research is moving. In particular, I look at some of the challenges facing modern garbage collection, in contexts ranging from collection for high-performance, multiprocessor systems to collection for real-time systems, from better integrating with its operating environment to supporting specific applications. I speculate on future directions for research.


Available from