Open
Description
This is a very naïve implementation. It stores a map of page_address -> LazyPage in the PageManager. Initially none of the pages are committed, so once execution starts it raises a memory exception. Once this happens the page is committed and emulation resumed.
There is no optimization done on the data structure yet, so a 10GB RW page would create ~10 million dictionary entries. The speedup is still very significant though.
- Lazily load the data from the minidump structure to improve startup times even further
- Switch to a region-based structure (like the
MemoryManager
) - Load the full region in
handle_lazy_page
to reduce the amount of page faults