compiler:preserve-data-structures?
set to #f
and another with it set to #t
. The MIT/GNU Scheme compiler was written in a way that allows the garbage collector to reap the intermediate storage for the compiler after each phase of compilation. When compiler:preserve-data-structures?
is set to #t
, however, the intermediate data structures are retained until the next compilation. This should not change the total amount of storage used by the compiler, but it should have the effect of reducing the amount of storage recovered by a GC cycle. The number of GC cycles can be seen to be larger for the smaller heap sizes. When the heap is huge, the extra amount of storage in use has little effect on the GC count.The Total Free column contains the sum of the memory freed after each GC totaled for the entire compilation.
Memory Size | Discard Data Structures | Preserve Data Structures | |||
---|---|---|---|---|---|
(blocks) | (words) | GC Count | Total Free | GC Count | Total Free |
1890 | 1935360 | 3935 | 6213003931 | - | - |
1900 | 1945600 | 3882 | 6211940217 | - | - |
1920 | 1966080 | 3818 | 6213153480 | - | - |
2048 | 2097152 | 3502 | 6210260535 | - | - |
3072 | 3145728 | 2178 | 6205257571 | - | - |
4096 | 4194304 | 1589 | 6207697668 | 1626 | 6200942665 |
5000 | 5120000 | 1283 | 6206081325 | 1303 | 6198903924 |
6144 | 6291456 | 1033 | 6210675904 | 1043 | 6205324016 |
8192 | 8388608 | 766 | 6212253195 | 771 | 6207156928 |
16384 | 16777216 | 377 | 6222514645 | 379 | 6233468540 |
32768 | 33554432 | 188 | 6257358354 | 188 | 6244416384 |
40000 | 40960000 | 154 | 6266232939 | 154 | 6257300338 |
50000 | 51200000 | 124 | 6316240152 | 124 | 6311996423 |
65536 | 67108864 | 94 | 6283277196 | 94 | 6276744843 |
98304 | 100663296 | 63 | 6324424897 | 63 | 6320187112 |
131072 | 134217728 | 48 | 6430202774 | 48 | 6426705701 |
262144 | 268435456 | 25 | 6704242312 | 25 | 6702940561 |
No comments:
Post a Comment