| B. Demoen and K. F. Sagonas. Heap Garbage Collection in XSB: Practice and Experience. In E. Pontelli and V. Santos Costa, editors, Practical Aspects of Declarative Languages, number 1753 in Lecture Notes in Computer Science, pages 93-108. Springer Verlag, January 2000. |
....Prolog applications can often spend hundreds of megabytes of data, but there was little work on understanding and quantifying the interactions between Prolog and the memory architecture of modern computers. Indeed, most work on memory performance has related to studies of garbage collection [7, 14], whose performance for real programs is notoriously hard to quantify. E orts in understanding the objects and data structures created by Prolog execution and, namely, its interaction with garbage collection, were not sucient towards understanding actual memory performance of Prolog systems. ....
B. Demoen and K. F. Sagonas. Heap Garbage Collection in XSB: Practice and Experience. In E. Pontelli and V. Santos Costa, editors, Practical Aspects of Declarative Languages, number 1753 in Lecture Notes in Computer Science, pages 93-108. Springer Verlag, January 2000.
....to implement memory allocation in WAM based systems. Classical work on memory performance has suggested that Prolog systems have good locality of reference and follow short reference chains [26, 27] The ecient implementation of garbage collection algorithms has been the subject of several papers [4, 24, 12]. In this work, we study memory allocation in WAM based systems. We address what we believe are two major issues. First, we propose an initial methodology to compare the memory performance of Prolog systems, and use it to compare two di erent WAM based systems. Second, we demonstrate the ....
....The main disadvantage of mark and sweep garbage collectors is that they take time linear on the size of the Heap. This can be a problem if the Heap grows very large. One alternative is to use copying based garbage collectors for Prolog (please refer to Demoen and Sagonas for a recent discussion [12]) The naive solution is to just copy everything to a new data area, and to set the choice points to protect the copied data against reclamation except through garbage collection [5] This is not always very satisfactory, since we lose the ability to reclaim memory on backtracking. More recent ....
B. Demoen and K. F. Sagonas. Heap Garbage Collection in XSB: Practice and Experience. In E. Pontelli and V. Santos Costa, editors, Practical Aspects of Declarative Languages, number 1753 in Lecture Notes in Computer Science, pages 93-108. Springer Verlag, January 2000.
....The main disadvantage of mark and sweep garbage collectors is that they take time linear on the size of the Heap. This can be a problem if the Heap grows very large. One alternative is to use copying based garbage collectors for Prolog (please refer to Demoen and Sagonas for a recent discussion [7]) Last, one should notice that Heap garbage collection can also be used to recover cells in the Trail. This is possible through early reset, and in case of Yap by discarding unconditional bindings. XSB does not recover trail space at garbage collection: XSB performs trail trimming at cut time, ....
B. Demoen and K. F. Sagonas. Heap Garbage Collection in XSB: Practice and Experience. In PADL, number 1753, pages 93-108, January 2000.
....copying garbage collection. Issues related to preserving generations on backtracking and cut are also discussed, as well as the impact of generations on early reset. 1 Introduction Heap garbage collection has been studied in the context of Prolog and the WAM [16] in several places: [1, 14, 2, 3, 7, 9]. Two dimensions in the whole spectrum deserve particular attention: copying compacting techniques and generational techniques. Copying techniques are of interest when there is a high percentage of unreachable (garbage) data overall, and generational techniques are interesting when the ....
....However, as pointed out in [3] in the context of the WAM, double copying of internal cells is possible and thus one runs the risk of ending up with a heap that is bigger than before garbage collection. Obviously such a situation is undesirable and either a marking phase should be performed (as in [3, 5, 7]) or one has to postpone the treatment of such cells (as recently in [18] Even though the latter method performs well in the context of the collector described there (the garbage collection is restricted to the topmost segment only) postponing the treatment of internal cells seems impractical ....
[Article contains additional citation context not shown here]
B. Demoen and K. Sagonas. Heap garbage collection in XSB: Practice and experience. In E. Pontelli and V. Santos Costa, editors, Practical Aspects of Declarative Languages: Second International Workshop, number 1753 in LNCS, pages 93--108. Springer, Jan. 2000.
....is reasonably complete and fast. Yap [4] or SICStus Prolog [3] could have served as a good starting point for the experiment. However, adapting such systems is very time consuming and that was one reason for starting almost from scratch: because of our prior involvement with XSB (see e.g. [7]) we borrowed the XSB compiler (see [17] for the generation of abstract machine code (XSB is largely WAM based) and we built a new emulator. This permitted us to redo partly the experiment reported on in [4] and at the same time bene t from its advice, investigate the potential for speeding up ....
B. Demoen, K. Sagonas. Heap Garbage Collection in XSB: Practice and Experience Proceedings of the Second Int. Workshop on Practical Aspects of Declarative Languages, Boston, Jan. 2000, pp. 93-108
....how constraints on the abductive solver can retrieve well known algorithms. 1 Introduction This work originates from our involvement in writing garbage collectors for di erent systems: in the mideighties, it was for BIM Prolog 1 , in 1994 for BinProlog [4] 6] and from 1996 on for XSB ( 8] [9]) More recently, we wrote a heap garbage collector for ilProlog (see [7] Because of the roots of our work, the setting of the current paper is garbage collection of a WAM heap or global stack as it is also named. Therefor, we will assume some knowledge of WAM: see for instance [1] Also some ....
B. Demoen, K. Sagonas. Heap Garbage Collection in XSB: Practice and Experience Proceedings of the Second International Workshop on Practical Aspects of Declarative Languages (PADL'00), Boston, Jan. 2000, pp. 93{ 108
.... reinstall all values from the trail while storing the old values Clearly this mark procedure which does not use the mark bit to avoid repeated marking of the same cell, has bad properties. But it solves the suboptimality problem. 4 Related issues The situation is similar to the one in [6, 7]: several continuations be it failure or success continuations have their own view on the usefulness of data, but marking with a boolean is crude. The boolean says basically only there is some continuation which needs this location and possibly everything that is referred by it while a ....
....is referred by it while a more ne grained marking notion would also be able to tell which continuation needs the cell. Enhancing marking along that line makes marking loose its O(useful data) property, but it would become more precise in its identi cation of garbage: the same was hinted at in [6, 7]. 5 Another way of viewing at these matters is as follows: assume that the code were prog6 query : X = f(bar(a) b(X) b(Y) gc1, setarg(1,Y,foo) gc2, use(Y) b( query. where gc1 and gc2 symbolize computations that invoke garbage collections. In the setting of [5] the term ....
B. Demoen, K. Sagonas. Heap Garbage Collection in XSB: Practice and Experience Proceedings of the Second Int. Workshop on Practical Aspects of Declarative Languages, Boston, Jan. 2000, pp. 93-108
....copying garbage collection. Issues related to preserving generations on backtracking and cut are also discussed, as well as the impact of generations on early reset. 1 Introduction Heap garbage collection has been studied in the context of Prolog and the WAM [16] in several places: [1, 14, 2, 3, 7, 9]. Two dimensions in the whole spectrum deserve particular attention: copying compacting techniques and generational techniques. Copying techniques are of interest when there is a high percentage of unreachable (garbage) data overall, and generational techniques are interesting when the ....
....However, as pointed out in [3] in the context of the WAM, double copying of internal cells is possible and thus one runs the risk of ending up with a heap that is bigger than before garbage collection. Obviously such a situation is undesirable and either a marking phase should be performed (as in [3, 5, 7]) or one has to postpone the treatment of such cells (as recently in [18] Even though the latter method performs well in the context of the collector described there (the garbage collection is restricted to the topmost segment only) postponing the treatment of internal cells seems impractical ....
[Article contains additional citation context not shown here]
B. Demoen and K. Sagonas. Heap garbage collection in XSB: Practice and experience. In E. Pontelli and V. Santos Costa, editors, Practical Aspects of Declarative Languages: Second International Workshop, number 1753 in LNCS, pages 93-108. Springer, Jan. 2000.
No context found.
B. Demoen and K. F. Sagonas. Heap Garbage Collection in XSB: Practice and Experience. In E. Pontelli and V. Santos Costa, editors, Practical Aspects of Declarative Languages, number 1753 in Lecture Notes in Computer Science, pages 93-108. Springer Verlag, January 2000.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC