[Larceny-users] GC options
Sven.Hartrumpf at FernUni-Hagen.de
Sven.Hartrumpf at FernUni-Hagen.de
Thu Jan 25 09:32:38 EST 2007
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
More information about the Larceny-users
mailing list