Hello Felix. Mon, 22 Jan 2007 13:06:03 -0500, Felix wrote: > Yes, I felt a little lost looking at that table as well. The size of > heap area number 0 may be inversely related to the running time of > your program, but since the other parameters were not fixed, I don't > think that's a solid conclusion to draw.
Yes, I need to test some more parameter combinations. But are there any rough constraints for combinations that make some sense? Like: - number of generations - size0 compared to size1 - size1 compared to size2 - other relevant parameters - ... > What percentage of the time is devoted to garbage collection? If > you're using the Larceny time (or run-benchmark) routine, it will > print out a gc time information line separately from the running time. Here is the output for a larceny run with default settings: Note, that GC needs 17.07%. Overall memory statistics Generations....: 3 Words allocated: 119341312544 Words reclaimed: 0 Words copied...: 14281042810 GC time (ms)...: 1359532 real, 1359640 cpu promotion....: 1253939 real, 1254046 cpu collection...: 105593 real, 105594 cpu full gc......: 0 real, 0 cpu Heap allocation maximum......: 199874560 current......: 74182656 current used.: 74180534 Heap fragmentation maximum......: 0 current......: 0 Remset allocation maximum......: 77824 current......: 69632 Other RTS allocation maximum......: 0 current......: 524288 Total allocation maximum......: 200468480 current......: 74776576 Full collection collections..: 0 objs marked..: 0 ptrs traced..: 0 Per-generation information Generation #0,0 Collections....: 0 Promotions.....: 0 GC time (ms)...: 0 real, 0 cpu promotion....: 0 real, 0 cpu collection...: 0 real, 0 cpu Generation size: 262144 allocated....: 262144 in use.......: 262138 Generation #1,0 Collections....: 119 Promotions.....: 455119 GC time (ms)...: 1359532 real, 1359640 cpu promotion....: 1253939 real, 1254046 cpu collection...: 105593 real, 105594 cpu Generation size: 130049024 allocated....: 72771584 in use.......: 72769468 Generation #2,0 Collections....: 0 Promotions.....: 0 GC time (ms)...: 0 real, 0 cpu promotion....: 0 real, 0 cpu collection...: 0 real, 0 cpu Generation size: 1148928 allocated....: 1148928 in use.......: 1148928 Stack information Frames flushed.: 4862730 Words flushed..: 40542294 Frames restored: 9180648 Stacks created.: 648079 Miscellaneous Elapsed time...: 7964347 CPU time.......: 7963797 The following output is from larceny -load 4 -size1 16M -size2 32M -size3 512M: Overall memory statistics Generations....: 3 Words allocated: 119312013370 Words reclaimed: 0 Words copied...: 4483819718 GC time (ms)...: 543144 real, 543195 cpu promotion....: 504784 real, 504936 cpu collection...: 38360 real, 38259 cpu full gc......: 0 real, 0 cpu Heap allocation maximum......: 268150784 current......: 161920000 current used.: 161891042 Heap fragmentation maximum......: 0 current......: 0 Remset allocation maximum......: 114688 current......: 69632 Other RTS allocation maximum......: 0 current......: 1048576 Total allocation maximum......: 269268992 current......: 163038208 Full collection collections..: 0 objs marked..: 0 ptrs traced..: 0 Per-generation information Generation #0,0 Collections....: 0 Promotions.....: 0 GC time (ms)...: 0 real, 0 cpu promotion....: 0 real, 0 cpu collection...: 0 real, 0 cpu Generation size: 4194304 allocated....: 4194304 in use.......: 4194298 Generation #1,0 Collections....: 27 Promotions.....: 28419 GC time (ms)...: 543144 real, 543195 cpu promotion....: 504784 real, 504936 cpu collection...: 38360 real, 38259 cpu Generation size: 193292288 allocated....: 156576768 in use.......: 156547816 Generation #2,0 Collections....: 0 Promotions.....: 0 GC time (ms)...: 0 real, 0 cpu promotion....: 0 real, 0 cpu collection...: 0 real, 0 cpu Generation size: 1148928 allocated....: 1148928 in use.......: 1148928 Stack information Frames flushed.: 1721070 Words flushed..: 14336234 Frames restored: 3324130 Stacks created.: 221287 Miscellaneous Elapsed time...: 7853543 CPU time.......: 7851002 Now, only 6.91% for GC, it seems to be good enough for my purposes. And this percentage is really much smaller than in any other Scheme I have tried. Excellent! > > Are there any ways to exclude large read only structures from GC > > (besides using a database or similar)? > > 1. When you say "large", how large do you mean? More than 4 KB? Yes, list and vector structure more like 10-100 MB. > 2. What do you mean by "exclude" ? > > The reason I ask these questions is that Larceny already has a large > object space that is collected via mark-sweep rather than a copying > collector. So if the goal of "exclusion" is to avoid paying the cost > of copying such objects, Yes, that is the goal. > it is not necessary. Greetings Sven _______________________________________________ Larceny-users mailing list Larceny-users@lists.ccs.neu.edu https://lists.ccs.neu.edu/bin/listinfo/larceny-users