Allow GC heap growth
In current GC implementation, we allocate memory of the given heap size, and allocate (and initialize) metadata for the whole heap all at once at startup. This causes heap initialization extremely slow (causing 70% of the startup time - measured by @igariano01)
This should be fixed when we rewrite GC to allow heap growth so that we only need to mmap and initialize a small heap. The rewrite is on the schedule along with Issue #12 (closed).
operation | time (μs) |
---|---|
after rodal_init_deallocate | 90.726 |
before mu_main | 6.838 |
before gc_init | 73.149 |
after gc_init | 15,065.736 |
after init_runtime | 35.896 |
after restore gc types | 416.741 |
after build table | 6,249.104 |
after loaded args | 75.905 |
before swap_to_mu_stack | 235.152 |
Total | 22,249.247 |