Commit Graph

11 Commits

Author SHA1 Message Date
3364d571cc Common/MemArenaWin: Rewrite LazyMemoryRegion to manually map memory blocks into the large memory region as needed.
Internal details: The large region is split into individual same-sized blocks of memory. On creation, we allocate a single block of memory that will always remain zero, and map that into the entire memory region. Then, the first time any of these blocks is written to, we swap the mapped zero block out with a newly allocated block of memory. On clear, we swap back to the zero block and deallocate the data blocks. That way we only actually allocate one zero block as well as a handful of real data blocks where the JitCache actually writes to.
2023-12-09 21:11:31 +01:00
eb235d6ee3 Common/MemArenaWin: Move the advanced Windows memory function address initialization into its own struct and function so it can be reused. 2023-12-09 20:58:07 +01:00
422bc7a627 Common/MemArena: A zero-byte allocation is invalid. 2023-09-07 14:41:24 +02:00
5bd7756064 Common/MemArena: Add LazyMemoryRegion to represent a zero-initialized memory region whose pages are only allocated on first access. 2023-09-02 04:02:10 +02:00
8342164dbd Common/MemArena: Pass shared memory base file name to GrabSHMSegment(). 2023-05-19 18:53:08 +02:00
ff5bcba966 Common/MemArenaWin: Handle file mappings >= 4GB. 2023-05-19 18:44:32 +02:00
4a9553bf6d MemArena: Load UnmapViewOfFileEx dynamically to restore Windows 7 support. 2022-02-14 21:57:18 +01:00
3a4de2b306 MemArena: Use Common::DynamicLibrary for m_api_ms_win_core_memory_l1_1_6_handle. 2022-02-14 21:57:15 +01:00
79405de103 MemArena: Use placeholders on Windows. 2022-02-06 18:06:04 +01:00
1554128560 MemArena: Prepare interface for proper memory reservation. 2021-12-25 20:20:36 +01:00
812cc8b632 MemArena: Split into three separate files for each OS. 2021-12-25 20:20:36 +01:00