Open
Description
Following our discussion in #632 (comment), after fixing the initialisation cost for SFT map in #632, our boot time is still significantly slower than the stock OpenJDK.
See the table below (from #632 (comment)):
Elapsed wall clock time (s) | Maximum resident set size (kbytes) | thread attach log time | |
---|---|---|---|
Stock OpenJDK | 0.17 | 60696 | 0.021s |
MMTk - sparse chunk map (master) | 0.52 | 839596 | 0.349s |
... | ... | ... | ... |
MMTk - space map (PR) | 0.30 | 314604 | 0.151s |
perf
suggests the time is spent in initializing the MMTk instance (MMTK::new()
). I instrumented the method, and found that 93% of the time in MMTK::new()
is spent in VMMap::new()
.
Our Map64
is a straightforward port of https://github.com/JikesRVM/JikesRVM/blob/master/MMTk/src/org/mmtk/utility/heap/layout/Map64.java from the Java MMTk. I am not familiar with the code, and I haven't looked further into the problem.