Garbage collection algorithms for Java-based Prolog engines

2Citations
Citations of this article
6Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Implementing a Prolog Runtime System in a language like Java, which provides its own automated memory management, and safety features (like built-in index checking and array initialization) requires a consistent approach to memory management based on a simple ultimate goal: minimizing total memory management time (the sum of Java's own and ours). Based on our experience with Jinni 2002 - a Java based compiled Prolog system, we analyze the existing garbage collection algorithms and propose new optimizations. In particular, we aim to have a garbage collector with least extra helper memory space yet with reasonably fast speed. Efforts are made in reducing both time and space overhead for the mark-sweep-compact algorithm. We suggest an in-place compaction algorithm and provide its implementation. As the Prolog engine uses dynamic arrays for its stacks, the impact of Java's garbage collector on the system becomes a key factor. Ih this context, we measure and optimize the performance of the garbage collector with the overall memory management scheme in mind. © Springer-Verlag Berlin Heidelberg 2003.

Cite

CITATION STYLE

APA

Zhou, Q., & Tarau, P. (2003). Garbage collection algorithms for Java-based Prolog engines. Lecture Notes in Computer Science (Including Subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2562, 304–319. https://doi.org/10.1007/3-540-36388-2_21

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free