Memory performance of prolog architectures
Memory performance of prolog architectures
Garbarge collection for Prolog based on WAM
Communications of the ACM
Garbage collection: algorithms for automatic dynamic memory management
Garbage collection: algorithms for automatic dynamic memory management
Reducing sweep time for a nearly empty heap
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Heap Garbage Collection in XSB: Practice and Experience
PADL '00 Proceedings of the Second International Workshop on Practical Aspects of Declarative Languages
Fighting Livelock in the i-Protocol: A Comparative Study of Verification Tools
TACAS '99 Proceedings of the 5th International Conference on Tools and Algorithms for Construction and Analysis of Systems
FSA Utilities: A Toolbox to Manipulate Finite-State Automata
WIA '96 Revised Papers from the First International Workshop on Implementing Automata
Markov Chain Monte Carlo using Tree-Based Priors on Model Structure
UAI '01 Proceedings of the 17th Conference in Uncertainty in Artificial Intelligence
So Many WAM Variations, So Little Time
CL '00 Proceedings of the First International Conference on Computational Logic
Variable Shunting for the WAM
SICStus Prolog User''s Manual
A Different Look at Garbage Collection for the WAM
ICLP '02 Proceedings of the 18th International Conference on Logic Programming
Copying Garbage Collection for the WAM: To Mark or Not to Mark?
ICLP '02 Proceedings of the 18th International Conference on Logic Programming
From simulation to practice: cache performance study of a Prolog system
Proceedings of the 2002 workshop on Memory system performance
Incremental copying garbage collection for WAM-based Prolog systems
Theory and Practice of Logic Programming
The Life of a Logic Programming System
ICLP '08 Proceedings of the 24th International Conference on Logic Programming
Theory and Practice of Logic Programming - Prolog Systems
Xsb: Extending prolog with tabled logic programming
Theory and Practice of Logic Programming - Prolog Systems
Improving memory usage in the BEAM
PADL'05 Proceedings of the 7th international conference on Practical Aspects of Declarative Languages
Prolog performance on larger datasets
PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
Hi-index | 0.00 |
Actual performance of Prolog based applications largely depends on how the underlying system implements memory management. Most Prolog systems are based on the WAM, which is built around a set of stacks. TheWAM is highly optimized to recover memory on backtracking and on tail-recursive predicates. Still, deterministic computations can create intermediate structures that can only be freed through garbage collection.There is a significant amount of literature regarding memory management for Prolog. Unfortunately, we found relatively little data on how modern Prolog systems perform memory-wise. Open questions range from whether Prolog systems consume the same amount of space, to how effective garbage collection is in practice, and to whether we should be using sliding or copying based garbage collectors.This work aims at investigating the practicalasp ects of memory management in Prolog systems. We present a methodology to compare the memory performance of such systems, and we use it to compare two different WAM-based systems, namely XSB and Yap. We suggest novel techniques for variable shunting and we propose a scheme that can improve the performance of sliding-based garbage collectors. Last, we evaluate our methodology with larger-scale applications.