Re: [Larceny-users] freezing for garbage collection?
Matt Parker wrote: I have been using chicken scheme already and it doesn't ever freeze the screen from garbage collection (I don't know why not). It also happens to be quite slow compared to larceny or even maybe gambit-c. I tried using gambit once and it did the same freezes. In that case, there is one more thing you should try. Chicken doesn't attempt to collect compiled code or static data. Larceny does, and I think that's the most likely reason you're noticing these freezes in Larceny but not Chicken. You can prevent Larceny from attempting to collect your compiled code and static data by creating your own heap image that contains your entire program, like this: % larceny -stopcopy (load myprogram) ; load your entire program, ; but don't start it (dump-interactive-heap myprogram.heap) (exit) (Instead of dump-interactive-heap, you might prefer to use dump-heap; see the Larceny User Manual.) Then create a split heap: % larceny -heap myprogram.heap -reorganize-and-dump That creates myprogram.heap.split, which you can rename and use as your initial heap: % mv myprogram.heap.split mypgm % larceny -heap mypgm -areas 3 If that doesn't help, then we might have been wrong in thinking the freezes are caused by garbage collection. Will ___ Larceny-users mailing list Larceny-users@lists.ccs.neu.edu https://lists.ccs.neu.edu/bin/listinfo/larceny-users
Re: [Larceny-users] freezing for garbage collection?
David Rush wrote: Given that Larceny was originally meant to be a platform for trying various GC schemes (no pun intended) is it perhaps time to find a gifted student in need of a senior project to write a bounded-incremental collector? Last week, after giving a talk on that very problem for a meeting of our local student chapter of the ACM, I met several gifted students who seemed to have some interest. My read of the literature is that such a collector is a fairly well-solved problem... Real-time collectors generally sacrifice considerable throughput. Maintaining throughput while bounding the worst-case pause time remains a goal of current research. Will ___ Larceny-users mailing list Larceny-users@lists.ccs.neu.edu https://lists.ccs.neu.edu/bin/listinfo/larceny-users
Re: [Larceny-users] freezing for garbage collection?
Matt Parker wrote: Will running the game in a thread work? No. I tried running it with your options and there were still pauses (less frequent, but just as large delays). That will be a problem with all of Larceny's current garbage collectors (and with other stop-the-world collectors, including Chicken's). Generational collectors make the delays less frequent, but don't do anything to reduce their duration. So far as I know, there are no implementations of Scheme whose garbage collectors can meet your needs. Marc Feeley has said he was working on a real-time collector for Gambit, but I don't know its current status. We are working on a new collector for Larceny that should meet your requirements, but it isn't finished yet. Could I set it so there are frequent small garbage collections, like one after every frame of the game, with no apparent pause? The settings I gave you already increase the frequency of minor collections, and reduce the duration of most major collections, but there is currently no way to eliminate all of Larceny's full collections. Perhaps I could manually call the collector after every frame? That won't help either. I really can't have any noticeable pauses in the game since it will mess up the AI's behavior. We understand the problem. We have designed a collector that should work for you, but we don't expect to release it until this fall. If you are willing to test the new collector for us, however, then we might have something for you to try a little sooner. Will ___ Larceny-users mailing list Larceny-users@lists.ccs.neu.edu https://lists.ccs.neu.edu/bin/listinfo/larceny-users
Re: [Larceny-users] freezing for garbage collection?
Ah, ok, well that's good new that you are putting in a new collector. I would like to test it for you, as well. I have been using chicken scheme already and it doesn't ever freeze the screen from garbage collection (I don't know why not). It also happens to be quite slow compared to larceny or even maybe gambit-c. I tried using gambit once and it did the same freezes. Tell me when you've got something you'd like me to test. I'll go back to using chicken until then, I suppose. Matt On Tue, 4 Mar 2008, William D Clinger wrote: Matt Parker wrote: Will running the game in a thread work? No. I tried running it with your options and there were still pauses (less frequent, but just as large delays). That will be a problem with all of Larceny's current garbage collectors (and with other stop-the-world collectors, including Chicken's). Generational collectors make the delays less frequent, but don't do anything to reduce their duration. So far as I know, there are no implementations of Scheme whose garbage collectors can meet your needs. Marc Feeley has said he was working on a real-time collector for Gambit, but I don't know its current status. We are working on a new collector for Larceny that should meet your requirements, but it isn't finished yet. Could I set it so there are frequent small garbage collections, like one after every frame of the game, with no apparent pause? The settings I gave you already increase the frequency of minor collections, and reduce the duration of most major collections, but there is currently no way to eliminate all of Larceny's full collections. Perhaps I could manually call the collector after every frame? That won't help either. I really can't have any noticeable pauses in the game since it will mess up the AI's behavior. We understand the problem. We have designed a collector that should work for you, but we don't expect to release it until this fall. If you are willing to test the new collector for us, however, then we might have something for you to try a little sooner. Will ___ Larceny-users mailing list Larceny-users@lists.ccs.neu.edu https://lists.ccs.neu.edu/bin/listinfo/larceny-users