Skip to content
Free planNo credit card requiredStart writing

Search 250 million research papers

Read the abstract, see who wrote it and who cites it, and get the citation in APA, MLA, Chicago or Harvard.

About 1,215 papers for “automatic memory management”

Automatic memory management

Norman F. Ramsey · Cambridge University Press eBooks · 2022

Computer scientists often need to learn new programming languages quickly. The best way to prepare for this is to understand the foundational principles that underlie even the most complicated industrial languages. This text for an undergraduate programming languages course distills great languages and their design principles down to easy-to-learn 'bridge' languages implemented by interpreters whose key parts are explained in the text. The book goes deep into the roots of both functional and object-oriented programming, and it shows how types and modules, including generics/polymorphism, contribute to effective programming. The book is not just about programming languages; it is also about programming. Through concepts, examples, and more than 300 practice exercises that exploit the interpreter, students learn not only what programming-language features are but also how to do things with them. Substantial implementation projects include Milner's type inference, both copying and mark-and-sweep garbage collection, and arithmetic on arbitrary-precision integers.

Cited by 0

Semi-automatic application memory management

Alon A. Gorodetsky, D.N. Lavrov · Matematičeskie struktury i modelirovanie · 2018

This paper presents an approach to application memory management based on semi-automatic management, which combines the conveniences of an automatic "garbage collector" and fully manual management, as is customary in the C language. This is a fairly flexible approach that can change types of memory managers during program execution and/or even depending on the platform.

Cited by 0

Predictable Automatic Memory Management for Embedded Systems

Roger Henriksson · 1997

The power of dynamic memory management can be used to produce more flexible control applications without compromising the robustness of the applications. It is demonstrated how automatic memory management, or garbage collection (GC), can be used in a system that has to comply with hard real-time demands while still preserving the predictability of the system. A suitable garbage collection algorithm is described together with a strategy for scheduling the work of the algorithm. A method for proving that a given set of processes will always meet their deadlines without interference from the garbage collector is given. 1 Introduction Traditionally, embedded real-time systems have been implemented using static techniques to ensure predictability. Static task scheduling has been used together with static memory management. The demand for more flexible applications together with improved implementation and analysis techniques have brought an increased use of dynamic process scheduling. Howe...

Cited by 0

Hypergraph Partitioning for Automatic Memory Hierarchy Management

Sriram Krishnamoorthy, Ümit V. Çatalyürek, Jarek Nieplocha et al. · 2006

In this paper, we present a mechanism for automatic management of the memory hierarchy, including secondary storage, in the context of a global address space parallel programming framework. The programmer specifies the parallelism and locality in the computation. The scheduling of the computation into stages, together with the movement of the associated data between secondary storage and global memory, and between global memory and local memory, is automatically managed. A novel formulation of hypergraph partitioning is used to model the optimization problem of minimizing disk I/O. Experimental evaluation of the proposed approach using a sub-computation from the quantum chemistry domain shows a reduction in the disk I/O cost by up to a factor of 11, and a reduction in turnaround time by up to 49%, as compared to alternative approaches used in state-of-the-art quantum chemistry codes

Cited by 11

Automatic Memory Management in Utility Accrual Scheduling Environments

Shahrooz Feizabadi, Godmar Back · 2006

Convenience, reliability, and effectiveness of automatic memory management have long been established in modern systems and programming languages such as Java. The timeliness requirements of real-time systems, however, impose specific demands on the operational parameters of the garbage collector. The memory requirements of real-time tasks must be accommodated with a predictable impact on the timeline, and under the purview of the scheduler. Utility accrual is a method of dynamic overload scheduling that is designed to respond to CPU overload conditions by producing a schedule that heuristically maximize a predefined metric of utility. There also exists in such systems the possibility of memory overload situations in which the cumulative memory demand exceeds the amount of memory available. This paper presents a utility accrual algorithm for uniprocessor CPU and garbage collection scheduling that addresses memory overload conditions. By tightly linking CPU and memory allocation, the scheduler can appropriately respond to overload along both dimensions. This scheduler is the first of its kind to enable the use of automatic memory management in a utility accrual system. Experimental results using actual Java application profiles indicate the viability of this model

Cited by 7

Automatic vs. Explicit Memory Management: Settling the Performance Debate

2008

While garbage collection’s software engineering benefits are indisputable, its performance impact remains controversial. Garbage collection proponents argue that its benefits outweigh its costs, but it is widely believed that garbage collection imposes an unacceptably high runtime and space performance penalty. This paper aims to settle this debate. We present the first empirical comparison of the performance costs of automatic versus explicit memory management in a garbage-collected language. Using a tracing and simulation based oracular memory manager, we execute unaltered Java programs as if they used explicit memory management. We examine the runtime, space consumption and virtual memory footprint of Java benchmarks across a range of general-purpose allocators and both copying and non-copying garbage collectors. We show that, at large heap sizes and under no memory pressure, the runtime performance of some garbage collection algorithms is competitive with the Lea memory allocator and occasionally outperforms it by up to 4%. However, our results confirm that garbage collection requires six times the physical memory to achieve this performance and suffers order-of-magnitude performance penalties when paging occurs. 1.

Cited by 0

Automatic Memory Management in a Static Type System with . . .

Dan Bonachea, Carol Hurwitz, Scott Mcpeak · 2007

This paper defines a new imperative language called Feudal C which is essentially a restricted subset of C. Feudal C provides automatic memory management and statically prevents dangling references and memory leaks with very low runtime overhead. The key enabling insight is that memory management information in typical programs is static. This paper presents the syntax, typing rules and operational semantics for Feudal C, and proves memory safety for the language. Feudal C Automatic Memory Management in a Static Type System With Low Runtime Overhead Page 2 of 40 Abstract: This paper defines a new imperative language called Feudal C which is essentially a restricted subset of C. Feudal C provides automatic memory management and statically prevents dangling references and memory leaks with very low runtime overhead. The key enabling insight is that memory management information in typical programs is static. This paper presents the syntax, typing rules and operational semantics for Feudal C, and proves memory safety for the language. 1

Cited by 0

Automatic Memory Management Policies For Low Power, Memory Limited, And Delay Intolerant Devices

Jahid, Abu, MD. · scholarworks - UTEP (The University of Texas at El Paso) · 2013

Mobile devices such as smartphones and tablets are energy and memory limited, and implement graphical user interfaces that are intolerant of computational delays. Mobile device platforms supporting apps implemented in languages that require automatic memory management, such as the Dalvik (Java) virtual machine within Google's Android, have become dominant. It is essential that automatic memory management avoid causing unacceptable interface delays while responsibly managing energy and memory resource usage. Dalvik's automatic memory management policies for heap growth and garbage collection scheduling utilize heuristics tuned to minimize memory footprint. These policies result in only marginally acceptable response times and garbage collection signicantly contributes to apps' CPU time and therefore energy consumption. The primary contributions of this research include a characterization of Dalvik's "baseline" automatic memory management policy, the development of a new "adaptive" policy, and an investigation of the performance of this policy. The investigation indicates that this adaptive policy consumes less CPU time and improves interactive performance at the cost of increasing memory footprint size by an acceptable amount.

Cited by 0Open access

Better Understanding the Costs and Benefits of Automatic Memory Management

Kunal Sareen, Stephen M. Blackburn · 2022

Automatic memory management relieves programmers of the burden of having to reason about object lifetimes in order to soundly reclaim allocated memory. However, this automation comes at a cost. The cost and benefits of garbage collection relative to manual memory management have been the subject of contention for a long time, and will likely remain so. However, until now, the question is surprisingly under-studied. We examine the costs and benefits of garbage collection through four studies, exploring: We conduct this study in a contemporary setting using recent CPU microarchitectures, and novel methodologies including a mark-sweep collector built upon off-the-shelf free-list allocators, allowing us to shed new light on garbage collection overheads in a modern context.

Cited by 6Open access

Performance of a Safe Compiled Language with Automatic Memory Management

Georgii Ekserdzhian · Digital Repository (National Repository of Grey Literature) · 2021

In this thesis, I discuss my implementation of a memory-safe language called G and its performance. I compare it to other popular object-oriented languages like C# and C++. I try to prove that memory safety features have only a small effect on the performance of most programs. 1

Cited by 0

An Investigation into Automatic Dynamic Memory Management Strategies using Compacting Collection

2009

This paper describes the design, implementation and performance characteristics of several compacting collectors in the Java Memorymanagement Toolkit (JMTk). Compacting collectors are an important class of collectors used in several production runtimes, including Microsoft’s Common Language Runtime and IBM’s Java Runtime Environment. The development of a strategy using compaction makes an important contribution to JMTk, and provides a platform where side-by-side comparisons between compacting collectors and other important classes of collector can be made. This work should be considered but a first step into the investigation of this class of collectors. It is anticipated that through broadening the set of operations supported by JMTk and Jikes RVM that this work will also allow new classes of collectors to be implemented and compared. Although there was found to be a high cost in performing a compacting collection, it was found to be provide reduced memory fragmentation. 1.

Cited by 0

Semi-Automatic Region-Based Memory Management for Real-Time Java Embedded Systems

Guillaume Salagnac, Christophe Rippert, Sergio Yovine · 2007

In this paper we address the problem of dynamic memory management in real-time Java embedded systems. Our work aims at suppressing the need for garbage collection in order to avoid unpredictable pause times. For that we use a simple static analysis algorithm coupled with region-based memory management as presented in [15]. To overcome the well-known limitations of region inference, we propose in this paper to involve the developer in the analysis process by providing feedback on programming constructs likely to produce memory leaks. Experiments show that for most programming patterns, our system behaves as efficiently as a garbage collector in terms of memory consumption. Our analysis tool is furthermore able to provide useful feedback to the programmer to pinpoint problematic constructs.

Cited by 19